Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este tema se describe cómo restaurar páginas en SQL Server mediante SQL Server Management Studio o Transact-SQL. El objetivo de una restauración de página es restaurar una o varias páginas dañadas sin restaurar toda la base de datos. Normalmente, las páginas que son candidatas para la restauración se han marcado como "sospechosas" debido a un error que se encuentra al acceder a la página. Las páginas sospechosas se identifican en la tabla suspect_pages de la base de datos msdb .
En este tema
Antes de comenzar:
Para restaurar páginas mediante:
Antes de empezar
¿Cuándo es útil una restauración de páginas?
Una restauración de páginas está pensada para reparar páginas dañadas aisladas. Restaurar y recuperar algunas páginas individuales puede ser más rápida que una restauración de archivos, lo que reduce la cantidad de datos que están sin conexión durante una operación de restauración. Sin embargo, si tiene que restaurar más de unas pocas páginas en un archivo, generalmente es más eficaz restaurar todo el archivo. Por ejemplo, si muchas páginas de un dispositivo indican un error pendiente del dispositivo, considere la posibilidad de restaurar el archivo, posiblemente a otra ubicación y reparar el dispositivo.
Además, no todos los errores de página requieren una restauración. Se puede producir un problema en los datos almacenados en caché, como un índice secundario, que se puede resolver recalculando los datos. Por ejemplo, si el administrador de la base de datos quita un índice secundario y lo vuelve a generar, los datos dañados, aunque corregidos, no se indican como tales en la tabla suspect_pages.
Limitaciones y restricciones
La restauración de páginas se aplica a las bases de datos de SQL Server que usan los modelos de recuperación completo o con registro masivo. La restauración de páginas solo se admite para grupos de archivos de lectura y escritura.
Solo se pueden restaurar páginas de base de datos. No se puede usar la restauración de páginas para restaurar lo siguiente:
Registro de transacciones
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).
Página 0 de todos los archivos de datos (página de arranque de archivos)
Página 1:9 (página de arranque de la base de datos)
Catálogo de texto completo
Para una base de datos que usa el modelo de recuperación con registro masivo, la restauración de páginas tiene las siguientes condiciones adicionales:
La copia de seguridad mientras el grupo de archivos o los datos de página están sin conexión es problemático para los datos registrados de forma masiva, ya que los datos sin conexión no se registran en el registro. Cualquier página sin conexión puede impedir la copia de seguridad del registro. En estos casos, considere la posibilidad de usar DBCC REPAIR, ya que esto puede provocar menos pérdida de datos que la restauración a la copia de seguridad más reciente.
Si una copia de seguridad de registros de una base de datos registrada masivamente encuentra una página incorrecta, se produce un error a menos que se especifique WITH CONTINUE_AFTER_ERROR.
Por lo general, la restauración de páginas no funciona con la recuperación de registros agrupados.
Un procedimiento recomendado para realizar 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. Si la copia de seguridad de registros funciona, puede continuar con la restauración de páginas. Si se produce un error en la copia de seguridad de registros, debe perder el trabajo desde la copia de seguridad de registros anterior o debe intentar ejecutar DBCC con la opción REPAIR_ALLOW_DATA_LOSS.
Recomendaciones
Escenarios de restauración de páginas:
Restauración de páginas sin conexión
Todas las ediciones de SQL Server admiten la restauración de páginas cuando la base de datos está sin conexión. En una restauración de páginas sin conexión, la base de datos está sin conexión mientras se restauran las páginas dañadas. Al final de la secuencia de restauración, la base de datos está en línea.Restauración de páginas en línea
SQL Server Enterprise Edition admite restauraciones de páginas en línea, aunque usan la restauración sin conexión si la base de datos está sin conexión. En la mayoría de los casos, se puede restaurar una página dañada mientras la base de datos permanece en línea, incluido el grupo de archivos al que se restaura una página. Cuando el grupo de archivos principal está en línea, aunque uno o varios de sus grupos de archivos secundarios estén sin conexión, las restauraciones de página normalmente se realizan en línea. Sin embargo, en ocasiones, una página dañada puede requerir una restauración sin conexión. Por ejemplo, el daño a determinadas páginas críticas podría impedir que se inicie la base de datos.Advertencia
Si las páginas dañadas almacenan metadatos críticos de la base de datos, es posible que se produzcan errores en las actualizaciones necesarias de los metadatos durante un intento de restauración de páginas en línea. En este caso, puede realizar una restauración de páginas sin conexión, pero primero debe crear una copia de seguridad del registro final (mediante la copia de seguridad del registro de transacciones mediante RESTORE WITH NORECOVERY).
La restauración de páginas aprovecha los informes de errores a nivel de página mejorados (incluidas las sumas de comprobación de página) y el seguimiento. Las páginas detectadas como dañadas por la suma de comprobación o una escritura rasgada, páginas dañadas, se pueden restaurar mediante una operación de restauración de páginas. Solo se restauran las páginas especificadas explícitamente. Cada página especificada se reemplaza por la copia de esa página de la copia de seguridad de datos especificada.
Al restaurar las copias de seguridad de registros posteriores, solo se aplican a los archivos de base de datos que contienen al menos una página que se está recuperando. Se debe aplicar una cadena de copias de seguridad de registros sin desbloquear a la última restauración completa o diferencial para que el grupo de archivos que contenga la página se reenvíe al archivo de registro actual. Como en una restauración de archivos, el conjunto de avance se avanza con un solo paso de repetición del registro. Para que una restauración de página se realice correctamente, las páginas restauradas deben recuperarse en un estado coherente con la base de datos.
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
A partir de SQL Server 2014, SQL Server Management Studio admite restauraciones de páginas.
Para restaurar páginas
Conéctese a la instancia adecuada del motor de base de datos de SQL Server, en el Explorador de objetos, haga clic en el nombre del servidor para expandir el árbol del servidor.
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.
Haga clic con el botón derecho en la base de datos, seleccione Tareas, Restaurar, y luego haga clic en Página, lo cual abre el cuadro de diálogo Restaurar página.
Restaurar
Esta sección realiza la misma función que la de Restaurar en en la base de datos de restauración (página General).Base de datos
Especifica la base de datos que se va a restaurar. Puede escribir una nueva base de datos o seleccionar una base de datos existente en la lista desplegable. La lista incluye todas las bases de datos del servidor, excepto las bases de datos maestras del sistema y tempdb.Advertencia
Para restaurar una copia de seguridad protegida con contraseña, debe usar la instrucción RESTORE .
copia de seguridad deTail-Log
Escriba o seleccione un nombre de archivo en Dispositivo de copia de seguridad donde se almacenará la copia de seguridad del tail-log para la base de datos.Conjuntos de copia de seguridad
En esta sección se muestran los conjuntos de copia de seguridad implicados en la restauración.Cabecera Valores Nombre Nombre del conjunto de copia de seguridad. Componente Componente de copia de seguridad: Base de datos, Archivo o <en blanco> (para registros de transacciones). Tipo Tipo de copia de seguridad realizada: Completo, Diferencial o Registro de transacciones. Servidor Nombre de la instancia del motor de base de datos que realizó la operación de copia de seguridad. Base de datos Nombre de la base de datos implicada en la operación de copia de seguridad. Posición Posición del conjunto de copia de seguridad en el volumen. Primer LSN Número de secuencia de registro (LSN) de la primera transacción del conjunto de copia de seguridad. En blanco para las copias de seguridad de archivos. Último LSN Número de secuencia de registro (LSN) de la última transacción del conjunto de copia de seguridad. En blanco para las copias de seguridad de archivos. LSN de punto de control Número de secuencia de registro (LSN) del punto de control más reciente en el momento en que se creó la copia de seguridad. LSN completo Número de secuencia de registro (LSN) de la copia de seguridad completa de la base de datos más reciente. Fecha de inicio Fecha y hora en que se inició la operación de copia de seguridad, presentada en la configuración regional del cliente. Fecha de finalización Fecha y hora en que finalizó la operación de copia de seguridad, presentada en la configuración regional del cliente. Tamaño Tamaño del conjunto de copia de seguridad en bytes. Nombre de usuario Nombre del usuario que realizó la operación de copia de seguridad. Expiración Fecha y hora en que expira el conjunto de copia de seguridad. 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.
Para identificar páginas dañadas, con la base de datos correcta seleccionada en el cuadro Base de datos , haga clic en Comprobar páginas de base de datos. Se trata de una operación de larga duración.
Advertencia
Para restaurar páginas específicas que no están dañadas, haga clic en Agregar y escriba el identificador de archivo y el identificador de página de las páginas que se van a restaurar.
La cuadrícula de páginas se usa para identificar las páginas que se van a restaurar. Inicialmente, esta cuadrícula se rellena desde la tabla del sistema suspect_pages . Para agregar o quitar páginas de la cuadrícula, haga clic en Agregar o quitar. Para obtener más información, vea Administrar la tabla de suspect_pages (SQL Server).
En la cuadrícula Conjuntos de copia de seguridad se enumeran los conjuntos de copias de seguridad del plan de restauración predeterminado. 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. Para obtener más información, vea RESTORE VERIFYONLY (Transact-SQL).
Páginas
Para restaurar las páginas enumeradas en la cuadrícula de páginas, haga clic en Aceptar.
Uso de 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 página de la página. La sintaxis necesaria es la siguiente:
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 RESTORE Arguments (Transact-SQL). Para obtener más información sobre la sintaxis RESTORE DATABASE, vea RESTORE (Transact-SQL).
Para restaurar páginas
Obtenga los identificadores de página de las páginas dañadas que se van a restaurar. Una suma de comprobación o un error de escritura incompleta devuelve el ID de página, proporcionando la información necesaria para especificar las páginas. Para buscar el identificador de página de una página dañada, use cualquiera de los orígenes siguientes.
Origen del identificador de página Tema msdb..suspect_pages Administrar la tabla suspect_pages (SQL Server) Registro de errores Ver el registro de errores de SQL Server (SQL Server Management Studio) Seguimientos de eventos Supervisión y respuesta a eventos DBCC DBCC (Transact-SQL) Proveedor WMI Conceptos del proveedor WMI para eventos de servidor Inicie una restauración de página con una copia de seguridad completa de base de datos, archivo o grupo de archivos que contenga la página. En la instrucción RESTORE DATABASE, use la cláusula PAGE para enumerar los identificadores de página de todas las páginas que se van a restaurar.
Aplique los diferenciales más recientes.
Aplique las copias de seguridad de registros posteriores.
Cree una nueva copia de seguridad del log de la base de datos que incluya el LSN final de las páginas restauradas, es decir, el punto en el que se desconecta la última página restaurada. El LSN final, que se establece como parte de la primera restauración de la secuencia, es el LSN de destino de reprocesamiento. Puesta al día del archivo que contiene la página puede detenerse en el LSN de destino de puesta al día. Para obtener información sobre el LSN de destino de rehacer actual de un archivo, consulte la columna redo_target_lsn de sys.master_files. Para obtener más información, vea sys.master_files (Transact-SQL).
Restaure la nueva copia de seguridad del registro. Después de aplicar esta nueva copia de seguridad de registros, la restauración de páginas se completa y las páginas ahora se pueden usar.
Nota:
Esta secuencia es análoga a una secuencia de restauración de archivos. De hecho, la restauración de páginas y las restauraciones de archivos se pueden realizar como parte de la misma secuencia.
Ejemplo (Transact-SQL)
En el ejemplo siguiente se restauran cuatro páginas dañadas del archivo B con NORECOVERY. A continuación, se aplican dos copias de seguridad de registros con NORECOVERY, seguidas de la copia de seguridad del final del registro, que se restaura con RECOVERY. En este ejemplo se realiza una restauración en línea. En el ejemplo, el identificador de archivo B1es y los identificadores de página de las páginas dañadas son 57, 202, 916y 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
Véase también
RESTORE (Transact-SQL)
Aplicar copias de seguridad de registros de transacción (SQL Server)
Administrar la tabla suspect_pages (SQL Server)
Copia de seguridad y restauración de bases de datos de SQL Server