Notas del release


10.1 Capítulo 8. Recuperación de una base de datos

10.1.1 Cómo utilizar la suspensión de E/S

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:

Nota:
La información facilitada a continuación sobre el programa de utilidad db2inidb sustituye la información del manual Novedades de la Versión 7.2.

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.

  1. Creación de una base de datos clónica

    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:

    1. Suspenda las grabaciones de E/S en la base de datos primaria entrando el mandato siguiente:
           db2 set write suspend for database
      
    2. Utilice los mandatos de nivel de sistema operativo que sirvan para dividir la reflexión de la base de datos primaria.
    3. Reanude las grabaciones de E/S en la base de datos primaria entrando el mandato siguiente:
           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.

    4. Monte la reflexión dividida de la base de datos desde otro sistema.
    5. Inicie la instancia de la base de datos entrando el mandato siguiente:
           db2start
      
    6. Inicie la recuperación frente a anomalía grave de DB2 entrando el mandato siguiente:
      db2inidb nombre_base_datos AS  SNAPSHOT
      
      Nota:
      Este mandato eliminará el estado de grabación suspendida y retrotraerá los cambios efectuados por las transacciones que estaban en ejecución en el momento de la división.

    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á.

  2. Utilización de la reflexión dividida como base de datos en espera

    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:

    1. Suspenda las grabaciones de E/S en la base de datos primaria.
      	db2 set write suspend for database
      
    2. Utilice los mandatos de nivel de sistema operativo que sirvan para dividir la reflexión de la base de datos primaria.
    3. Reanude las grabaciones de E/S en la base de datos primaria para que vuelva al proceso normal.
      	db2 set write resume for database
      
    4. Monte la reflexión dividida de la base de datos en otro sistema.
    5. Coloque la reflexión en estado pendiente de recuperación en avance y recupere en avance la reflexión.
      	db2inidb nombre_base_datos AS STANDBY
      

      Nota:
      Este mandato eliminará el estado de grabación suspendida y colocará la base de datos reflejada en estado pendiente de recuperación en avance.
    6. Copie las anotaciones cronológicas configurando un programa de salida de usuario para recuperar archivos de anotaciones cronológicas del sistema primario con el fin de asegurarse de que estén disponibles las anotaciones cronológicas más recientes para esta base de datos reflejada.
    7. Recupere en avance la base de datos hasta el final de las anotaciones cronológicas.
    8. Vuelva al paso f y repita este proceso hasta que la base de datos primaria esté inactiva.

  3. Utilización de la reflexión dividida como imagen de copia de seguridad

    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:

    1. Utilice los mandatos del sistema operativo que sirvan para copiar los datos reflejados y las anotaciones cronológicas encima de la base de datos primaria.
    2. Inicie la instancia de la base de datos entrando el mandato siguiente:
           db2start
      
    3. Ejecute el mandato siguiente para colocar la base de datos reflejada en un estado pendiente de recuperación en avance y para eliminar el estado de grabación suspendida.
      db2inidb nombre_base_datos AS MIRROR
      
    4. Recupere en avance la base de datos hasta el final de las anotaciones cronológicas.
  4. División de una reflexión sobre el mismo sistema de la base de datos primaria

    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.

    1. Cree una nueva instancia en el sistema actual.
    2. Suspenda las grabaciones de E/S en la base de datos primaria.
      	db2 set write suspend for database
      
    3. Utilice los mandatos de nivel de sistema operativo que sirvan para dividir la reflexión de la base de datos primaria.
      Nota:
      El directorio de la base de datos, los directorios de contenedor y el directorio de anotaciones cronológicas se deben copiar en directorios diferentes. Si los directorios de contenedor o el directorio de anotaciones cronológicas se hallan bajo el directorio de la base de datos, únicamente habrá que copiar el directorio de la base de datos.
    4. Reanude las grabaciones de E/S en la base de datos primaria para que vuelva al proceso normal.
      	db2 set write resume for database
      
    5. Cree un archivo de configuración con la información siguiente:
      	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>
      

      Nota:
      Los campos LOG_DIR y CONT_PATH sólo son necesarios si el directorio de anotaciones cronológicas y los directorios de contenedor se encuentran fuera del directorio de la base de datos. Los demás campos son necesarios, excepto NODENUM, que tomará el valor por omisión de cero si no se especifica.
    6. Inicie la base de datos desde la instancia recién creada.
      	db2start
      
    7. Reubique la base de datos reflejada, elimine el estado suspendido y coloque la reflexión en el estado pendiente de recuperación en avance:
      	db2inidb nombre_base_datos as STANDBY relocate using config_file
      
    8. Copie las anotaciones cronológicas configurando un programa de salida de usuario para recuperar archivos de anotaciones cronológicas de la base de datos primaria con el fin de asegurarse de que estén disponibles las anotaciones cronológicas más recientes para esta base de datos reflejada.
    9. Recupere en avance la base de datos hasta el final de las anotaciones cronológicas.
    10. Vuelva al paso h y repita este proceso hasta que la base de datos primaria esté inactiva.


[ Principio de página | Página anterior | Página siguiente | Contenido | Índice ]