Restaurar páginas (SQL Server)Restore Pages (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 páginas en SQL ServerSQL Server mediante SQL Server Management StudioSQL Server Management Studio o Transact-SQLTransact-SQL.This topic describes how to restore pages in SQL ServerSQL Server by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-SQL. El objetivo de una restauración de páginas es restaurar una o varias páginas dañadas sin restaurar la base de datos completa.The goal of a page restore is to restore one or more damaged pages without restoring the whole database. Normalmente, las páginas candidatas para la restauración se han marcado como "sospechosas" debido a un error al tener acceso a la página.Typically, pages that are candidates for restore have been marked as "suspect" because of an error that is encountered when accessing the page. Las páginas sospechosas se identifican en la tabla suspect_pages de la base de datos msdb .Suspect pages are identified in the suspect_pages table in the msdb database.

En este temaIn This Topic

Antes de comenzarBefore You Begin

¿Cuándo es útil la restauración de páginas?When is a Page Restore Useful?

La restauración de páginas se ha diseñado para reparar páginas aisladas que se han dañado.A page restore is intended for repairing isolated damaged pages. La restauración y recuperación de una pequeña cantidad de páginas es más rápida que la restauración de un archivo, ya que reduce la cantidad de datos sin conexión durante la operación de restauración.Restoring and recovering a few individual pages might be faster than a file restore, reducing the amount of data that is offline during a restore operation. Sin embargo, si debe restaurar una cantidad mayor de páginas de un archivo, la restauración del archivo completo suele ser más efectiva.However, if you have to restore more than a few pages in a file, it is generally more efficient to restore the whole file. Por ejemplo, la presencia de un gran número de páginas dañadas en un dispositivo puede indicar un error de dispositivo pendiente. Pruebe a restaurar el archivo, posiblemente en otra ubicación, y repare el dispositivo.For example, if lots of pages on a device indicate a pending device failure, consider restoring the file, possibly to another location, and repairing the device.

Además, no todos los errores de página requieren una restauración.Furthermore, not all page errors require a restore. Puede producirse un problema en los datos en caché, como por ejemplo un índice secundario, que se puede resolver recalculando los datos.A problem can occur in cached data, such as a secondary index, that can be resolved by recalculating the data. Por ejemplo, si el administrador de base de datos quita un índice secundario y lo vuelve a generar, los datos dañados, aunque se corrijan, no se indican como tales en la tabla suspect_pages .For example, if the database administrator drops a secondary index and rebuilds it, the corrupted data, although fixed, is not indicated as such in the suspect_pages table.

Limitaciones y restriccionesLimitations and Restrictions

  • La restauración de páginas se aplica a las bases de datos de SQL ServerSQL Server que usan los modelos de recuperación optimizado para cargas masivas de registros o completa.Page restore applies to SQL ServerSQL Server databases that are using the full or bulk-logged recovery models. La restauración de páginas solo se admite para grupos de archivos de lectura/escritura.Page restore is supported only for read/write filegroups.

  • Solo se pueden restaurar las páginas de bases de datos.Only database pages can be restored. La restauración de páginas no se puede utilizar para restaurar los elementos siguientes:Page restore cannot be used to restore the following:

    • Registro de transaccionesTransaction log

    • Páginas de asignación: páginas del mapa de asignación global (GAM), páginas del mapa de asignación global compartido (SGAM) y páginas de espacio disponible en páginas (PFS).Allocation pages: Global Allocation Map (GAM) pages, Shared Global Allocation Map (SGAM) pages, and Page Free Space (PFS) pages.

    • Página 0 de todos los archivos de datos (la página de arranque del archivo)Page 0 of all data files (the file boot page)

    • Página 1:9 (la página de arranque de la base de datos)Page 1:9 (the database boot page)

    • Catálogo de texto completoFull-text catalog

  • Para una base de datos que utiliza el modelo de recuperación optimizado para cargas masivas de registros, la restauración de páginas cuenta con las condiciones adicionales siguientes:For a database that uses the bulk-logged recovery model, page restore has the following additional conditions:

    • La realización de copias de seguridad mientras un grupo de archivos o los datos de una página están en modo sin conexión resulta problemática para los datos de registros de operaciones masivas, ya que los datos sin conexión no se encuentran en el registro.Backing up while filegroup or page data is offline is problematic for bulk-logged data, because the offline data is not recorded in the log. La presencia de una página sin conexión puede evitar la realización de una copia de seguridad del registro.Any offline page can prevent backing up the log. En estos casos, intente utilizar DBCC REPAIR, de esta forma la pérdida de datos puede ser menor que si restaura la copia de seguridad más reciente.In this cases, consider using DBCC REPAIR, because this might cause less data loss than restoring to the most recent backup.

    • Si una copia de seguridad de registros de una base de datos por medio de registros de operaciones masivas detecta una página dañada, se producirá un error a menos que se especifique WITH CONTINUE_AFTER_ERROR.If a log backup of a bulk-logged database encounters a bad page, it fails unless WITH CONTINUE_AFTER_ERROR is specified.

    • La restauración de páginas no suele funcionar con la recuperación por medio de registros de operaciones masivas.Page restore generally does not work with bulk-logged recovery.

      La recomendación para llevar a cabo la restauración de páginas es establecer la base de datos en el modelo de recuperación completa e intentar realizar una copia de seguridad de registros.A best practice for performing page restore is to set the database to the full recovery model, and try a log backup. Si la copia de seguridad de registros funciona, puede pasar a realizar la restauración de páginas.If the log backup works, you can continue with the page restore. Si la copia de seguridad de registros no se realiza correctamente, perderá el trabajo realizado desde la copia de seguridad de registros anterior o tendrá que intentar ejecutar DBCC con la opción REPAIR_ALLOW_DATA_LOSS.If the log backup fails, you either have to lose work since the previous log backup or you have to try running DBCC must be run with the REPAIR_ALLOW_DATA_LOSS option.

RecomendacionesRecommendations

  • Escenarios de restauración de páginas:Page restore scenarios:

    Restauración de páginas sin conexiónOffline page restore
    Todas las ediciones de SQL ServerSQL Server admiten la restauración de páginas cuando la base de datos está sin conexión.All editions of SQL ServerSQL Server support restoring pages when the database is offline. En una restauración de páginas sin conexión, la base de datos está en modo sin conexión mientras se restauran las páginas dañadas.In an offline page restore, the database is offline while damaged pages 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.

    Restauración de páginas en líneaOnline page restore
    SQL ServerSQL Server Enterprise Edition admite restauraciones de páginas en línea, aunque usa la restauración sin conexión si la base de datos está sin conexión en ese momento.Enterprise edition supports online page restores, though they use offline restore if the database is currently offline. En la mayoría de los casos, la restauración de una página dañada se realiza mientras la base de datos, incluido el grupo de archivos para el que la página se restaura, permanece en línea.In most cases, a damaged page can be restored while the database remains online, including the filegroup to which a page is being restored. Cuando el grupo de archivos principal está en línea, aunque alguno de los grupos de archivos secundarios esté sin conexión, las restauraciones de páginas suelen realizarse en línea.When the primary filegroup is online, even if one or more of its secondary filegroups are offline, page restores are usually performed online. Sin embargo, en ocasiones, será necesario utilizar una restauración sin conexión para algunas páginas dañadas.Occasionally, however, a damaged page can require an offline restore. Por ejemplo, cuando los daños en ciertas páginas críticas pueden evitar que se inicie la base de datos.For example, damage to certain critical pages might prevent the database from starting.

    Advertencia

    Si las páginas dañadas almacenan metadatos críticos de la base de datos, las actualizaciones necesarias de los metadatos podrían producir un error durante el intento de restauración en línea de las páginas.If damaged pages are storing critical database metadata, required updates to metadata might fail during an online page restore attempt. En este caso, se puede realizar una restauración de páginas sin conexión, pero primero se debe crear una copia del final del registro (realizando una copia de seguridad del registro de transacciones mediante RESTORE WITH NORECOVERY).In this case, you can perform an offline page restore, but first you must create a tail log backup (by backing up the transaction log using RESTORE WITH NORECOVERY).

  • La restauración de páginas utiliza el mecanismo mejorado de creación de informes y seguimiento de errores de página (incluidas las sumas de comprobación de página).Page restore takes advantage of the improved page-level error reporting (including page checksums) and tracking. Las páginas que las sumas de comprobación o las escrituras incompletas detectan como dañadas ( páginas dañadas) se pueden restaurar mediante una operación de restauración de páginas.Pages that are detected as corrupted by check-summing or a torn write, damaged pages, can be restored by a page restore operation. Solo se restauran las páginas que se especifican de forma explícita.Only explicitly specified pages are restored. Cada página especificada se sustituye por la copia de esa página en la copia de seguridad de datos especificada.Each specified page is replaced by the copy of that page from the specified data backup.

    Cuando se restauran las copias de seguridad de registros posteriores, estas se aplican solo a los archivos de base de datos que contienen al menos una página se está recuperando.When you restore the subsequent log backups, they are applied only to database files that contain at least one page that is being recovered. Debe aplicarse una cadena ininterrumpida de copias de seguridad de registros a la última recuperación completa o diferencial para actualizar el grupo de archivos que incluye la página al archivo de registro actual.An unbroken chain of log backups must be applied to the last full or differential restore to bring the filegroup that contains the page forward to the current log file. Al igual que en una restauración de archivo, el conjunto de puestas al día se avanza con un solo pase de puesta al día de registro.As in a file restore, the roll forward set is advanced with a single log redo pass. Para que una restauración de páginas se lleve a cabo correctamente, las páginas restauradas deben recuperarse a un estado coherente con la base de datos.For a page restore to succeed, the restored pages must be recovered to a state consistent with the database.

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

A partir de SQL Server 2017SQL Server 2017, SQL Server Management StudioSQL Server Management Studio admite las restauraciones de páginas.Starting in SQL Server 2017SQL Server 2017, SQL Server Management StudioSQL Server Management Studio supports page restores.

Para restaurar páginasTo restore pages

  1. Conéctese a la instancia adecuada del Motor de base de datos de SQL ServerSQL Server Database Enginey, en el Explorador de objetos, haga clic en el nombre del servidor para expandir el árbol.Connect to the appropriate instance of the 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, seleccione Restaurary haga clic en Página, con lo que se abre el cuadro de diálogo Restaurar página .Right-click the database, point to Tasks, point to Restore, and then click Page, which opens the Restore Page dialog box.

    RestauraciónRestore
    En esta sección se realiza la misma función que la de Restaurar en en Restaurar base de datos (página General).This section performs the same function as that of Restore to on the Restore Database (General Page).

    Base de datosDatabase
    Especifica la base de datos que se va a restaurar.Specifies the database to restore. Puede especificar una base de datos nueva o seleccionar una base de datos existente de la lista desplegable.You can enter a new database or select an existing database from the drop-down list. La lista incluye todas las bases de datos del servidor, excepto las bases de datos del sistema maestra y tempdb.The list includes all databases on the server, except the system databases master and tempdb.

    Advertencia

    Para restaurar una copia de seguridad protegida con contraseña, use la instrucción RESTORE .To restore a password-protected backup, you must use the RESTORE statement.

    Copia del final del registroTail-Log backup
    Escriba o seleccione un nombre de archivo en Dispositivo de copia de seguridad , en el que la copia del final del registro se almacenará en la base de datos.Enter or select a file name in Backup device where there tail-log backup will be stored for the database.

    Conjuntos de copia de seguridadBackup Sets
    Esta sección muestra los conjuntos de copia de seguridad implicados en la restauración.This section displays the backup sets involved in the restoration.

    EncabezadoHeader ValoresValues
    NombreName Nombre del conjunto de copia de seguridad.The name of the backup set.
    ComponenteComponent Componente del que se ha realizado una copia de seguridad: Base de datos, Archivo o <en blanco> (para registros de transacciones).The backed-up component: Database, File, or <blank> (for transaction logs).
    TipoType Tipo de copia de seguridad realizada: Completa, Diferencial o Registro de transacciones.The type of backup performed: Full, Differential, or Transaction Log.
    ServerServer Nombre de la instancia del Motor de base de datosDatabase Engine que realizó la operación de copia de seguridad.The name of the Motor de base de datosDatabase Engine instance that performed the backup operation.
    Base de datosDatabase Nombre de la base de datos para la operación de copia de seguridad.The name of the database involved in the backup operation.
    PosiciónPosition Posición del conjunto de copias de seguridad en el volumen.The position of the backup set in the volume.
    Primer LSNFirst LSN Número de secuencia de registro (LSN) de la primera transacción del conjunto de copias de seguridad.The log sequence number (LSN) of the first transaction in the backup set. En blanco para las copias de seguridad de archivos.Blank for file backups.
    Último LSNLast LSN Número de secuencia de registro (LSN) de la última transacción del conjunto de copias de seguridad.The log sequence number (LSN) of the last transaction in the backup set. En blanco para las copias de seguridad de archivos.Blank for file backups.
    LSN de punto de comprobaciónCheckpoint LSN Número de secuencia de registro (LSN) del punto de comprobación más reciente en el momento en que se creó la copia de seguridad.The log sequence number (LSN) of the most recent checkpoint at the time the backup was created.
    LSN completoFull LSN Número de secuencia de registro (LSN) de la copia de seguridad completa más reciente de la base de datos.The log sequence number (LSN) of the most recent full database backup.
    Fecha de inicioStart Date Fecha y hora en la que se inició la operación de copia de seguridad, presentadas en la configuración regional del cliente.The date and time when the backup operation began, presented in the regional setting of the client.
    Fecha finalFinish Date Fecha y hora en la que finalizó la operación de copia de seguridad, presentadas en la configuración regional del cliente.The date and time when the backup operation finished, presented in the regional setting of the client.
    TamañoSize Tamaño del conjunto de copias de seguridad, en bytes.The size of the backup set in bytes.
    Nombre de usuarioUser Name Nombre del usuario que realizó la operación de copia de seguridad.The name of the user who performed the backup operation.
    ExpiraciónExpiration Fecha y hora de expiración del conjunto de copias de seguridad.The date and time the backup set expires.

    Haga clic en Comprobar para comprobar la integridad de los archivos de copia de seguridad necesarios para realizar la operación de restauración de páginas.Click Verify to check the integrity of the backup files needed to perform the page restore operation.

  4. Para identificar las páginas dañadas, con la base de datos correcta seleccionado en el cuadro Base de datos , haga clic en Comprobar páginas de la base de datos.To identify corrupted pages, with the correct database selected in the Database box, click Check Database Pages. Se trata de una operación de ejecución prolongada.This is a long running operation.

    Advertencia

    Para restaurar páginas específicas que no están dañadas, haga clic en Agregar y escriba el Id. de archivo y el Id. de página de las páginas que se van a restaurar.To restore specific pages that are not corrupted, click Add and enter the File ID and Page ID of the pages to be restored.

  5. La cuadrícula de páginas se utiliza para identificar las páginas que se van a restaurar.The pages grid is used to identify the pages to be restored. Inicialmente, esta cuadrícula se rellena desde la tabla del sistema suspect_pages .Initially, this grid is populated from the suspect_pages system table. Para agregar o quitar páginas en la cuadrícula, haga clic en Agregar o en Quitar.To add or remove pages from the grid, click Add or Remove. Para obtener más información, vea Administrar la tabla suspect_pages (SQL Server).For more information, see Manage the suspect_pages Table (SQL Server).

  6. La cuadrícula Conjuntos de copia de seguridad muestra una lista de los conjuntos de copia de seguridad en el plan de restauración predeterminado.The Backup sets grid lists the backup sets in the default restore plan. Opcionalmente, haga clic en Comprobar para comprobar que las copias de seguridad son legibles y que los conjuntos de copia de seguridad están completos, sin restaurarlos.Optionally, click Verify to verify that the backups are readable and that the backup sets are complete, without restoring them. Para obtener más información, vea RESTORE VERIFYONLY (Transact-SQL).For more information, see RESTORE VERIFYONLY (Transact-SQL).

    PáginasPages

  7. Para restaurar las páginas incluidas en la cuadrícula de páginas, haga clic en Aceptar.To restore the pages listed in the pages grid, click OK.

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.

Usar Transact-SQLUsing Transact-SQL

Para especificar una página en una instrucción RESTORE DATABASE, necesita el identificador de archivo del archivo que contiene la página y el identificador de la página.To specify a page in a RESTORE DATABASE statement, you need the file ID of the file containing the page and the page ID of the page. La sintaxis necesaria es la siguiente:The required syntax is as follows:

RESTORE DATABASE <database_name>

PAGE = '<file: page> [ ,... n ] ' [ ,... n ]

FROM <backup_device> [ ,... n ]

WITH NORECOVERY

Para obtener más información sobre los parámetros de la opción PAGE, vea Argumentos RESTORE (Transact-SQL).For more information about the parameters of the PAGE option, see RESTORE Arguments (Transact-SQL). Para obtener más información sobre la sintaxis de RESTORE DATABASE, vea RESTORE (Transact-SQL).For more information about the RESTORE DATABASE syntax, see RESTORE (Transact-SQL).

Para restaurar páginasTo restore pages

  1. Obtener los Id. de las páginas dañadas que se deben restaurar.Obtain the page IDs of the damaged pages to be restored. Un error de suma de comprobación o escritura incompleta devuelve el Id. de página con la información necesaria para especificar las páginas.A checksum or torn write error returns page ID, providing the information required for specifying the pages. Para buscar el identificador de una página dañada, use cualquiera de los siguientes orígenes.To look up page ID of a damaged page, use any of the following sources.

    Origen de identificador de páginaSource of page ID TemaTopic
    msdb..suspect_pagesmsdb..suspect_pages Administrar la tabla suspect_pages (SQL Server)Manage the suspect_pages Table (SQL Server)
    Registro de erroresError log Ver el registro de errores de SQL Server (SQL Server Management Studio)View the SQL Server Error Log (SQL Server Management Studio)
    Seguimientos de eventosEvent traces Supervisar y responder a eventosMonitor and Respond to Events
    DBCCDBCC DBCC (Transact-SQL)DBCC (Transact-SQL)
    Proveedor WMIWMI provider Conceptos del proveedor WMI para eventos de servidorWMI Provider for Server Events Concepts
  2. Iniciar una restauración de páginas con una copia de seguridad completa de base de datos, de archivo o de grupo de archivos que contenga la página.Start a page restore with a full database, file, or filegroup backup that contains the page. En la instrucción RESTORE DATABASE, utilice la cláusula PAGE para obtener los Id. de todas las páginas que se deben restaurar.In the RESTORE DATABASE statement, use the PAGE clause to list the page IDs of all of the pages to be restored.

  3. Aplicar las copias de seguridad diferenciales más recientes.Apply the most recent differentials .

  4. Aplicar las copias de seguridad de registros posteriores.Apply the subsequent log backups.

  5. Crear una nueva copia de seguridad de registros de la base de datos que incluya el LSN final de las páginas restauradas; es decir, el punto en que la última página restaurada ha pasado a estar en modo sin conexión.Create a new log backup of the database that includes the final LSN of the restored pages, that is, the point at which the last restored page is taken offline. El LSN final, que se establece como parte de la primera restauración de la secuencia, es el LSN final de puesta al día.The final LSN, which is set as part of the first restore in the sequence, is the redo target LSN. La puesta al día en línea del archivo que contiene la página puede detenerse en el LSN final de puesta al día.Online roll forward of the file containing the page is able to stop at the redo target LSN. Para conocer el LSN actual de destino de fase de puesta al día de un archivo, vea la columna redo_target_lsn de sys.master_files.To learn the current redo target LSN of a file, see the redo_target_lsn column of sys.master_files. Para obtener más información, vea sys.master_files (Transact-SQL).For more information, see sys.master_files (Transact-SQL).

  6. Restaurar la copia de seguridad de registros nueva.Restore the new log backup. Después de aplicar esta nueva copia de seguridad de registros, la restauración de páginas finaliza y las páginas están listas para su uso.After this new log backup is applied, the page restore is completed and the pages are now usable.

    Nota

    Esta secuencia es análoga a una secuencia de restauración de archivos.This sequence is analogous to a file restore sequence. De hecho, tanto la restauración de páginas como la de archivos puede realizarse como parte de la misma secuencia.In fact, page restore and file restores can both be performed as part of the same sequence.

Ejemplo (Transact-SQL)Example (Transact-SQL)

En el siguiente ejemplo se restauran cuatro páginas dañadas del archivo B con NORECOVERY.The following example restores four damaged pages of file B with NORECOVERY. A continuación, se aplican dos copias de seguridad de registros con NORECOVERYy, después, la copia del final del registro, restaurada con RECOVERY.Next, two log backups are applied with NORECOVERY, followed with the tail-log backup, which is restored with RECOVERY. En este ejemplo se realiza una restauración en línea.This example performs an online restore. En el ejemplo, el identificador del archivo B es 1y los identificadores de las páginas dañadas son 57, 202, 916y 1016.In the example, the file ID of file B is 1, and the page IDs of the damaged pages are 57, 202, 916, and 1016.

RESTORE DATABASE <database> PAGE='1:57, 1:202, 1:916, 1:1016'  
   FROM <file_backup_of_file_B>   
   WITH NORECOVERY;  
RESTORE LOG <database> FROM <log_backup>   
   WITH NORECOVERY;  
RESTORE LOG <database> FROM <log_backup>   
   WITH NORECOVERY;   
BACKUP LOG <database> TO <new_log_backup>;   
RESTORE LOG <database> FROM <new_log_backup> WITH RECOVERY;  
GO  

Consulte tambiénSee Also

RESTORE (Transact-SQL) RESTORE (Transact-SQL)
Aplicar copias de seguridad del registro de transacciones (SQL Server) Apply Transaction Log Backups (SQL Server)
Administrar la tabla suspect_pages (SQL Server) Manage the suspect_pages Table (SQL Server)
Realizar copias de seguridad y restaurar bases de datos de SQL ServerBack Up and Restore of SQL Server Databases