Blog ID-INFO

¡Pongamos en marcha un SAVE21!

¿Necesita centralizar todos los datos de su sistema IBM i en una única copia de seguridad? Es fácil: ¡lancemos un SAVE21!

Todo el mundo en la comunidad IBM i conoce este término por una opción de menú: te conectas al menú nativo de gestión de copias de seguridad (GO SAVE), seleccionas la opción 21, y todo lo que tienes que hacer es seguir las instrucciones en pantalla.

Por otro lado, ¿no tienes recursos para quedarte toda la noche delante de una pantalla? Fácil: envíe esta copia de seguridad como un archivo por lotes. ¿Cómo lo hacemos? ¡Eso es fácil! Sigue este artículo y te enseñaremos a preparar tu SAVE21 por lotes.

¿Qué protege SAVE21?

Esto incluye el firmware, el sistema (incluidos los datos de seguridad y configuración), todas las bibliotecas y todo el IFS (incluido el directorio QDLS, el famoso «DLO»). También oímos utilizar el término «copia de seguridad de TODO el sistema», en contraposición a una simple «copia de seguridad del sistema», que en realidad se refiere a un SAVSYS, o a la opción 22 del menú SAVE.

Ambos términos tampoco son totalmente independientes. SAVE21 incluye un SAVSYS, al que añade una copia de seguridad completa de los datos del usuario, equivalente a la opción 23 del menú SAVE.

Para todos los comandos enumerados en este artículo, <dispositivo> se refiere a la unidad en la que se inserta <volumen>, el medio de copia de seguridad utilizado. Los comandos de copia de seguridad incluidos en SAVE21 son los siguientes:

Copia de seguridad del firmware y del sistema :

SAVSYS DEV(<dispositivo>)
VOL(<volumen>)
ENDOPT(*LEAVE)

Copia de seguridad del resto de bibliotecas (bibliotecas «no del sistema») :

SAVLIB LIB(*NONSYS)
DEV(<dispositivo>)
VOL(<volumen>)
ENDOPT(*LEAVE)

Guardar «DLOs» (contenido de /QDLS) :

SAVDLO DLO(*TODOS)
DEV(<dispositivo>)
VOL(<volumen>)
ENDOPT(*LEAVE)

Copia de seguridad de todo el IFS (excepto /QDLS y /QSYS.LIB, que ya se han copiado) :

SAV DEV(‘/qsys.lib/<dispositivo>.devd’)
OBJ((‘/*’)
(‘/QSYS.LIB’ *OMIT)
(‘/QDLS’ *OMIT))
VOL(<volumen>)
ENDOPT(*REWIND)

 

¿Cuándo debo presentar mi SAVE21?

SAVE21 debe guardarlo TODO. Esto significa que todos los objetos del sistema deben estar disponibles para el trabajo de copia de seguridad. Para garantizarlo, IBM ha reducido el acceso a SAVE21 al periodo en que el sistema está en modo restringido, es decir, cuando todos los trabajos y subsistemas están parados.

Sin embargo, este modo restringido tiene graves consecuencias: el IBM i es inaccesible y sólo puede ejecutarse un trabajo en el sistema: el trabajo de copia de seguridad. Todas tus aplicaciones estarán caídas, y el sistema será inaccesible, sólo gestionable a través de una consola (HMC o LAN).

El momento oportuno lo es todo, y hay que saber encontrar el intervalo en el que una operación de este tipo tenga el menor impacto posible. También debe comprobar en el programador del sistema si hay trabajos programados durante el periodo de modo restringido, para poder reiniciarlos (si es necesario) al final de la copia de seguridad.

 

¿Cómo presento mi copia de seguridad?

La pregunta «cómo» es la más compleja de responder en el contexto de SAVE21. Dado que el modo restringido le impide reaccionar una vez iniciada la copia de seguridad, debe prever las posibles causas de interrupción antes de enviarla: debe comprobar que el cartucho de copia de seguridad está en la unidad y es utilizable:

CHKTAP DEV(<dispositivo>) ENDOPT(*REWIND)

 

Compruebe siempre de antemano que la cinta está correctamente montada en la unidad. Este comando también libera el mensaje «CPC6778 «, en el que se puede recuperar el nombre del volumen montado en la unidad a través de un RCVMSG.

En el caso de una biblioteca de cintas o VTL, esto evita tener que introducir el nombre del volumen de copia de seguridad codificado en el código fuente. Tenga en cuenta, sin embargo, que el comando CHKTAP no funciona directamente en una biblioteca de cintas; se envía el mensaje CPF415A. En este caso, empieza por encontrar la banda deseada. Utilice la opción 5 para comprobar la categoría (y el sistema, si procede) de este cartucho.
Instale el cartucho y, a continuación, utilice el comando :

SETTAPCGY DEV(<dispositivo>) OPTION(*MOUNTED) CGY(<categoría> <sistema>)

 

<El sistema> sólo es necesario si la categoría es *NOSHARE. Generalmente se refiere al nombre que aparece en el DSPNETA. También hay que tener cuidado de inicializar la cinta antes de utilizarla:

INZTAP DEV(<dispositivo>) CHECK(*NO)

 

A continuación, debe asegurarse de que el trabajo se enviará correctamente y de que el modo restringido es posible.

 

Durante el modo restringido, sólo estará activo el subsistema de control, con un único trabajo en su interior. Se entra en el modo restringido deteniendo todos los subsistemas y se sale de él reiniciando el subsistema de control, lo que hace que se ejecute el programa de puesta en marcha.

El subsistema de control se indica en el valor del sistema QCTLSBSD. En la mayoría de los sistemas, el subsistema de control es QSYS/QCTL, y la sesión que se ejecuta dentro de él es QSYS/DSP01. Hay que asegurarse de que se ponen en marcha. El programa de puesta en marcha se indica en el valor del sistema QSTRUPPGM. Se puede personalizar según las necesidades. Por lo tanto, debe asegurarse de que inicia toda la aplicación. También debe asegurarse de que el JOBQ conectado al subsistema de control está liberado y de que la sesión a la que está conectada la tarea está libre.

Por último, hay que tener en cuenta el rendimiento del sistema en el que se trabaja. No dude en insertar DLYJOBs, que le permitirán, por ejemplo, no lanzar SAVSYS antes de alcanzar el modo restringido. También puede esperar a que se libere el mensaje CPF0968 antes de iniciar la copia de seguridad.

Además, algunas órdenes pueden esperar un resultado antes de continuar con la siguiente orden. Este tiempo de espera de un resultado puede modificarse si el rendimiento es bajo:

CHGJOB DFTWAIT(<duration_in_seconds>)

 

Por último, el rendimiento global del trabajo debería tenerse en cuenta incluso en el comando de inicio por lotes para el modo restringido del sistema:

ENDSBS SBS(*ALL) OPTION(*IMMED) BCHTIMLMT(<maximum_restricted_mode_time_in_minutes>)

 

El valor indicado en el parámetro BCHTIMLMT define la duración máxima del modo restringido, incluso si el trabajo está bloqueado de una forma u otra.

Hay que tener cuidado de que este tiempo no sea demasiado corto para que el trabajo se realice con normalidad, pero tampoco demasiado largo, ya que entonces se corre el riesgo de no poder recuperar el sistema cuando los usuarios necesiten conectarse.

Una vez transcurrido este tiempo, el subsistema de control se reiniciará tanto si el trabajo se ha completado como si no. Si planea crear un programa que funcione tanto interactivamente como por lotes, necesitará condicionar este comando: si se especifica *NOMAX (o se deja el parámetro en su valor por defecto), el comando no funcionará por lotes. Si se especifica un valor distinto de *NOMAX, el comando no funcionará de forma interactiva.

 

Otros parámetros de copia de seguridad :

Los comandos de copia de seguridad pueden ejecutarse en cualquier orden, excepto SAVSYS, que debe ejecutarse primero para tener el microcódigo al inicio de la copia de seguridad y poder lanzar una IPL desde esta fuente.

El parámetro ENDOPT debe entonces adaptarse según este orden para indicar *LEAVE para las copias de seguridad sucesivas y *REWIND o *UNLOAD (según sea necesario) al final de la copia de seguridad. De hecho, *LEAVE ahorra mucho tiempo al rebobinar la cinta.

¿Funciona bien la copia de seguridad, pero no aparece ningún spool después de restaurar una cola? Si los spools son importantes para su aplicación, es esencial especificar un parámetro adicional cuyo valor por defecto no permita realizar copias de seguridad de los archivos spool. En este caso, debe especificarse SPLFDTA(*ALL). Lo mismo ocurre con el contenido de los *DTAQ: QDTA(*DTAQ).

Por último, si el estado de las copias de seguridad debe ser supervisado por un equipo, puede ser ventajoso modificar el parámetro OUTPUT.

*PRINT recupera un archivo spool, que puede ser ‘archivado’ en un OUTQ específico.

*OUTFILE se utiliza para almacenar el resultado de una copia de seguridad en un archivo externo. OUTFILE y OUTMBR deben indicarse entonces con *OUTFILE para especificar la ubicación del archivo. Es posible, por ejemplo, tener un miembro con marca de tiempo por copia de seguridad para llevar un registro del historial. La información de salida se establece entonces mediante el parámetro INFTYPE. Para el comando SAV de copia de seguridad de IFS, la opción *OUTFILE no está disponible para el parámetro OUTPUT.

Advertencia: para el comando SAVLIB LIB(*NONSYS) […] OUTPUT(*OUTFILE) OUTFILE(<biblioteca>/<archivo de salida>), SAVE21 contará sistemáticamente un objeto no guardado, el famoso archivo de salida <biblioteca>/<archivo de salida>. El trabajo de copia de seguridad puede terminar con un código final distinto de 0, lo que puede causar problemas para la supervisión y la generación de informes.

 

¿Cómo puede beneficiarse de un SAVE21?

La principal desventaja de un SAVE21 es que el sistema entra en modo restringido. Pero cualquier desventaja puede aprovecharse para convertirse en una fortaleza. La necesidad del modo restringido puede utilizarse para enviar órdenes que no son posibles en el «modo normal».

Por ejemplo, puede aprovechar el modo restringido para lanzar una recuperación de almacenamiento (RCLSTG), una operación de hardware u operaciones que funcionan mejor sin actividad (detener el registro, modificar un subsistema, modificar el patrón de prueba de conexión, «reorganizar» los archivos más utilizados, aplicar PTF, etc.).

 

¿Tiene alguna pregunta sobre un tema concreto de IBM i? Póngase en contacto con nosotros en el 04 30 96 97 32 o a través del formulario de contacto.

Partager cet article