Realizar una restauración completa de la base de datos (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 tenga conexión, 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.

Con el modelo de recuperación completa, la base de datos se puede restaurar a un momento concreto. Dicho momento puede ser la copia de seguridad disponible más reciente, una fecha y hora específicas, o una transacción marcada.

ms187495.security(es-es,SQL.90).gifNota 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 dañino que podría ejecutar código Transact-SQL no deseado o provocar errores debido a la modificación del esquema o de la estructura de la base de datos física. Para utilizar una base de datos procedente de un origen desconocido o que no sea de confianza, ejecute DBCC CHECKDB en la base de datos de 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 general, la recuperación de una base de datos hasta el momento del error incluye los siguientes pasos básicos:

  1. Realizar una copia de seguridad del registro de transacciones activo (denominado el final del registro). De esta forma se crea una copia de seguridad de registros después del error. Si el registro de transacciones activo no está disponible, todas las transacciones de esa parte del registro se pierden.
    ms187495.note(es-es,SQL.90).gifImportante:
    En el modelo de recuperación por medio de registros de operaciones masivas, 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 de seguridad de registros después del error.
  2. Restaurar la copia de seguridad completa más reciente sin recuperar la base de datos (RESTORE DATABASE database_name FROM backup_device WITH NORECOVERY).
  3. Si existen copias de seguridad diferenciales, restaurar la más reciente sin recuperar la base de datos (RESTORE DATABASE database_name WITH NORECOVERY).
  4. Restaurar los registros secuencialmente con la opción NORECOVERY, comenzando por la primera copia de seguridad del registro de transacciones creada después de la copia de seguridad que recién restaurada.
  5. 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.
  6. Una restauración completa de la base de datos normalmente se puede recuperar hasta un punto o transacción marcada en una copia de seguridad de registros. Sin embargo, en el modelo de recuperación por medio de registros de operaciones masivas, si la copia de seguridad de registros contiene cambios de registros de operaciones masivas, no es posible la recuperación a un momento dado. Para obtener más información, vea Restaurar bases de datos a un punto de una copia de seguridad.

Al restaurar completamente una base de datos, debe utilizar una única secuencia de restauración. En el siguiente ejemplo se muestran las opciones más importantes de una secuencia de restauración para el caso de una restauración completa en que la base de datos se restaura al momento del error. 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. La sintaxis y los detalles no relevantes para este propósito se omiten.

La base de datos se restaura y se pone al día. Para reducir el tiempo de puesta al día se utiliza una copia diferencial de la base de datos. Esta secuencia de restauración está orientada a eliminar la pérdida de trabajo; la última copia de seguridad que se restaura es una copia de seguridad de registros después del error.

La sintaxis básica de RESTORE para la secuencia de restauración es:

  1. RESTORE DATABASE database FROM full database backup WITH NORECOVERY;
  2. RESTORE DATABASE database FROM full_differential_backup WITH NORECOVERY;
  3. RESTORE LOG database FROM log_backup WITH NORECOVERY;
    Repita este paso de restauración del registro para cada copia de seguridad de registros adicional.
  4. RESTORE DATABASE database WITH RECOVERY;

Ejemplo

En el ejemplo siguiente, la base de datos de ejemplo AdventureWorks se configuró de forma que utilice el modelo de recuperación completa antes de que se realice la copia de seguridad. En el ejemplo, se crea una copia de seguridad de registros después del error de la base de datos AdventureWorks. A continuación, en el ejemplo se restaura una copia de seguridad completa anterior de la base de datos y una copia de seguridad de registros; por último, en el ejemplo se restaura la copia de seguridad de registros después del error. En el ejemplo, se recupera la base de datos en un último paso independiente.

ms187495.note(es-es,SQL.90).gifNota:
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.

En el ejemplo se comienza con una instrucción ALTER DATABASE que establece el modelo de recuperación como FULL.

USE master;
--Make sure the database is using the full recovery model.
ALTER DATABASE AdventureWorks SET RECOVERY FULL;
GO
--Create tail-log backup.
BACKUP LOG AdventureWorks 
TO DISK = 'Z:\SQLServerBackups\AdventureWorks.bak''Z:\SQLServerBackups\AdventureWorks.bak' 
   WITH NORECOVERY; GO
--Restore the full database backup (from backup set 1).
RESTORE DATABASE AdventureWorks 
  FROM DISK = 'Z:\SQLServerBackups\AdventureWorks.bak' 
  WITH FILE=1, 
    NORECOVERY;

--Restore the regular log backup (from backup set 2).
RESTORE LOG AdventureWorks 
  FROM DISK = 'Z:\SQLServerBackups\AdventureWorks.bak' 
  WITH FILE=2, 
    NORECOVERY;

--Restore the tail-log backup (from backup set 3).
RESTORE LOG AdventureWorks 
  FROM DISK = 'Z:\SQLServerBackups\AdventureWorks.bak'
  WITH FILE=3, 
    NORECOVERY;
GO
--recover the database:
RESTORE DATABASE AdventureWorks WITH RECOVERY;
GO

Recuperar al momento del error

Para restaurar una copia de seguridad completa de la base de datos

Para restaurar una copia de seguridad diferencial de la base de datos

Para restaurar una copia de seguridad del registro de transacciones

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.

Para restaurar una copia de seguridad mediante los objetos de administración de SQL Server (SMO)

Recuperar base de datos a un momento concreto

En el modelo de recuperación completa, una base de datos se puede restaurar a un momento concreto de una copia de seguridad de registros. El momento concreto puede ser una fecha y hora específicas, una transacción marcada o un número de secuencia de registro (LSN). Para obtener más información, vea Restaurar bases de datos a un punto de una copia de seguridad.

En SQL Server 2005, puede restaurar una copia de seguridad de base de datos creada con SQL Server versión 7.0, SQL Server 2000 o SQL Server 2005. Sin embargo, las copias de seguridad principales, de model y msdb creadas con SQL Server 7.0 o SQL Server 2000 no pueden restaurarse con SQL Server 2005. Además, las copias de seguridad de registros de SQL Server 7.0 que contienen operaciones de creación de índices no pueden restaurarse en SQL Server 2000 o SQL Server 2005.

SQL Server 2005 utiliza una ruta de acceso predeterminada distinta a la de las versiones anteriores de SQL Server. Por lo tanto, para restaurar una base de datos creada en la ubicación predeterminada de SQL Server 7.0 o SQL Server 2000 a partir de las copias de seguridad, es preciso utilizar la opción MOVE. Para obtener información acerca de la nueva ruta de acceso predeterminada, vea Ubicaciones de archivos para instancias predeterminadas y con nombre de SQL Server 2005.

ms187495.note(es-es,SQL.90).gifNota:
El formato de las copias de seguridad de bases de datos creadas mediante SQL Server 6.5 o versiones anteriores no es compatible y, por lo tanto, estas bases de datos no pueden restaurarse en SQL Server 2005. Para obtener información acerca de cómo actualizar una base de datos creada mediante SQL Server 6.5 o versiones anteriores a SQL Server 2005, vea Copiar bases de datos de SQL Server 6.5 o anterior.

Versión Historial

17 de julio de 2006

Contenido nuevo:
  • Se agregó la nota de seguridad.

Adiciones de comunidad

AGREGAR
Mostrar: