Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En una restauración completa de la base de datos, el objetivo es restaurar toda la base de datos. Toda la base de datos está sin conexión durante la restauración. Antes de que cualquier parte de la base de datos pueda estar en línea, todos los datos se recuperan en un punto coherente en el que todas las partes de la base de datos están en el mismo momento y no existen transacciones no confirmadas.
En el modelo de recuperación completa, después de restaurar la copia de seguridad de datos o las copias de seguridad, debe restaurar todas las copias de seguridad posteriores del registro de transacciones y, a continuación, recuperar la base de datos. Puede restaurar una base de datos a un punto de recuperación específico dentro de 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 en el modelo de recuperación optimizado para cargas masivas de registros, debe usar una sola secuencia de restauración. Una secuencia de restauración consta de una o varias operaciones de restauración que mueven los datos a través de una o varias de las fases de restauración.
Importante
Se recomienda no adjuntar ni restaurar bases de datos de orígenes desconocidos o que no son de confianza. Estas bases de datos podrían contener código malintencionado que podría ejecutar código no deseado Transact-SQL o provocar errores modificando el esquema o la estructura de la base de datos física. Antes de usar una base de datos de un 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, en la base de datos.
En este tema:
Nota:
Para obtener información sobre el soporte de 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 al punto de error
Normalmente, la recuperación de una base de datos al punto de error implica los siguientes pasos básicos:
Realice una copia de seguridad del registro de transacciones activo (conocido como cola del registro). Esto crea una copia de seguridad del tail-log. Si el registro de transacciones activo no está disponible, se pierden todas las transacciones de esa parte del registro.
Importante
En el modelo de recuperación optimizado para cargas masivas de registros, la copia de seguridad de cualquier registro que contenga operaciones de registro masivo requiere acceso a todos los archivos de datos de la base de datos. Si no se puede acceder a los archivos de datos, no se puede realizar una copia de seguridad del registro de transacciones. En ese caso, debe rehacer manualmente todos los cambios realizados desde la copia de seguridad de registros más reciente.
Para obtener más información, consulte Tail-Log Copias de seguridad (SQL Server).
Restaure la copia de seguridad completa más reciente de la base de datos sin restaurar la base de datos (RESTORE DATABASE database_name FROM backup_device WITH NORECOVERY).
Si existen copias de seguridad diferenciales, restaure la más reciente sin restaurar la base de datos (RESTORE DATABASE database_name FROM differential_backup_device WITH NORECOVERY).
Restaurar la copia de seguridad diferencial más reciente reduce el número de copias de seguridad de registros que se deben restaurar.
A partir de la primera copia de seguridad del registro de transacciones que se creó después de la copia de seguridad que acaba de restaurar, restaure los registros en secuencia con NORECOVERY.
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 del registro.
En la ilustración siguiente se muestra esta secuencia de restauración. Después de producirse una falla (1), se crea una copia de seguridad del tail-log (2). A continuación, la base de datos se restaura al punto del error. Esto implica restaurar una copia de seguridad de base de datos, una copia de seguridad diferencial posterior y todas las copias de seguridad de registros realizadas después de la copia de seguridad diferencial, incluida la copia de seguridad final del registro.
Nota:
Al restaurar una copia de seguridad de base de datos en una instancia de servidor diferente, consulte Copiar bases de datos con copia de seguridad y restauración.
Sintaxis básica de Transact-SQL RESTORE
La sintaxis básica de RESTORETransact-SQL para la secuencia de restauración de la ilustración anterior es la siguiente:
RESTORE DATABASE base de datos FROM copia de seguridad completa de la base de datos WITH NORECOVERY;
RESTAURAR BASE DE DATOS database DESDE full_differential_backup CON NORECOVERY;
RESTORE LOG DATABASE FROM log_backup WITH NORECOVERY;
Repita este paso de restauración de registros para cada copia de seguridad de registro adicional.
RESTAURAR BASE DE DATOS database CON RECUPERACIÓN;
Ejemplo: Recuperación al punto de falla (Transact-SQL)
En el ejemplo de Transact-SQL siguiente se muestran las opciones esenciales de una secuencia de restauración que restaura la base de datos al punto de error. En el ejemplo se crea una copia de seguridad de la parte final del registro de transacciones de la base de datos. A continuación, el ejemplo restaura una copia de seguridad completa de la base de datos y la copia de seguridad de registros y, a continuación, restaura la copia de seguridad del final del registro. En el ejemplo se recupera la base de datos en un paso final 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 base de datos en el modelo de recuperación completa" en Copias de seguridad completas de base de datos (SQL Server). Antes de la copia de seguridad de la base de datos, la base de datos de ejemplo AdventureWorks2012 se estableció 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
Restaurar una base de datos a un punto dentro de una copia de seguridad de registros
En el modelo de recuperación completa, normalmente se puede recuperar una restauración de base de datos completa a un momento dado, una transacción marcada o un LSN dentro de una copia de seguridad de registros. Sin embargo, en el modelo de recuperación con registro masivo, si la copia de seguridad de registros contiene cambios de registro masivo, no es posible la recuperación a un momento dado.
De ejemplo: escenarios de restauración a un momento dado
En el siguiente ejemplo se asume un sistema de base de datos de misión crítica para el que se realiza una copia de seguridad completa de la base de datos diariamente a medianoche, se realiza una copia de seguridad diferencial de la base de datos cada hora, de lunes a sábado, y se realizan copias de seguridad del registro de transacciones cada 10 minutos a lo largo del día. Para restaurar la base de datos al estado en que se encontraba a las 5:19 a.m. el miércoles, haga lo siguiente:
Restaure la copia de seguridad completa de la base de datos que se creó el martes a medianoche.
Restaure la copia de seguridad diferencial de la base de datos que se creó a las 5:00 a.m. el miércoles.
Aplique la copia de seguridad del registro de transacciones que se creó a las 5:10 a.m. el miércoles.
Aplique la copia de seguridad del registro de transacciones que se creó a las 5:20 a.m. el miércoles, especificando que el proceso de recuperación solo se aplica a las transacciones que se produjeron antes de las 5:19 A.M.
Como alternativa, si la base de datos debe restaurarse a su estado a las 3:04 a.m. jueves, pero la copia de seguridad diferencial de la base de datos que se creó a las 3:00 a.m. jueves no está disponible, haga lo siguiente:
Restaure la copia de seguridad de la base de datos que se creó el miércoles a medianoche.
Restaure la copia de seguridad diferencial de la base de datos que se creó a las 2:00 a.m. el jueves.
Aplique todas las copias de seguridad del registro de transacciones creadas a partir de las 2:10 a las 3:00 a.m. el jueves.
Aplique la copia de seguridad del registro de transacciones que se creó a las 3:10 a.m. el jueves, deteniendo el proceso de recuperación a las 3:04 a.m.
Nota:
Para obtener un ejemplo de una restauración a un momento dado, 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 objetos de administración de SQL Server (SMO)
Para restaurar una base de datos a un punto dentro 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
Véase también
RESTORE (Transact-SQL)
BACKUP (Transact-SQL)
Aplicar copias de seguridad de registros de transacción (SQL Server)
sp_addumpdevice (Transact-SQL)
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)