No se puede conectar a la base de datos DB2 después de restaurar una copia de seguridad fuera de línea

dba.stackexchange https://dba.stackexchange.com/questions/15809

  •  22-10-2019
  •  | 
  •  

Pregunta

Esto es para DB2 9.7 Enterprise Server Edition en AIX.

Tenía una copia de seguridad completa y fuera de línea de varias bases de datos dentro de nuestra instancia en un entorno de rendimiento.

Quería restaurar estas bases de datos a nuestro entorno de integración.

Ejecuté el comando

db2 restore database database_name from 
/bkp/instance_name/OfflineBackups/RestorePoint/my_restore_point 
taken at 20120321103846 into database_name without prompting;

para cada una de mis bases de datos (modificando el nombre de la base de datos y la marca de tiempo de manera apropiada, por supuesto).

Cada base de datos se restauró con éxito según DB2. Sin embargo, ahora, cuando deseo verificar si la base de datos realmente restauró lo que pensaba, intento conectarme a una base de datos y recibo el error

    SQL1117N  A connection to or activation of database "database_name" cannot be made 
because of ROLL-FORWARD PENDING.  SQLSTATE=57019

No tuve transacciones en procesos en la base de datos anterior porque todas las conexiones fueron forzadas y la base de datos estaba baja para una copia de seguridad fuera de línea. ¿Qué debo hacer?

¿Fue útil?

Solución

Encontré la respuesta aquí.

Necesitaba ejecutar el comando

db2 rollforward db database_name to end of backup and complete;

Esto compromete todo a los registros y coloca la base de datos en un estado ya no pendiente, lo que permite la conexión. Necesitaba hacer esto para cada base de datos restaurada.

EDITAR: Encontró esta ingeniosa pepita mientras asistía a un Db2nightshow episodio. Con 9.7 fp2, introdujeron una variable de registro llamada DB2_RESTORE_GRANT_ADMIN_AUTHORITY. Esto es útil si está restaurando una copia de seguridad de una instancia a otra, ya que otorga automáticamente el propietario de la instancia Secadm, DBADM, DataAccess y AccessCTRL en las bases de datos restauradas. Con 9.7 FP5, la configuración es dinámica y no requiere rebotar la instancia. Me doy cuenta de que mi pregunta original no tenía nada que ver con la seguridad, pero se puede encontrar y pensé que este sería un dato útil colocado aquí.


Editar #2: Recientemente descubrí que si la copia de seguridad es una copia de seguridad fuera de línea basada en una base de datos registrada de archivo, podría haber incluido la cláusula WITHOUT ROLLING FORWARD en mi RESTORE dominio. Esto habría sacado la base de datos a partir del estado pendiente inmediatamente después de la restauración exitosa, lo que significaría que no habría tenido que emitir el ROLLFORWARD DB dominio.

Otros consejos

Si el tipo de copia de seguridad puede estar en copia de seguridad en línea.

Use la ruta log ("/db2logTarget")

Por ejemplo:- db2 => rollforward db userdb hasta el final de los registros y complete la ruta de registro de desbordamiento ("/home/user/target")

Licenciado bajo: CC-BY-SA con atribución
No afiliado a dba.stackexchange
scroll top