Ejemplo: restauración por etapas de la base de datos (modelo de recuperación completa)
En una secuencia de restauración por etapas se restaura y recupera una base de datos en fases en el nivel del grupo de archivos, empezando con los grupos de archivos principales, los de lectura y escritura, y los secundarios.
En este ejemplo, la base de datos adb se restaura en un nuevo equipo después de un desastre. La base de datos está utilizando el modelo de recuperación completa, por lo que, antes de iniciar la restauración, debe crearse una copia del final del registro de la base de datos. Antes del desastre, todos los grupos de archivos están en línea. El grupo de archivos B es de solo lectura. Se deben restaurar todos los grupos de archivos secundarios, pero por orden de importancia: A (el de mayor importancia), C y, por último, B. En este ejemplo, hay cuatro copias de seguridad de registros, incluida la copia del final del registro.
Copia del final del registro
Antes de restaurar la base de datos, el administrador debe realizar una copia de seguridad de registros después del error. Puesto que la base de datos está dañada, es necesario usar la opción NO_TRUNCATE al realizar la copia del final del registro:
BACKUP LOG adb TO tailLogBackup WITH NORECOVERY, NO_TRUNCATE
La copia del final del registro es la última copia de seguridad que se aplica en las secuencias de restauración siguientes.
Secuencias de restauración
[!NOTA]
La sintaxis de un flujo de restauración en línea es la misma que la de un flujo de restauración sin conexión.
Restauración parcial del grupo de archivos principal y secundario A.
RESTORE DATABASE adb FILEGROUP='Primary' FROM backup1 WITH PARTIAL, NORECOVERY RESTORE DATABASE adb FILEGROUP='A' FROM backup2 WITH NORECOVERY RESTORE LOG adb FROM backup3 WITH NORECOVERY RESTORE LOG adb FROM backup4 WITH NORECOVERY RESTORE LOG adb FROM backup5 WITH NORECOVERY RESTORE LOG adb FROM tailLogBackup WITH RECOVERY
Restauración en línea del grupo de archivos C.
En este momento, el grupo de archivos principal y el secundario A están en línea. Todos los archivos de los grupos de archivos B y C están pendientes de recuperación y sin conexión.
Los mensajes de la última instrucción RESTORE LOG del paso 1 indican que la reversión de las transacciones en las que interviene el grupo de archivos C se ha diferido porque este grupo de archivos no está disponible. Las operaciones periódicas pueden continuar, pero estas transacciones mantienen los bloqueos y no se truncará el registro hasta que se pueda completar la reversión.
En la segunda secuencia de restauración, el administrador de la base de datos restaura el grupo de archivos C:
RESTORE DATABASE adb FILEGROUP='C' FROM backup2a WITH NORECOVERY RESTORE LOG adb FROM backup3 WITH NORECOVERY RESTORE LOG adb FROM backup4 WITH NORECOVERY RESTORE LOG adb FROM backup5 WITH NORECOVERY RESTORE LOG adb FROM tailLogBackup WITH RECOVERY
En este momento, los grupos de archivos principal, A y C están en línea. Los archivos del grupo B permanecen pendientes de recuperación, con el grupo de archivos sin conexión. Las transacciones diferidas se han resuelto y se trunca el registro.
Restauración en línea del grupo de archivos B.
En la tercera secuencia de restauración, el administrador de la base de datos restaura el grupo de archivos B. La copia de seguridad del grupo de archivos B se realizó después de cambiar el grupo a solo lectura, por lo que no es necesario ponerlo al día durante la recuperación.
RESTORE DATABASE adb FILEGROUP='B' FROM backup2b WITH RECOVERY
Todos los grupos de archivos están ahora en línea.
Otros ejemplos
Ejemplo: restauración por etapas de base de datos (modelo de recuperación simple)
Ejemplo: restauración en línea de un archivo de solo lectura (modelo de recuperación simple)
Ejemplo: restauración en línea de un archivo de lectura/escritura (modelo de recuperación completa)
Ejemplo: restauración en línea de un archivo de solo lectura (modelo de recuperación completa)
Vea también
Referencia
Conceptos
Restauración en línea (SQL Server)
Aplicar copias de seguridad de registros de transacción (SQL Server)