En el Capítulo 8, que trata de la "Recuperación de una base de datos", se ha añadido y actualizado la sección siguiente sobre el uso de la función de suspensión de E/S:
El programa db2inidb es una nueva herramienta suministrada con DB2 que puede realizar una recuperación frente a una anomalía grave y colocar la base de datos en un estado pendiente de recuperación en avance.
La suspensión de E/S da soporte a la continua disponibilidad del sistema al proporcionar una implementación completa del manejo de la reflexión dividida en línea, es decir, de la división de una reflexión sin cerrar la base de datos. Si un cliente no se puede permitir efectuar copias de seguridad en línea o fuera de línea en una base de datos grande, puede efectuar copias de seguridad o copias del sistema a partir de una imagen de reflexión utilizando la suspensión de E/S y la reflexión dividida.
La suspensión de E/S impide las grabaciones en disco para asegurarse de que la imagen de reflexión dividida de una base de datos sea coherente. Todas las operaciones de base de datos, aparte de la copia de seguridad en línea y la restauración, deberían funcionar normalmente mientras una base de datos se encuentre suspendida. No obstante, puede que algunas operaciones se cuelguen al intentar desechar páginas incorrectas de la agrupación de almacenamientos intermedios o de los almacenamientos intermedios de anotaciones cronológicas en las anotaciones cronológicas. Estas operaciones se deberían reanudar normalmente una vez que se haya reanudado la E/S de la base de datos. Es importante que la E/S de la base de datos se reanude desde la misma conexión desde la que se ha suspendido inicialmente. De lo contrario, puede que se cuelgue un intento subsiguiente de conexión si requiere que se desechen páginas incorrectas de la agrupación de almacenamientos intermedios en el disco.
La reflexión de una base de datos implica principalmente la copia de todo el contenido del directorio de la base de datos. También es necesario copiar el directorio de las anotaciones cronológicas y cualquier contenedor de espacio de tablas si no están ubicados en el directorio de la base de datos. Puesto que la base de datos reflejada con división depende de estas vías de acceso de directorio, las vías de acceso donde se copien estos directorios deben ser idénticas a las del sistema primario. Esto significa que la instancia también debe ser la misma. Como resultado de esta dependencia, no es posible reflejar una base de datos en el mismo sistema de la primaria, a menos que se utilice la nueva opción de "reubicación" de la herramienta db2inidb.
La finalidad de la opción de "reubicación" es reubicar una base de datos en un determinado sistema utilizando un archivo de configuración especificado. Esto puede implicar el cambio del directorio de base de datos interno, de nombres de directorio de contenedor, del directorio de anotaciones cronológicas, del nombre de la instancia y del nombre de la base de datos. Suponiendo que el directorio de la base de datos, los directorios de contenedor y el directorio de anotaciones cronológicas se reflejen satisfactoriamente en diferentes vías de acceso de directorio dentro del mismo sistema de la base de datos primaria, se puede utilizar la herramienta db2inidb con la opción de "reubicación" para actualizar las vías de acceso internas de la base de datos reflejada. Más abajo, encontrará un escenario de utilización de esta opción.
Los usos de db2inidb serán distintos en función de cómo se reflejen los dispositivos de almacenamiento. Los usos siguientes dan por supuesta la reflexión coherente de toda la base de datos en el sistema de almacenamiento.
En un entorno de múltiples nodos, la herramienta db2inidb se debe ejecutar en cada partición para poder utilizar la imagen dividida desde cualquiera de las particiones. La herramienta db2inidb se puede ejecutar en todas las particiones simultáneamente.
El objetivo aquí es tener un clon de la base de datos primaria a utilizar con fines de sólo lectura. El procedimiento siguiente describe cómo se puede crear una base de datos clónica:
db2 set write suspend for database
db2 set write resume for database
Después de la ejecución del mandato, la base de datos primaria debe volver a un estado normal.
db2start
db2inidb nombre_base_datos AS SNAPSHOT
También es posible utilizar este proceso para una copia de seguridad fuera de línea, pero, si se restaura en la base de datos primaria, esta copia de seguridad no se puede utilizar para la recuperación en avance porque la cadena de anotaciones cronológicas no coincidirá.
A medida que la base de datos reflejada (en espera) realiza la recuperación en avance de forma continua a través de las anotaciones cronológicas, las nuevas anotaciones cronológicas creadas por la base de datos primaria se buscan y cargan constantemente desde el sistema primario. El procedimiento siguiente describe cómo se puede utilizar la reflexión dividida como base de datos en espera:
db2 set write suspend for database
db2 set write resume for database
db2inidb nombre_base_datos AS STANDBY
El procedimiento siguiente describe la manera de utilizar la base de datos reflejada como imagen de copia de seguridad a restaurar encima de la base de datos primaria:
db2start
db2inidb nombre_base_datos AS MIRROR
El procedimiento siguiente describe cómo utilizar la opción de "reubicación" de la herramienta db2inidb para reflejar una base de datos sobre el mismo sistema de la base de datos primaria. En el ejemplo se supone que la base de datos se utilizará bajo una nueva instancia.
db2 set write suspend for database
db2 set write resume for database
DB_NAME=<nombre>,<nuevo nombre opcional> DB_PATH=<vía de dir. de bd primaria>,<vía de dir. de bd reflejada> INSTANCE=<instancia primaria>,<instancia de reflexión> LOG_DIR=<dir. anot. cron. bd primaria>,<dir. anot. cron. bd reflejada> CONT_PATH=<vía nº 1 de contenedor de bd primaria>,<vía nº 1 de contenedor de bd reflejada> ... CONT_PATH=<vía n de contenedor de bd primaria>,<vía n de contenedor de bd reflejada> NODENUM=<nº de nodo>
db2start
db2inidb nombre_base_datos as STANDBY relocate using config_file