Estrategias de respaldo, comandos SAV/RST, BRMS, gestion de medios, restore de objetos y planificacion de disaster recovery en IBM i.
IBM i es un sistema extraordinariamente fiable, pero ningun sistema es inmune a fallas de hardware, errores humanos, desastres naturales o ataques. Un backup solido es la ultima linea de defensa contra la perdida de datos.
Linux / x86
IBM i
SAVLIB guarda todo junto: tablas, indices, programas, areas de datos, colas de datos y sus autoridades.IBM i tiene un conjunto de comandos de backup nativos que cubren desde un objeto individual hasta el sistema completo. Todos empiezan con SAV (save) y escriben los datos a un medio (cinta, save file o disco virtual).
SAVSYSGuarda el sistema operativo, objetos del sistema, perfiles de usuario, configuracion de seguridad y datos de configuracion. Requiere estado restringido.
SAVLIBGuarda una biblioteca completa con todos sus objetos (archivos, programas, areas de datos, etc.). El comando mas usado para backup de aplicaciones.
SAVOBJGuarda objetos individuales de una biblioteca. Permite seleccionar por tipo, nombre o fecha de modificacion.
SAVCHGOBJGuarda solo los objetos modificados desde la ultima fecha/hora de referencia. Es la base del backup incremental.
SAVSECDTAGuarda datos de seguridad: perfiles de usuario, listas de autorizacion y configuracion de autoridades.
SAVCFGGuarda la configuracion del sistema: lineas, controladores, dispositivos, descripciones de red.
SAVGuarda objetos del IFS (Integrated File System). Usado para archivos en /home, /QOpenSys, /www.
SAVLIB LIB(MILIB) DEV(*SAVF) SAVF(QGPL/MILIBSAVF)
Guardar biblioteca MILIB en un save file
SAVLIB LIB(MILIB) DEV(TAP01)
Guardar biblioteca MILIB en cinta
SAVOBJ OBJ(CLIENTES FACTURAS) LIB(MILIB) DEV(*SAVF)
OBJTYPE(*FILE) SAVF(QGPL/TABLAS)
Guardar solo archivos especificos
SAVCHGOBJ OBJ(*ALL) LIB(MILIB) DEV(*SAVF)
SAVF(QGPL/CAMBIOS) REFDATE('03/01/26')
Guardar solo lo modificado desde el 1 de marzo
SAVSYS DEV(TAP01)
Guardar el sistema operativo completo (estado restringido)
SAVSECDTA DEV(*SAVF) SAVF(QGPL/SECDTA)
Guardar datos de seguridad
SAV DEV('/QSYS.LIB/QGPL.LIB/IFSSAVF.FILE')
OBJ('/home/fernando/*')
Guardar archivos del IFSLa estrategia de backup depende de los requerimientos de RPO (cuanta perdida de datos es aceptable) y de la ventana de tiempo disponible para el backup.
Guarda todo el sistema. Se hace con el sistema en estado restringido (solo consola activa). Es el backup mas seguro pero requiere detener el servicio.
GO SAVE Opcion 21 = Sistema completo (SAVSYS + SAVLIB *NONSYS + SAV) Opcion 22 = Datos del sistema (SAVSYS + SAVSECDTA + SAVCFG) Opcion 23 = Datos de usuario (SAVLIB *ALLUSR + SAV /home) La opcion 21 es el backup mas completo. Requiere estado restringido. Las opciones 22 y 23 se pueden hacer por separado para reducir la ventana de downtime.
Guarda solo los objetos modificados desde el ultimo backup completo. Reduce drasticamente el tiempo de backup pero el restore es mas complejo.
SAVCHGOBJ OBJ(*ALL) LIB(MILIB) DEV(*SAVF)
SAVF(QGPL/INCR0312) REFDATE('03/11/26') REFTIME('230000')
Guardar objetos modificados desde las 23:00 del 11 de marzo
SAVCHGOBJ OBJ(*ALL) LIB(MILIB) DEV(*SAVF)
SAVF(QGPL/INCR0312) REFCHGDATE(*SAVLIB)
Usar como referencia la fecha del ultimo SAVLIBLun
INCR
Mar
INCR
Mie
INCR
Jue
INCR
Vie
FULL
Sab
—
Dom
FULL+SYS
Lun-Jue: SAVCHGOBJ incremental | Vie: SAVLIB completo | Dom: GO SAVE opcion 21
Save-While-Active (SWA) permite hacer backups sin detener las aplicaciones ni poner el sistema en estado restringido. El sistema toma un checkpoint logico (punto de sincronizacion) y guarda los datos tal como estaban en ese momento, mientras las aplicaciones siguen trabajando.
SAVLIB LIB(MILIB) DEV(*SAVF) SAVF(QGPL/MILIBSWA) SAVACT(*LIB) SAVACTMSGQ(QSYSOPR) Save-while-active a nivel de biblioteca Notifica al operador cuando se alcanza el checkpoint SAVLIB LIB(MILIB) DEV(*SAVF) SAVF(QGPL/MILIBSWA) SAVACT(*SYNCLIB) SAVACTMSGQ(QSYSOPR) Save-while-active sincronizado a nivel de biblioteca Todos los objetos de la biblioteca se sincronizan al mismo punto SAVLIB LIB(MILIB OTRALIB) DEV(TAP01) SAVACT(*SYSDFN) SAVACTMSGQ(QSYSOPR) Save-while-active con sincronizacion definida por el sistema
*LIB sincroniza todos los objetos de una biblioteca. *SYNCLIB asegura consistencia entre objetos dependientes. *SYSDFN deja al sistema decidir el mejor nivel. Para la mayoria de los casos, *LIB es suficiente.BRMS es un producto licenciado de IBM (5770-BR1) que automatiza y gestiona todo el proceso de backup. Es como un "Veeam" o "Bacula" integrado al SO, pero mucho mas simple porque ya conoce todos los objetos del sistema.
Politicas de backup
Define que se guarda, cuando, y a que medio. Se ejecuta automaticamente segun la politica.
Gestion de medios
Controla cintas y save files. Sabe que datos hay en cada volumen y cuando expiran.
Catalogo de recovery
Mantiene un registro de todos los objetos guardados y en que medio estan. Facilita restores selectivos.
Reporte de recovery
Genera automaticamente el procedimiento de recovery completo paso a paso, personalizado para tu sistema.
WRKPCYBRM *BKU Trabajar con politicas de backup STRBKUBRM CTLGRP(*BKUGRP) Iniciar backup segun grupo de control WRKMEDBRM Trabajar con medios (cintas) WRKMLMBRM Media Library Manager STRRCYBRM OPTION(*SYSTEM) Generar reporte de recovery WRKOBJBRM Ver catalogo de objetos salvados
Los datos de backup se pueden guardar en distintos tipos de medios. Cada uno tiene ventajas segun el escenario.
Cinta fisica (TAP01)
Medio tradicional. Alta capacidad (hasta 30TB por cartucho LTO-9). Ideal para offsite y retension a largo plazo. Requiere hardware dedicado.
Cinta virtual (VRTOPT/IMGCLG)
Emula una cinta usando espacio en disco. Los datos se escriben en archivos de imagen que luego se pueden copiar a cinta real o a otro servidor.
Save File (*SAVF)
Objeto del sistema que almacena datos de backup dentro de una biblioteca. Facil de transferir por FTP o copiar entre sistemas. Limitado por espacio en disco.
Cloud Storage
Usando IBM Cloud Storage Solutions for i, se pueden enviar backups a S3, Azure Blob o IBM Cloud Object Storage.
CRTSAVF FILE(QGPL/MILIBSAVF) Crear save file
SAVLIB LIB(MILIB) DEV(*SAVF) SAVF(QGPL/MILIBSAVF) Guardar en SAVF
DSPSAVF SAVF(QGPL/MILIBSAVF) Ver contenido del save file
CLRSAVF FILE(QGPL/MILIBSAVF) Limpiar save file para reutilizar
CPYTOSTMF FROMMBR('/QSYS.LIB/QGPL.LIB/MILIBSAVF.FILE')
TOSTMF('/home/backups/milib.savf')
Copiar save file al IFS para transferir por FTP/SFTP
SAVSAVFDTA SAVF(QGPL/MILIBSAVF) DEV(TAP01)
Copiar un save file a cintaLos comandos de restore son el espejo de los de save. Cada SAV tiene su RST correspondiente. El restore puede ser de una biblioteca completa, objetos individuales, o el sistema entero.
RSTLIB SAVLIB(MILIB) DEV(*SAVF) SAVF(QGPL/MILIBSAVF)
Restaurar biblioteca completa desde save file
RSTLIB SAVLIB(MILIB) DEV(*SAVF) SAVF(QGPL/MILIBSAVF)
RSTLIB(MILIB_COPY)
Restaurar a una biblioteca diferente (para comparar)
RSTOBJ OBJ(CLIENTES) SAVLIB(MILIB) DEV(*SAVF)
SAVF(QGPL/MILIBSAVF) OBJTYPE(*FILE)
Restaurar un solo objeto
RSTOBJ OBJ(CLIENTES) SAVLIB(MILIB) DEV(*SAVF)
SAVF(QGPL/MILIBSAVF) OBJTYPE(*FILE)
RSTLIB(MILIB) MBROPT(*ALL) ALWOBJDIF(*ALL)
Restaurar forzando diferencias de autoridad
RSTSECDTA DEV(*SAVF) SAVF(QGPL/SECDTA)
Restaurar datos de seguridad
RSTCFG DEV(TAP01) OBJTYPE(*ALL)
Restaurar configuracion del sistema
RST DEV('/QSYS.LIB/QGPL.LIB/IFSSAVF.FILE')
OBJ('/home/fernando/*')
Restaurar archivos del IFSRSTOBJ para ser selectivo. Siempre verifica el contenido del save con DSPSAVF antes de restaurar.RSTLIB(MILIB_TEST) permite restaurar una biblioteca con otro nombre. Esto es muy util para verificar el backup o comparar datos entre la version actual y la respaldada.Un plan de disaster recovery (DR) define como restaurar el sistema completo ante una perdida total. La clave es tener documentado y probado el procedimiento antes de que ocurra el desastre.
Inventario del sistema
Documentar modelo, version de SO, productos licenciados, PTFs, configuracion de red, IP addresses.
Medios de recovery
Backup completo (GO SAVE opcion 21) almacenado offsite. Incluye cintas de SAVSYS, SAVLIB y SAV.
Procedimiento de restore
Pasos detallados: 1) Instalar LIC, 2) RSTSYS, 3) RSTCFG, 4) RSTSECDTA, 5) RSTLIB de cada biblioteca.
Hardware de contingencia
Servidor alternativo (propio o de un proveedor de DR) con capacidad suficiente para correr la carga.
Pruebas periodicas
Realizar un DR drill al menos 1-2 veces al anio. Documentar tiempos, problemas y correcciones.
Comunicacion
Lista de contactos, proveedores de IBM, numeros de contrato de soporte.
STRRCYBRM OPTION(*SYSTEM) genera automaticamente un documento con todos los pasos necesarios para restaurar tu sistema especifico, incluyendo el orden correcto de los medios y los comandos exactos a ejecutar.Verificar los backups
Un backup que no se puede restaurar es inutil. Verificar periodicamente con DSPSAVF y hacer restores de prueba.
Almacenamiento offsite
Al menos una copia de backup debe estar fuera del datacenter fisico. Puede ser en cinta offsite o en cloud.
Documentar el procedimiento
El procedimiento de restore debe estar documentado y accesible fuera del sistema (impreso o en otro servidor).
Regla 3-2-1
3 copias de los datos, en 2 tipos de medio diferentes, con 1 copia offsite. Aplica tambien en IBM i.
Monitorear los backups
Configurar alertas para backups fallidos. Revisar el QHST y los mensajes de QSYSOPR despues de cada backup.
Journaling activo
Mantener journaling activo en todas las tablas criticas. Es prerequisito para save-while-active y alta disponibilidad.
-- Ver historial de saves de una biblioteca
SELECT SAVE_TIMESTAMP, SAVE_COMMAND, SAVE_DEVICE,
SAVE_FILE_NAME, SAVE_ACTIVE_OPTION
FROM QSYS2.SAVE_HISTORY
WHERE LIBRARY_NAME = 'MILIB'
ORDER BY SAVE_TIMESTAMP DESC
FETCH FIRST 10 ROWS ONLY;
-- Verificar que todas las bibliotecas criticas tienen backup reciente
SELECT L.SCHEMA_NAME,
S.SAVE_TIMESTAMP AS ultimo_backup,
DAYS(CURRENT_DATE) - DAYS(DATE(S.SAVE_TIMESTAMP)) AS dias_sin_backup
FROM QSYS2.SYSSCHEMAS L
LEFT JOIN LATERAL (
SELECT SAVE_TIMESTAMP FROM QSYS2.SAVE_HISTORY
WHERE LIBRARY_NAME = L.SCHEMA_NAME
ORDER BY SAVE_TIMESTAMP DESC
FETCH FIRST 1 ROW ONLY
) S ON 1=1
WHERE L.SCHEMA_NAME IN ('MILIB', 'PRODLIB', 'APPLIB')
ORDER BY dias_sin_backup DESC NULLS FIRST;A partir de IBM i 7.6, BRMS 5770-BR1 ya no se entrega. Es reemplazado por BRMS 5770-BR2, disponible como suscripcion. Si usas BRMS, la migracion a BR2 es obligatoria antes de actualizar a 7.6.
BR2 incluye una interfaz web accesible en http://<sistema>:2088. Permite gestionar backups, medios y monitorear operaciones desde el browser. Tambien incluye un boton SQL que muestra las queries equivalentes para cada tabla.
Con MFA habilitado en IBM i 7.6, la pantalla de login de BRMS muestra "Next" en lugar de "Log In". Despues de ingresar usuario y password, se solicita el segundo factor de autenticacion.
-- 1. Respaldar la biblioteca BRMS
SAVLIB LIB(QUSRBRM) DEV(*SAVF) SAVF(BACKUPLIB/SAVBRMS)
-- 2. Remover los servicios SQL de BRMS
CALL QBRM/Q1AOLD PARM('INSTALL ' 'RMVSQLSERV' 'N' '00')
-- 3. Eliminar el producto BR1
DLTLICPGM LICPGM(5770BR1) OPTION(*ALL)
-- 4. Instalar BR2
RSTLICPGM LICPGM(5770BR2) DEV(OPTVRT01)
-- 5. Aplicar los Group PTFs mas recientes de BRMSEn 7.6, las operaciones de BRMS con cinta requieren que el usuario tenga tanto *IOSYSCFG como *SAVSYS como autoridades especiales.
IBM Cloud Storage Solutions for i (5733-ICC) provee una conexion nativa desde IBM i a almacenamiento cloud via protocolos como S3. Permite guardar archivos y objetos directamente en la nube, integrando con BRMS para backups cloud-based.
La clave para una instalacion o upgrade exitoso de IBM i 7.6 es la preparacion. Se puede comenzar dias o semanas antes sin requerir downtime.
CHKPRDOPT para detectar problemas existentesRCLSTG SELECT(*DBXREF) para rebuild de cross-reference de Db2