Notas del release


13.3 Cómo utilizar la suspensión de E/S para la recuperación de la base de datos

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 herramienta suministrada con DB2 que puede realizar una recuperación frente a una anomalía grave o 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 el usuario 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 una imagen de reflexión dividida.

La suspensión de E/S impide las grabaciones en disco mientras se está captando la imagen de reflexión dividida de una base de datos. 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 esperen a que se reanuden las grabaciones de E/S si se deben 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 cuelguen intentos subsiguientes de conexión si requieren que se desechen páginas incorrectas de la agrupación de almacenamientos intermedios en el disco. Estas conexiones se completarán después de reanudarse la E/S de la base de datos. Si los intentos de conexión se cuelgan y ha resultado imposible reanudar la E/S desde la conexión utilizada para la suspensión, tendrá que realizar una recuperación frente a anomalía grave utilizando la opción WRITE RESUME del mandato RESTART.

En un entorno de base de datos particionada, no tiene que suspender las grabaciones de E/S en todas las particiones simultáneamente. Puede suspender un subconjunto de una o más particiones a fin de crear reflexiones divididas para efectuar las copias de seguridad fuera de línea. Si se incluye el nodo de catálogo en el subconjunto, deberá ser la última partición que se suspenda.

La reflexión de una base de datos implica principalmente copiar todo el contenido del directorio de la base de datos y del directorio de la base de datos local. El directorio de la base de datos local, sqldbdir, está ubicado al mismo nivel de estructura de archivos que el directorio de la base de datos principal. Además, si los contenedores de espacio de tablas y el directorio de anotaciones cronológicas no están en el directorio de la base de datos, también se deberán copiar. 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 crear una base de datos de reflexión 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 cambios en los nombres de directorio de base de datos interno, directorio de contenedor, directorio de anotaciones cronológicas, instancia y 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 reflexión dividida desde cualquiera de las particiones. La herramienta db2inidb se puede ejecutar en todas las particiones simultáneamente utilizando el mandato db2_all.

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

    El objetivo aquí es tener un clon de la base de datos primaria que se utilizará en otro sistema. 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 y subsistema de discos que sirvan para dividir la reflexión de la base de datos primaria. Asegúrese de dividir los datos y las anotaciones cronológicas.
    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 primaria en otro sistema.
    5. Inicie la instancia de la base de datos en el otro sistema 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 tenían lugar en el momento de la división.

    También es posible utilizar este proceso para realizar 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 y subsistema de discos que sirvan para dividir la reflexión de la base de datos primaria. Asegúrese de dividir solamente los datos y no las anotaciones cronológicas.
    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. Inicie la instancia de la base de datos primaria utilizando el mandato db2start.
    6. 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.
    7. 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.
    8. Recupere en avance la base de datos hasta el final de las anotaciones cronológicas.
    9. Vuelva al paso f y repita este proceso hasta que la base de datos primaria esté inactiva.
    10. Recupere en avance la base de datos hasta el final de las anotaciones cronológicas, utilizando la opción AND STOP para volver a colocar la base de datos en línea. Ahora estará preparada para su utilización.
  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. Detenga la instancia de la base de datos primaria con el mandato db2stop.
    2. Utilice los mandatos de sistema operativo y subsistema de discos que sirvan para copiar otra vez los datos reflejados encima de la base de datos primaria. No copie otra vez los archivos de anotaciones cronológicas. Las anotaciones cronológicas de la base de datos primaria se deben utilizar para operaciones de recuperación en avance.
    3. Inicie la instancia de la base de datos primaria con el mandato db2start.
    4. 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
      
    5. Recupere en avance la base de datos hasta el final de las anotaciones cronológicas, utilizando la opción AND STOP para volver a colocar la base de datos en línea. Ahora estará preparada para su utilización.
  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 y subsistema de discos que sirvan para dividir la reflexión de la base de datos primaria.
      Nota:
      Debe copiar en la nueva instancia el directorio de la base de datos, el directorio de la base de datos local, los directorios de contenedor y el directorio de anotaciones cronológicas. 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 y el directorio de la base de datos local.
    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_dir_bd_primaria,vía_dir_bd_reflejada
      INSTANCE=instancia_primaria,instancia_reflexión
      LOG_DIR=dir_anot_cronol_bd_primaria,dir_anot_cronol_bd_reflejada
      CONT_PATH=vía_contenedor_bd_primaria_núm.1,
      vía_contenedor_bd_reflejada_núm.1 ...
      CONT_PATH=vía_contenedor_bd_primaria_núm.n,
      vía_contenedor_bd_reflejada_núm.n
      NODENUM=núm_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.
    11. Recupere en avance la base de datos hasta el final de las anotaciones cronológicas, utilizando la opción AND STOP para volver a colocar la base de datos en línea. Ahora estará preparada para su utilización.


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