Restaurar una copia de seguridad diferencial de la base de datos (SQL Server)Restore a Differential Database Backup (SQL Server)

SE APLICA A: síSQL Server noAzure SQL Database noAzure SQL Data Warehouse noAlmacenamiento de datos paralelos APPLIES TO: yesSQL Server noAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

En este tema se describe cómo restaurar una copia de seguridad diferencial de la base de datos en SQL Server 2017SQL Server 2017 mediante SQL Server Management StudioSQL Server Management Studio o Transact-SQLTransact-SQL.This topic describes how to restore a differential database backup in SQL Server 2017SQL Server 2017 by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-SQL.

En este temaIn This Topic

Antes de comenzarBefore You Begin

Limitaciones y restriccionesLimitations and Restrictions

  • RESTORE no se permite en una transacción explícita o implícita.RESTORE is not allowed in an explicit or implicit transaction.

  • Las copias de seguridad que se crean en una versión más reciente de SQL ServerSQL Server no se pueden restaurar en versiones anteriores de SQL ServerSQL Server.Backups that are created by more recent version of SQL ServerSQL Server cannot be restored in earlier versions of SQL ServerSQL Server.

  • En SQL Server 2017SQL Server 2017, puede restaurar una base de datos de usuario a partir de una copia de seguridad de la base de datos creada utilizando SQL Server 2005 (9.x)SQL Server 2005 (9.x) o una versión posterior.In SQL Server 2017SQL Server 2017, you can restore a user database from a database backup that was created by using SQL Server 2005 (9.x)SQL Server 2005 (9.x) or a later version.

Requisitos previosPrerequisites

  • En el modelo de recuperación optimizado para cargas masivas de registros o completa, para poder restaurar una base de datos, se debe realizar una copia de seguridad del registro de transacciones activo (conocido como final del registro).Under the full or bulk-logged recovery model, before you can restore a database, you must back up the active transaction log (known as the tail of the log). Para obtener más información, vea Realizar copia de seguridad de un registro de transacciones (SQL Server)).For more information, see Back Up a Transaction Log (SQL Server).

SeguridadSecurity

PermisosPermissions

Si la base de datos que se va a restaurar no existe, el usuario debe tener permisos CREATE DATABASE para poder ejecutar RESTORE.If the database being restored does not exist, the user must have CREATE DATABASE permissions to be able to execute RESTORE. Si la base de datos existe, los permisos RESTORE corresponden de forma predeterminada a los miembros de los roles fijos de servidor sysadmin y dbcreator , y al propietario (dbo) de la base de datos (para la opción FROM DATABASE_SNAPSHOT, la base de datos siempre existe).If the database exists, RESTORE permissions default to members of the sysadmin and dbcreator fixed server roles and the owner (dbo) of the database (for the FROM DATABASE_SNAPSHOT option, the database always exists).

Los permisos RESTORE se conceden a los roles en los que la información acerca de la pertenencia está siempre disponible para el servidor.RESTORE permissions are given to roles in which membership information is always readily available to the server. Debido a que la pertenencia a un rol fijo de base de datos solo se puede comprobar cuando la base de datos es accesible y no está dañada, lo que no siempre ocurre cuando se ejecuta RESTORE, los miembros del rol fijo de base de datos db_owner no tienen permisos RESTORE.Because fixed database role membership can be checked only when the database is accessible and undamaged, which is not always the case when RESTORE is executed, members of the db_owner fixed database role do not have RESTORE permissions.

Uso de SQL Server Management StudioUsing SQL Server Management Studio

Para restaurar una copia de seguridad diferencial de la base de datosTo restore a differential database backup

  1. Después de conectarse a la instancia adecuada de MicrosoftMicrosoft Motor de base de datos de SQL ServerSQL Server Database Engine, en el Explorador de objetos, haga clic en el nombre del servidor para expandir el árbol de servidores.After you connect to the appropriate instance of the MicrosoftMicrosoft Motor de base de datos de SQL ServerSQL Server Database Engine, in Object Explorer, click the server name to expand the server tree.

  2. Expanda Bases de datos.Expand Databases. En función de la base de datos, seleccione una base de datos de usuario o expanda Bases de datos del sistemay, a continuación, seleccione una base de datos del sistema.Depending on the database, either select a user database or expand System Databases, and then select a system database.

  3. Haga clic con el botón derecho en la base de datos, seleccione Tareas, Restaurary luego haga clic en Base de datos.Right-click the database, point to Tasks, point to Restore, and then click Database.

  4. En la página General , use la sección Origen para especificar el origen y la ubicación de los conjuntos de copias de seguridad que se deben restaurar.On the General page, use the Source section to specify the source and location of the backup sets to restore. Seleccione una de las siguientes opciones:Select one of the following options:

    • Base de datosDatabase

      Seleccione la base de datos que desea restaurar en la lista desplegable.Select the database to restore from the drop-down list. La lista solo contiene las bases de datos de las que se han realizado copias de seguridad de acuerdo con el historial de copias de seguridad de msdb .The list contains only databases that have been backed up according to the msdb backup history.

    Nota

    Si la copia de seguridad se toma desde un servidor diferente, el servidor de destino no tendrá la información del historial de copia de seguridad de la base de datos especificada.If the backup is taken from a different server, the destination server will not have the backup history information for the specified database. En este caso, seleccione Dispositivo para especificar manualmente el archivo o dispositivo que se va a restaurar.In this case, select Device to manually specify the file or device to restore.

    • DispositivoDevice

      Haga clic en el botón de exploración ( ... ) para abrir el cuadro de diálogo Seleccionar dispositivos de copia de seguridad .Click the browse (...) button to open the Select backup devices dialog box. En el cuadro Tipo de medio de copia de seguridad , seleccione uno de los tipos de dispositivo.In the Backup media type box, select one of the listed device types. Para seleccionar uno o varios dispositivos del cuadro Medio de copia de seguridad , haga clic en Agregar.To select one or more devices for the Backup media box, click Add.

      Después de agregar los dispositivos que desee al cuadro de lista Medio de copia de seguridad , haga clic en Aceptar para volver a la página General .After you add the devices you want to the Backup media list box, click OK to return to the General page.

      En el cuadro de lista Origen: Dispositivo: Base de datos, seleccione el nombre de la base de datos que se debe restaurar.In the Source: Device: Database list box, select the name of the database which should be restored.

      Nota : esta lista solo está disponible cuando se selecciona Dispositivo .Note This list is only available when Device is selected. Solo estarán disponibles las bases de datos que tienen copias de seguridad en el dispositivo seleccionado.Only databases that have backups on the selected device will be available.

  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.In the Destination section, the Database box is automatically populated with the name of the database to be restored. Para cambiar el nombre de la base de datos, especifique el nuevo nombre en el cuadro Base de datos .To change the name of the database, enter the new name in the Database box.

    Nota

    Para detener la restauración en un momento dado específico, haga clic en Escala de tiempo para obtener acceso al cuadro de diálogo Escala de tiempo de la copia de seguridad .To stop the restore at a specific point in time, click Timeline to access the Backup Timeline dialog box. Para obtener ayuda sobre cómo detener la restauración de una base de datos a un momento dado, consulte Restaurar una base de datos de SQL Server a un momento dado (modelo de recuperación completa).For help with stopping a database restore at a specific point in time, see Restore a SQL Server Database to a Point in Time (Full Recovery Model).

  6. En la cuadrícula Conjuntos de copia de seguridad para restaurar , seleccione las copias de seguridad mediante la copia de seguridad diferencial que desea restaurar.In the Backup sets to restore grid, select the backups through the differential backup that you wish to restore.

    Para obtener información sobre las columnas de la cuadrícula Conjuntos de copia de seguridad para restaurar, vea Restaurar la base de datos (página General).For information about the columns in the Backup sets to restore grid, see Restore Database (General Page).

  7. En la página Opciones , en el panel Opciones de restauración , puede seleccionar una de las opciones siguientes si son apropiadas para su situación:On the Options page, in the Restore options panel, you can select any of the following options, if appropriate for your situation:

    • Sobrescribir la base de datos existente (WITH REPLACE)Overwrite the existing database (WITH REPLACE)

    • Conservar la configuración de replicación (WITH KEEP_REPLICATION)Preserve the replication settings (WITH KEEP_REPLICATION)

    • Preguntar antes de restaurar cada copia de seguridadPrompt before restoring each backup

    • Restringir el acceso a la base de datos restaurada (WITH RESTRICTED_USER)Restrict access to the restored database (WITH RESTRICTED_USER)

    Para obtener más información sobre estas opciones, vea Restaurar base de datos (página Opciones).For more information about these options, see Restore Database (Options Page).

  8. Seleccione una opción en el cuadro Estado de recuperación .Select an option for the Recovery state box. Este cuadro determina el estado de la base de datos después de la operación de restauración.This box determines the state of the database after the restore operation.

    • RESTORE WITH RECOVERY es el comportamiento predeterminado que deja la base de datos lista para usarse mediante la reversión de las transacciones no confirmadas.RESTORE WITH RECOVERY is the default behavior which leaves the database ready for use by rolling back the uncommitted transactions. No pueden restaurarse registros de transacciones adicionales.Additional transaction logs cannot be restored. Seleccione esta opción si va a restaurar ahora todas las copias de seguridad necesarias.Select this option if you are restoring all of the necessary backups now.

    • RESTORE WITH NORECOVERY deja la base de datos no operativa y no revierte las transacciones no confirmadas.RESTORE WITH NORECOVERY which leaves the database non-operational, and does not roll back the uncommitted transactions. Pueden restaurarse registros de transacciones adicionales.Additional transaction logs can be restored. La base de datos no puede se usar hasta que se recupera.The database cannot be used until it is recovered.

    • RESTORE WITH STANDBY deja la base de datos en modo de solo lectura.RESTORE WITH STANDBY which leaves the database in read-only mode. Deshace las transacciones sin confirmar, pero guarda las acciones de deshacer en un archivo en espera para que los efectos de la recuperación puedan revertirse.It undoes uncommitted transactions, but saves the undo actions in a standby file so that recovery effects can be reverted.

    Para obtener descripciones de las opciones, consulte Restaurar base de datos (página Opciones).For descriptions of the options, see Restore Database (Options Page).

  9. Habrá errores en las operaciones de restauración si hay conexiones activas en la base de datos.Restore operations will fail if there are active connections to the database. Active la opción Cerrar conexiones existentes para asegurarse de que se cierren todas las conexiones activas entre Management StudioManagement Studio y la base de datos.Check the Close existing connections option to ensure that all active connections between Management StudioManagement Studio and the database are closed.

  10. Seleccione Preguntar antes de restaurar cada copia de seguridad si desea que se le pregunte en cada operación de restauración.Select Prompt before restoring each backup if you wish to be prompted between each restore operation. 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.This is not usually necessary unless the database is large and you wish to monitor the status of the restore operation.

  11. También puede usar la página Archivos para restaurar la base de datos a una nueva ubicación.Optionally, use the Files page to restore the database to a new location. Para obtener ayuda sobre cómo trasladar una base de datos, vea Restaurar una base de datos a una nueva ubicación (SQL Server).For help with moving a database, see Restore a Database to a New Location (SQL Server).

  12. Haga clic en Aceptar.Click OK.

Usar Transact-SQLUsing Transact-SQL

Para restaurar una copia de seguridad diferencial de la base de datosTo restore a differential database backup

  1. Ejecute la instrucción RESTORE DATABASE con la cláusula NORECOVERY para restaurar la copia de seguridad de base de datos completa anterior a la copia de seguridad diferencial de la base de datos.Execute the RESTORE DATABASE statement, specifying the NORECOVERY clause, to restore the full database backup that comes before the differential database backup. Para más información, vea: Cómo: restaurar una copia de seguridad completa.For more information, see How to: Restore a Full Backup.

  2. Ejecute la instrucción RESTORE DATABASE para restaurar la copia de seguridad diferencial de la base de datos especificando:Execute the RESTORE DATABASE statement to restore the differential database backup, specifying:

    • El nombre de la base de datos a la que se aplicará la copia de seguridad diferencial de la base de datos.The name of the database to which the differential database backup is applied.

    • El dispositivo de copia de seguridad desde el que se restaura la copia de seguridad diferencial de la base de datos.The backup device where the differential database backup is restored from.

    • La cláusula NORECOVERY, si dispone de copias de seguridad del registro de transacciones que deban aplicarse después de que se restaure la copia de seguridad diferencial de la base de datos.The NORECOVERY clause if you have transaction log backups to apply after the differential database backup is restored. En caso contrario, especifique la cláusula RECOVERY.Otherwise, specify the RECOVERY clause.

  3. Con el modelo de recuperación completa o modelo de recuperación optimizado para cargas masivas de registros, la restauración de una copia de seguridad diferencial de la base de datos restaura la base de datos hasta el momento en que se completó la copia de seguridad diferencial de la base de datos.With the full or bulk-logged recovery model, restoring a differential database backup restores the database to the point at which the differential database backup was completed. Para recuperar hasta el momento del error, debe aplicar todas las copias de seguridad del registro de transacciones creadas después de la última copia de seguridad diferencial de la base de datos.To recover to the point of failure, you must apply all transaction log backups created after the last differential database backup was created. Para obtener más información, vea Aplicar copias de seguridad del registro de transacciones (SQL Server).For more information, see Apply Transaction Log Backups (SQL Server).

Ejemplos (Transact-SQL)Examples (Transact-SQL)

A.A. Restaurar una copia de seguridad diferencial de la base de datosRestoring a differential database backup

En este ejemplo se restaura una copia de seguridad completa y una copia de seguridad diferencial de la base de datos MyAdvWorks .This example restores a database and differential database backup of the MyAdvWorks database.

-- 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.B. Restaurar una base de datos, una base de datos diferencial y una copia de seguridad del registro de transaccionesRestoring a database, differential database, and transaction log backup

En este ejemplo se restaura una copia de seguridad completa, una copia de seguridad diferencial y una copia de seguridad del registro de transacciones de la base de datos MyAdvWorks .This example restores a database, differential database, and transaction log backup of the MyAdvWorks database.

-- 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 relacionadasRelated Tasks

Consulte tambiénSee Also

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