Restauraciones de base de datos completas (modelo de recuperación completa)
El objetivo de una restauración completa de la base de datos es restaurar toda la base de datos. Durante el proceso de restauración, la base de datos completa se encuentra sin conexión. Antes de que ninguna parte de la base de datos esté en línea, se recuperan todos los datos a un punto coherente en el que todas las partes de la base de datos se encuentran en el mismo momento y en el que no existe ninguna transacción sin confirmar.
En el modelo de recuperación completa, después de restaurar la copia o copias de seguridad de los datos, debe restaurar todas las copias de seguridad de registros de transacciones posteriores y, a continuación, recuperar la base de datos. Puede restaurar una base de datos a un punto de recuperación específico en una de estas copias de seguridad de registros. El punto de recuperación puede ser una fecha y hora específicas, una transacción marcada o un número de secuencia de registro (LSN).
Al restaurar una base de datos, especialmente en el modelo de recuperación completa o el modelo de recuperación optimizado para cargas masivas de registros, debe usar una única secuencia de restauración. Una secuencia de restauración consta de dos o más operaciones de restauración que mueven datos en una o varias fases de restauración.
Nota de seguridad |
---|
Se recomienda no adjuntar ni restaurar bases de datos de orígenes desconocidos o que no sean de confianza. Estas bases de datos pueden contener código malintencionado que podría ejecutar código Transact-SQL inesperado o provocar errores debido a la modificación del esquema o de la estructura de la base de datos física. Antes de usar una base de datos de origen desconocido o que no es de confianza, ejecute DBCC CHECKDB en la base de datos en un servidor que no sea de producción y examine también el código, como procedimientos almacenados u otro código definido por el usuario, de la base de datos. |
En este tema:
Restaurar una base de datos hasta el momento del error
Restaurar bases de datos a un punto de una copia de seguridad de registros
Tareas relacionadas
[!NOTA]
Para obtener información acerca de la compatibilidad con las copias de seguridad de versiones anteriores de SQL Server, vea la sección "Soporte de compatibilidad" de RESTORE (Transact-SQL).
Restaurar una base de datos hasta el momento del error
En general, la recuperación de una base de datos hasta el momento del error incluye los siguientes pasos básicos:
Realizar una copia de seguridad del registro de transacciones activo (denominado el final del registro). De esta forma se crea una copia del final del registro. Si el registro de transacciones activo no está disponible, todas las transacciones de esa parte del registro se pierden.
Importante En el modelo de recuperación optimizado para cargas masivas de registros, realizar la copia de seguridad de un registro que contiene operaciones de registro masivo requiere acceso a todos los archivos de datos de la base de datos. Si no se puede tener acceso a los archivos de datos, no se puede realizar una copia de seguridad del registro de transacciones. En ese caso, debe repetir manualmente todos los cambios realizados desde la copia de seguridad de registros más reciente.
Para obtener más información, vea Copias del final del registro (SQL Server).
Restaurar la copia de seguridad completa más reciente sin recuperar la base de datos (RESTORE DATABASE database_name FROM backup_device WITH NORECOVERY).
Si existen copias de seguridad diferenciales, restaurar la más reciente sin recuperar la base de datos (RESTORE DATABASE database_name FROM differential_backup_device WITH NORECOVERY).
Al restaurar la copia de seguridad diferencial más reciente se reduce el número de copias de seguridad de registros que se deben restaurar.
Restaurar los registros secuencialmente con la opción NORECOVERY, comenzando por la primera copia de seguridad de registros de transacciones creada después de la copia de seguridad que se acaba de restaurar.
Recuperar la base de datos (RESTORE DATABASE database_name WITH RECOVERY). Como alternativa, este paso se puede combinar con la restauración de la última copia de seguridad de registros.
En la siguiente ilustración se muestra esta secuencia de restauración. Después de que se produzca un error (1), se crea una copia del final del registro (2). A continuación, la base de datos se restaura al punto del error. Esto implica la restauración de una copia de seguridad de la base de datos, de una copia de seguridad diferencial subsiguiente, y de cada copia de seguridad de registros realizada después de la copia de seguridad diferencial, incluida la copia del final del registro.
[!NOTA]
Para restaurar una copia de seguridad de la base de datos en una instancia de servidor distinta, vea Copiar bases de datos con Copias de seguridad y restauración.
Sintaxis RESTORE de Transact-SQL básica
La sintaxis Transact-SQL de RESTORE básica para la secuencia de restauración en la ilustración anterior es la siguiente:
RESTORE DATABASE database FROM full database backup WITH NORECOVERY;
RESTORE DATABASE database FROM full_differential_backup WITH NORECOVERY;
RESTORE LOG database FROM log_backup WITH NORECOVERY;
Repita este paso de restauración del registro para cada copia de seguridad de registros adicional.
RESTORE DATABASE database WITH RECOVERY;
[Arriba]
Ejemplo: recuperar hasta el momento del error (Transact-SQL)
En el siguiente ejemplo de Transact-SQL se muestran las opciones fundamentales en una secuencia de restauración que restaura la base de datos hasta el momento del error. En el ejemplo se crea una copia del final del registro de la base de datos. A continuación, en el ejemplo se restaura una copia de seguridad completa de la base de datos y una copia de seguridad de registros; a continuación; se restaura la copia del final del registro. En el ejemplo, se recupera la base de datos en un último paso independiente.
[!NOTA]
En este ejemplo se usa una copia de seguridad de base de datos y una copia de seguridad de registros que se crea en la sección "Usar copias de seguridad de la base de datos en el modelo de recuperación completa" de Copias de seguridad completas de bases de datos (SQL Server). Antes de la copia de seguridad de la base de datos, la base de datos de ejemplo de AdventureWorks2012 se ha configurado para usar el modelo de recuperación completa.
USE master;
--Create tail-log backup.
BACKUP LOG AdventureWorks2012
TO DISK = 'Z:\SQLServerBackups\AdventureWorksFullRM.bak'
WITH NORECOVERY;
GO
--Restore the full database backup (from backup set 1).
RESTORE DATABASE AdventureWorks2012
FROM DISK = 'Z:\SQLServerBackups\AdventureWorksFullRM.bak'
WITH FILE=1,
NORECOVERY;
--Restore the regular log backup (from backup set 2).
RESTORE LOG AdventureWorks2012
FROM DISK = 'Z:\SQLServerBackups\AdventureWorksFullRM.bak'
WITH FILE=2,
NORECOVERY;
--Restore the tail-log backup (from backup set 3).
RESTORE LOG AdventureWorks2012
FROM DISK = 'Z:\SQLServerBackups\AdventureWorksFullRM.bak'
WITH FILE=3,
NORECOVERY;
GO
--recover the database:
RESTORE DATABASE AdventureWorks2012 WITH RECOVERY;
GO
[Arriba]
Restaurar bases de datos a un punto de una copia de seguridad de registros
En el modelo de recuperación completa, una restauración completa de la base de datos se puede recuperar normalmente hasta un momento en el tiempo, una transacción marcada o un LSN de la copia de seguridad de registros. Sin embargo, en el modelo de recuperación optimizado para cargas masivas de registros, si la copia de seguridad de registros contiene cambios de registros de operaciones masivas, no es posible la recuperación a un momento dado.
Escenarios de ejemplo de restauración en un momento concreto
En este siguiente ejemplo se presupone que usa un sistema de base de datos de gran importancia para el que se crea una copia de seguridad completa diariamente cada medianoche, una copia de seguridad diferencial de la base de datos cada hora, de lunes a sábado, y copias de seguridad del registro de transacciones cada 10 minutos durante el día. Para restaurar la base de datos al estado en que estaba a las 5:19 a.m. del miércoles, debe hacer lo siguiente:
Restaure la copia de seguridad de la base de datos completa creada la medianoche del martes.
Restaure la copia de seguridad diferencial de la base de datos creada a las 5:00 a.m. del miércoles.
Aplique la copia de seguridad del registro de transacciones creada a las 5:10 a.m. del miércoles.
Aplique la copia de seguridad del registro de transacciones creada a las 5:20 a.m. del miércoles y especifique que el proceso de recuperación solo se aplique a las transacciones realizadas antes de las 5:19 a.m.
O bien, si la base de datos tiene que restaurarse a su estado de las 3:04 a.m. del jueves, pero la copia de seguridad diferencial de la base de datos que se creó el jueves a las 3:00 a.m. no está disponible, haga lo siguiente:
Restaure la copia de seguridad de la base de datos creada la medianoche del miércoles.
Restaure la copia de seguridad diferencial de la base de datos creada a las 2:00 a.m. del jueves.
Aplique todas las copias de seguridad del registro de transacciones creadas desde las 2:10 a.m. a las 3:00 a.m. del jueves.
Aplique la copia de seguridad del registro de transacciones creada a las 3:10 a.m. del jueves y detenga el proceso de recuperación a las 3:04 a.m.
[!NOTA]
Para obtener un ejemplo de una restauración en un momento concreto, vea Restaurar una base de datos de SQL Server a un momento dado (modelo de recuperación completa).
Tareas relacionadas
Para restaurar una copia de seguridad completa de la base de datos
Restaurar una copia de seguridad de base de datos (SQL Server Management Studio)
Restaurar una base de datos a una nueva ubicación (SQL Server)
Para restaurar una copia de seguridad diferencial de la base de datos
Para restaurar una copia de seguridad del registro de transacciones
Para restaurar una copia de seguridad mediante los objetos de administración de SQL Server (SMO)
Para restaurar bases de datos a un punto de una copia de seguridad de registros
Restaurar una base de datos de SQL Server a un momento dado (modelo de recuperación completa)
Recuperación de bases de datos relacionadas que contienen transacciones marcadas
[Arriba]
Vea también
Referencia
sp_addumpdevice (Transact-SQL)
Conceptos
Aplicar copias de seguridad de registros de transacción (SQL Server)
Copias de seguridad completas de bases de datos (SQL Server)
Copias de seguridad diferenciales (SQL Server)
Información general de copia de seguridad (SQL Server)
Información general sobre restauración y recuperación (SQL Server)