Compartir a través de


Restaurar una copia de seguridad diferencial de base de datos (SQL Server)

En este tema se describe cómo restaurar una copia de seguridad diferencial de la base de datos en SQL Server 2014 mediante SQL Server Management Studio o Transact-SQL.

En este tema

Antes de empezar

Limitaciones y restricciones

  • RESTORE no está permitido en una transacción explícita o implícita.

  • Las copias de seguridad que se crean en una versión más reciente de SQL Server no se pueden restaurar en versiones anteriores de SQL Server.

  • En SQL Server 2014, puede restaurar una base de datos de usuario a partir de una copia de seguridad de base de datos creada mediante SQL Server 2005 o una versión posterior.

Prerrequisitos

  • En el modelo de recuperación completo o con registros masivos, debe realizar una copia de seguridad del registro de transacciones activo (conocido como la cola del registro) antes de poder restaurar una base de datos. Para obtener más información, consulte Copia de seguridad de un registro de transacciones (SQL Server).

Seguridad

Permisos

Si la base de datos que se va a restaurar no existe, el usuario debe tener permisos CREATE DATABASE para poder ejecutar RESTORE. Si la base de datos existe, los permisos RESTORE tienen como valor predeterminado los miembros de los roles fijos de servidor sysadmin y dbcreator y el propietario (dbo) de la base de datos (para la opción FROM DATABASE_SNAPSHOT, la base de datos siempre existe).

Los permisos RESTORE se conceden a los roles en los que la información de pertenencia siempre está disponible para el servidor. Dado que la pertenencia a roles fijos de base de datos solo se puede comprobar cuando la base de datos es accesible y no dañada, que no siempre es el caso cuando se ejecuta RESTORE, los miembros del rol fijo de base de datos db_owner no tienen permisos RESTORE.

Uso de SQL Server Management Studio

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

  1. Después de conectarse a la instancia adecuada del motor de base de datos de Microsoft SQL Server, en el Explorador de objetos, haga clic en el nombre del servidor para expandir el árbol del servidor.

  2. Expanda Bases de datos. En función de la base de datos, seleccione una base de datos de usuario o expanda Bases de datos del sistema y, a continuación, seleccione una base de datos del sistema.

  3. Haga clic con el botón derecho en la base de datos, apunte a Tareas, apunte a Restaurar, y luego haga clic en Base de datos.

  4. En la página General , use la sección Origen para especificar el origen y la ubicación de los conjuntos de copia de seguridad que se van a restaurar. Seleccione una de las siguientes opciones:

    • Base de datos

      Seleccione la base de datos para restaurar en la lista desplegable. La lista contiene solo las bases de datos de las que se ha realizado una copia de seguridad según el historial de copia de seguridad de msdb .

    Nota:

    Si la copia de seguridad se realiza desde otro servidor, el servidor de destino no tendrá la información del historial de copias de seguridad de la base de datos especificada. En este caso, seleccione Dispositivo para especificar manualmente el archivo o el dispositivo que se va a restaurar.

    • Dispositivo

      Haga clic en el botón Examinar (...) para abrir el cuadro de diálogo Seleccionar dispositivos de copia de seguridad . En el cuadro Tipo de medio de copia de seguridad , seleccione uno de los tipos de dispositivo enumerados. Para seleccionar uno o varios dispositivos para el cuadro Medios de copia de seguridad , haga clic en Agregar.

      Después de agregar los dispositivos que desea al cuadro de lista de Medios de copia de seguridad, haga clic en Aceptar para volver a la página General.

      En el cuadro de lista Origen: Dispositivo: Base de datos , seleccione el nombre de la base de datos que se debe restaurar.

      Nota Esta lista solo está disponible cuando se selecciona Dispositivo . Solo estarán disponibles las bases de datos que tengan copias de seguridad en el dispositivo seleccionado.

  5. En la sección Destino , el cuadro Base de datos se rellena automáticamente con el nombre de la base de datos que se va a restaurar. Para cambiar el nombre de la base de datos, escriba el nuevo nombre en el cuadro Base de datos .

    Nota:

    Para detener la restauración en un momento específico, haga clic en Escala de tiempo para acceder al cuadro de diálogo Escala de tiempo de copia de seguridad . Para obtener ayuda con la detención de una restauración de base de datos en un momento dado específico, vea Restaurar una base de datos de SQL Server a un momento dado (modelo de recuperación completa).

  6. En la cuadrícula Conjuntos de copia de seguridad para restaurar , seleccione las copias de seguridad a través de la copia de seguridad diferencial que desea restaurar.

    Para obtener información sobre las columnas de la cuadrícula Conjuntos de copia de seguridad para restaurar, vea Restaurar base de datos (página General).

  7. En la página Opciones , en el panel Opciones de restauración , puede seleccionar cualquiera de las siguientes opciones, si procede para su situación:

    • Sobrescribir la base de datos existente (WITH REPLACE)

    • Conservar la configuración de replicación (WITH KEEP_REPLICATION)

    • Preguntar antes de restaurar cada copia de seguridad

    • Restringir el acceso a la base de datos restaurada (WITH RESTRICTED_USER)

    Para obtener más información sobre estas opciones, vea Restaurar base de datos (página Opciones).

  8. Seleccione una opción para el cuadro Estado de recuperación . Este cuadro determina el estado de la base de datos después de la operación de restauración.

    • RESTORE WITH RECOVERY es el comportamiento predeterminado que deja la base de datos lista para su uso, ya que revierte las transacciones no confirmadas. No pueden restaurarse registros de transacciones adicionales. Seleccione esta opción si va a restaurar todas las copias de seguridad necesarias ahora.

    • RESTORE WITH NORECOVERY que deja la base de datos no operativa y no revierte las transacciones no confirmadas. Pueden restaurarse registros de transacciones adicionales. No se puede usar la base de datos hasta que se recupere.

    • RESTORE WITH STANDBY que deja la base de datos en modo de solo lectura. Deshace las transacciones no confirmadas, pero guarda las acciones de reversión en un archivo de respaldo para que se puedan revertir los efectos de recuperación.

    Para obtener descripciones de las opciones, vea Restaurar base de datos (página Opciones).

  9. Se producirá un error en las operaciones de restauración si hay conexiones activas a la base de datos. Active la opción Cerrar conexiones existentes para asegurarse de que todas las conexiones activas entre Management Studio y la base de datos están cerradas.

  10. Seleccione Preguntar antes de restaurar cada copia de seguridad si desea que se le solicite antes de cada operación de restauración. Esto no suele ser necesario a menos que la base de datos sea grande y desee supervisar el estado de la operación de restauración.

  11. Opcionalmente, use la página Archivos para restaurar la base de datos en una nueva ubicación. Para obtener ayuda para mover una base de datos, vea Restaurar una base de datos a una nueva ubicación (SQL Server).

  12. Haz clic en Aceptar.

Uso de Transact-SQL

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

  1. Ejecute la instrucción RESTORE DATABASE, especificando la cláusula NORECOVERY, para restaurar la copia de seguridad completa de la base de datos que viene antes de la copia de seguridad diferencial de la base de datos. Para obtener más información, vea Cómo: Restaurar una copia de seguridad completa.

  2. Ejecute la instrucción RESTORE DATABASE para restaurar la copia de seguridad diferencial de la base de datos, especificando:

    • Nombre de la base de datos a la que se aplica la copia de seguridad diferencial de la base de datos.

    • Dispositivo de copia de seguridad desde el que se restaura la copia de seguridad diferencial de la base de datos.

    • La cláusula NORECOVERY debe usarse si tiene copias de seguridad del registro de transacciones que se aplicarán después de restaurar la copia de seguridad diferencial de la base de datos. De lo contrario, especifique la cláusula RECOVERY.

  3. Con el modelo de recuperación completo o con registro masivo, restaurar una copia de seguridad diferencial de la base de datos devuelve la base de datos al punto en el que se completó dicha copia de seguridad diferencial. Para recuperarse hasta el punto de error, debe aplicar todas las copias de seguridad del registro de transacciones creadas después de crear la última copia de seguridad diferencial de la base de datos. Para obtener más información, vea Aplicar copias de seguridad del registro de transacciones (SQL Server).

Ejemplos (Transact-SQL)

A. Restauración de una copia de seguridad diferencial de la base de datos

En este ejemplo se restaura una base de datos y una copia de seguridad diferencial de la MyAdvWorks base de datos.

-- Assume the database is lost, and restore full database,   
-- specifying the original full database backup and NORECOVERY,   
-- which allows subsequent restore operations to proceed.  
RESTORE DATABASE MyAdvWorks  
   FROM MyAdvWorks_1  
   WITH NORECOVERY;  
GO  
-- Now restore the differential database backup, the second backup on   
-- the MyAdvWorks_1 backup device.  
RESTORE DATABASE MyAdvWorks  
   FROM MyAdvWorks_1  
   WITH FILE = 2,  
   RECOVERY;  
GO  

B. Restauración de una base de datos, una base de datos diferencial y una copia de seguridad del registro de transacciones

En este ejemplo se restaura una base de datos, una base de datos diferencial y una copia de seguridad del registro de transacciones de la MyAdvWorks base de datos.

-- Assume the database is lost at this point. Now restore the full   
-- database. Specify the original full database backup and NORECOVERY.  
-- NORECOVERY allows subsequent restore operations to proceed.  
RESTORE DATABASE MyAdvWorks  
   FROM MyAdvWorks_1  
   WITH NORECOVERY;  
GO  
-- Now restore the differential database backup, the second backup on   
-- the MyAdvWorks_1 backup device.  
RESTORE DATABASE MyAdvWorks  
   FROM MyAdvWorks_1  
   WITH FILE = 2,  
   NORECOVERY;  
GO  
-- Now restore each transaction log backup created after  
-- the differential database backup.  
RESTORE LOG MyAdvWorks  
   FROM MyAdvWorks_log1  
   WITH NORECOVERY;  
GO  
RESTORE LOG MyAdvWorks  
   FROM MyAdvWorks_log2  
   WITH RECOVERY;  
GO  

Tareas relacionadas

Véase también

Copias de seguridad diferenciales (SQL Server)
RESTORE (Transact-SQL)