Cómo restaurar sólo un grupo de archivos específico – Una restauración por etapas

¿Qué es una restauración por etapas?

Las restauraciones por etapas le permiten al usuario restaurar sólo grupos de archivos específicos de una base de datos en lugar de restaurar una base de datos completa. En casos de emergencia lo importante es obtener los datos necesarios tan pronto como sea posible, y restaurar el resto de los datos más tarde, mientras se dispone de los datos más importantes en línea. Este enfoque minimiza el tiempo de inactividad cuando ocurre un desastre.

Unos escenarios de restauración por etapas pueden ser:

  • Restauración por etapas en línea

    Cuando se realiza la restauración parcial, la base de datos está en línea y el grupo de archivos primario y todos los grupos de archivos secundarios que se han recuperado están disponibles. Los grupos de archivos que no se han incluido en el proceso de restauración permanecerán sin conexión, pero se pueden restaurar fácilmente cuando sea necesario, sin necesidad de desconectar la base de datos

  • Restauración por partes sin conexión

    De forma similar a la restauración por etapas en línea, la base de datos permanece en línea después de realizar la restauración parcial y todos los grupos de archivos que no se han restaurado permanecen sin conexión, pero se pueden restaurar cuando sea necesario al desconectar la base de datos.

  • Restauración por etapas para bases de datos con tablas con optimización para memoria

    Al realizar este tipo de restauración por etapas, es importante tener en cuenta el hecho de que existe una restricción importante para este caso. Se debe realizar una copia de seguridad y restauración de un grupo de archivos con optimización para memoria junto con el grupo de archivos primario:

    1. Si se restaura o se realiza una copia de seguridad del grupo primario, se debe especificar el grupo de archivos con optimización para memoria
    2. Si se restaura o se realiza una copia de seguridad de un grupo de archivos con optimización para memoria, se debe especificar el grupo principal

La restauración por etapas sin conexión es soportada por todas las versiones de SQL Server, pero la opción en línea sólo está disponible en la edición Enterprise.

Una secuencia de restauración por etapas comienza con la restauración del grupo de archivos primario. Con este paso una base de datos se pone en línea. Después de este paso, a medida que se restaura cada grupo de archivos secundario, sus datos están en línea y están disponibles para realizar consultas periódicamente.

Restauraciones por etapas en diferentes modelos de recuperación

Se pueden realizar restauraciones por etapas para ambos modelos de recuperación de bases de datos tanto simple como completo, o también modelos de recuperación por medio de registros de operaciones masivas con algunas diferencias, y los requisitos para realizar una restauración por etapas dependen del modelo de recuperación de base de datos. Sin embargo, una restauración por etapas es más flexible para las bases de datos con modelos de recuperación completo y por medio de registros de operaciones masivas.

Cuando una base de datos se encuentra en un modelo de recuperación Simple, una restauración por etapas recupera una base de datos en etapas y comienza con la restauración del grupo de archivos primario y todos los grupos de archivos secundarios de lectura y escritura en secuencia. Para bases de datos en modelo de recuperación simple, antes de una restauración por etapas, una base de datos debe tener una copia de seguridad completa o parcial de la base de datos.

Para bases de datos en modelo de recuperación completo, antes de que se inicie la restauración por etapas, un Administrador de Base de datos debe realizar copias del final del registro de la base de datos. Luego de eso, una restauración por etapas es la misma que en el modelo de recuperación simple comenzando con la restauración del grupo de archivos primario.

Para todos los modelos de recuperación una restauración por etapas comienza con una secuencia de restauración parcial que es una secuencia de restauración inicial. Esa secuencia restaura el grupo de archivos primario. Para bases de datos en modelo de recuperación simple, la restauración parcial también restaurará todos los grupos de archivos de lectura/escritura junto con el grupo de archivos primario. Durante la secuencia de restauración inicial, la base de datos debe estar desconectada. Luego de la restauración inicial, la base de datos está en línea y todos los grupos de archivos restaurados durante la restauración inicial están disponibles.

En nuestro artículo anterior escribimos sobre cómo hacer una copia de seguridad de un grupo de archivos específico, así como escenarios sobre cómo realizar un particionamiento en varios grupos de archivos para mejorar el rendimiento y la administración.

En este artículo explicaremos cómo restaurar un grupo de archivos específico y cómo realizar una restauración por etapas utilizando T-SQL.

Las restauraciones por etapas no son soportadas por SQL Server Management Studio ni por los Planes de mantenimiento.

Para el propósito de este artículo hemos creado una nueva base de datos, FilegroupRestores, con dos grupos de archivos y hemos realizado las copias de seguridad por completo y del registro de transacciones.

Restaurar por etapas utilizando T-SQL

La secuencia de restauración parcial para cada modelo de recuperación comienza con la instrucción RESTORE DATABASE para restaurar una copia de seguridad completa de la base de datos y se debe especificar la opción WITH PARTIAL. En la primera restauración parcial se pueden restaurar los grupos de archivos necesarios, pero la primera secuencia debe incluir el grupo de archivos PRIMARY.

En este ejemplo, nuestra base de datos está en un modo de recuperación completo, por lo que también deberemos restaurar los registros de transacciones:

RESTORE DATABASE FilegroupRestores FILEGROUP = 'Primary'
FROM DISK = N'E:\FGBackups\BackupFG_full.bak'
WITH PARTIAL
	,NORECOVERY

RESTORE LOG FilegroupRestores
FROM DISK = N'E:\FGBackups\BackupFG_tlog1.trn'
WITH NORECOVERY

RESTORE LOG FilegroupRestores
FROM DISK = N'E:\FGBackups\BackupFG_tlogtail.trn'
WITH RECOVERY

Con esta consulta hemos recuperado sólo un grupo de archivos PRIMARY y realizado una restauración por etapas. Para comprobar el estado del otro grupo de archivos debemos utilizar la siguiente consulta:

SELECT NAME AS FilegroupName
	,state_desc AS RecoveryStatus
FROM FilegroupRestores.sys.database_files;
GO

Esta consulta nos da el estado de nuestros grupos de archivos:

Como podemos ver, el grupo de archivos PRIMARY está restaurado y en línea, y podemos continuar recuperando el resto de los grupos de archivos deseados.

 

febrero 23, 2017