Restauraciones de archivos (modelo de recuperación completa)File Restores (Full Recovery Model)

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

Este tema solo es pertinente para las bases de datos que contienen varios archivos o grupos de archivos con el modelo de recuperación completa o de carga masiva.This topic is relevant only for databases that contain multiple files or filegroups under the full or bulk-load recovery model.

El objetivo de una restauración de archivos consiste en restaurar uno o varios archivos dañados sin necesidad de restaurar la totalidad de la base de datos.In a file restore, the goal is to restore one or more damaged files without restoring the whole database. Un escenario de restauración de archivos consiste en una única secuencia de restauración que copia, pone al día y recupera los datos apropiados.A file restore scenario consists of a single restore sequence that copies, rolls forward, and recovers the appropriate data

Si el grupo de archivos que se restaura es de lectura/escritura, es necesario aplicar una cadena ininterrumpida de copias de seguridad de registros después de que se restaure la última copia de seguridad de datos o diferencial.If the filegroup that is being restored is read/write, an unbroken chain of log backups must be applied after the last data or differential backup is restored. De esta forma, el grupo de archivos se actualiza a los registros existentes en los registros activos actuales del archivo de registro.This brings the filegroup forward to the log records in the current active log records in the log file. Normalmente, el punto de recuperación está cerca del final del registro, aunque no necesariamente.The recovery point is typically near the end of log, but not necessarily.

Si el grupo de archivos que se restaura es de solo lectura, por lo general, la aplicación de las copias de seguridad de registros no es necesaria y se omitirá.If the filegroup that is being restored is read-only, usually applying log backups is unnecessary and is skipped. Si se hizo la copia de seguridad después de que el archivo pasará a ser de solo lectura, será la última copia de seguridad que se restaurará.If the backup was taken after the file became read-only, that is the last backup to restore. La puesta al día se detiene en el punto de destino.Roll forward stops at the target point.

Los escenarios de restauración de archivos son los siguientes:The file-restore scenarios are as follows:

  • Restauración de archivos sin conexiónOffline file restore

    En una restauración de archivos sin conexión, la base de datos permanece sin conexión mientras se restauran los archivos o grupos de archivos dañados.In an offline file restore, the database is offline while damaged files or filegroups are restored. Al final de la secuencia de restauración, la base de datos pasará a estar en línea.At the end of the restore sequence, the database comes online.

    Todas las ediciones de SQL Server 2017SQL Server 2017 admiten restauraciones de archivos sin conexión.All editions of SQL Server 2017SQL Server 2017 support offline file restore.

  • Restauración de archivos en líneaOnline file restore

    En restauración de archivos en línea, si la base de datos está en línea durante una restauración de archivos, permanecerá en línea durante la restauración de archivos.In an online file restore, if database is online at restore time, it remains online during the file restore. Sin embargo, cada grupo de archivos en el que se restaura un archivo está sin conexión durante la operación de restauración.However, each filegroup in which a file is being restored is offline during the restore operation. Una vez recuperados todos los archivos de un grupo de archivos sin conexión, este se conecta automáticamente.After all the files in an offline filegroup are recovered, the filegroup is automatically brought online.

    Para más información sobre la compatibilidad con la restauración con conexión de archivos y páginas, vea Características compatibles con las ediciones de SQL Server 2016.For information about support for online page and file restore, see Editions and Supported Features for SQL Server 2016. Para más información sobre la restauración con conexión, vea Restauración con conexión (SQL Server).For more information about online restores, see Online Restore (SQL Server).

    Sugerencia

    Si quiere que la base de datos esté sin conexión durante una restauración de archivos, deje sin conexión la base de datos antes de iniciar la secuencia de restauración mediante la ejecución de la instrucción ALTER DATABASE siguiente: ALTER DATABASE nombre_base_de_datos SET OFFLINE.If you want the database to be offline for a file restore, take the database offline before you start the restore sequence by executing the following ALTER DATABASE statement: ALTER DATABASE database_name SET OFFLINE.

Restaurar archivos dañados a partir de copias de seguridad de archivoRestoring Damaged Files from File Backups

  1. Antes de restaurar uno o varios archivos dañados, intente crear una copia del final del registro.Before restoring one or more damaged files, attempt to create a tail-log backup.

    Si se ha dañado el registro, no se puede crear una copia del final del registro y se debe restaurar toda la base de datos.If the log has been damaged, a tail-log backup cannot be created, and you must restore the whole database.

    Para obtener más información sobre cómo hacer una copia de seguridad de un registro de transacciones, vea Copias de seguridad del registro de transacciones (SQL Server).For information about how to back up a transaction log, see Transaction Log Backups (SQL Server).

    Importante

    En restauraciones de archivos sin conexión, siempre debe realizar una copia del final de registros después del error antes de la restauración de archivos.For an offline file restore, you must always take a tail-log backup before the file restore. En restauraciones de archivos en línea, siempre debe realizar la copia de seguridad de registros después de la restauración de archivos.For an online file restore, you must always take the log backup after the file restore. Esta copia de seguridad de registros es necesaria para que el archivo pueda recuperarse a un estado coherente con el resto de la base de datos.This log backup is necessary to allow for the file to be recovered to a state consistent with the rest of the database.

  2. Restaure cada archivo dañado a partir de la copia de seguridad más reciente de ese archivo.Restore each damaged file from the most recent file backup of that file.

  3. Restaure la copia de seguridad diferencial de archivos más reciente, si existe, para cada archivo restaurado.Restore the most recent differential file backup, if any, for each restored file.

  4. Restaure las copias de seguridad del registro de transacciones en orden, comenzando con la copia de seguridad que abarca el más antiguo de los archivos restaurados y finalizando con la copia del final del registro después del error creada en el paso 1.Restore transaction log backups in sequence, starting with the backup that covers the oldest of the restored files and ending with the tail-log backup created in step 1.

    Debe hacer que la base de datos sea coherente; para ello, restaure las copias de seguridad del registro de transacciones creadas después de las copias de seguridad de archivos.You must restore the transaction log backups that were created after the file backups to bring the database to a consistent state. Las copias de seguridad del registro de transacciones se pueden poner al día rápidamente, porque solo se aplican los cambios correspondientes a los archivos restaurados.The transaction log backups can be rolled forward quickly, because only the changes that apply to the restored files are applied. La restauración de archivos individuales puede ser mejor que la restauración de toda la base de datos, dado que los archivos dañados no se copian y, posteriormente, ponen al día.Restoring individual files can be better than restoring the whole database, because undamaged files are not copied and then rolled forward. Sin embargo, aún debe leerse toda la cadena de copias de seguridad de registros.However, the whole chain of log backups still has to be read.

  5. Recupere la base de datos.Recover the database.

Le escuchamos: Si encuentra algo obsoleto o incorrecto en este artículo, como un paso o un ejemplo de código, indíquenoslo.We are listening: If you find something outdated or incorrect in this article, such as a step or a code example, please tell us. Puede hacer clic en el botón Esta página situado en la sección Comentarios en la parte inferior de esta página.You can click the This page button in the Feedback section at the bottom of this page. Leemos todos los elementos de comentarios sobre SQL, normalmente el día siguiente.We read every item of feedback about SQL, typically the next day. Gracias.Thanks.

Nota

Las copias de seguridad de archivos se pueden utilizar para restaurar la base de datos a un momento anterior.File backups can be used to restore the database to an earlier point in time. Para ello, debe restaurar un conjunto completo de copias de seguridad de archivos y, a continuación, restaurar las copias de seguridad del registro de transacciones en orden hasta llegar al momento específico establecido, que es después del final de la copia de seguridad de archivos restaurada más reciente.To do this, you must restore a complete set of file backups, and then restore transaction log backups in sequence to reach a target point that is after the end of the most recent restored file backup. Para obtener más información sobre la recuperación a un momento dado, vea Restaurar una base de datos de SQL Server a un momento dado (modelo de recuperación completa).For more information about point-in-time recovery, see Restore a SQL Server Database to a Point in Time (Full Recovery Model).

Secuencia de restauración de Transact-SQL para la restauración de archivos sin conexión (modelo de recuperación completa)Transact-SQL Restore Sequence for an Offline File Restore (Full Recovery Model)

Un escenario de restauración de archivos consiste en una única secuencia de restauración que copia, pone al día y recupera los datos apropiados.A file restore scenario consists of a single restore sequence that copies, rolls forward, and recovers the appropriate data.

En esta sección se muestran las opciones esenciales de RESTORE para una secuencia de restauración de archivos.This section shows the essential RESTORE options for a file-restore sequence. La sintaxis y los detalles no pertinentes para este propósito se omiten.Syntax and details that are not relevant to this purpose are omitted.

La secuencia de restauración de ejemplo siguiente muestra una restauración sin conexión de dos archivos secundarios, A y B, mediante WITH NORECOVERY.The following sample restore sequence shows an offline restore of two secondary files, A and B, using WITH NORECOVERY. A continuación, se aplican dos copias de seguridad de registros con NORECOVERY y, después, la copia del final del registro después del error, recuperada con WITH RECOVERY.Next, two log backups are applied with NORECOVERY, followed with the tail-log backup, and this is restored using WITH RECOVERY.

Nota

El siguiente ejemplo de secuencia de restauración se inicia tomando el archivo sin conexión y después crea una copia del final del registro.The following sample restore sequence starts by taking the file offline and then creates a tail-log backup.

--Take the file offline.  
ALTER DATABASE database_name MODIFY FILE SET OFFLINE;  
-- Back up the currently active transaction log.  
BACKUP LOG database_name  
   TO <tail_log_backup>  
   WITH NORECOVERY;  
GO   
-- Restore the files.  
RESTORE DATABASE database_name FILE=name   
   FROM <file_backup_of_file_A>   
   WITH NORECOVERY;  
RESTORE DATABASE database_name FILE=<name> ......  
   FROM <file_backup_of_file_B>   
   WITH NORECOVERY;  
-- Restore the log backups.  
RESTORE LOG database_name FROM <log_backup>   
   WITH NORECOVERY;  
RESTORE LOG database_name FROM <log_backup>   
   WITH NORECOVERY;  
RESTORE LOG database_name FROM <tail_log_backup>   
   WITH RECOVERY;  

EjemplosExamples

Tareas relacionadasRelated Tasks

Para restaurar archivos y grupos de archivosTo restore files and filegroups

Consulte tambiénSee Also

Copias de seguridad y restauración: interoperabilidad y coexistencia (SQL Server) Backup and Restore: Interoperability and Coexistence (SQL Server)
Copias de seguridad diferenciales (SQL Server) Differential Backups (SQL Server)
Copias de seguridad de archivos completas (SQL Server) Full File Backups (SQL Server)
Información general de copia de seguridad (SQL Server) Backup Overview (SQL Server)
Información general sobre restauración y recuperación (SQL Server) Restore and Recovery Overview (SQL Server)
RESTORE (Transact-SQL) RESTORE (Transact-SQL)
Restauraciones de base de datos completas (modelo de recuperación simple) Complete Database Restores (Simple Recovery Model)
Restauraciones por etapas (SQL Server)Piecemeal Restores (SQL Server)