Restaurar páginas (SQL Server)

 

Publicado: agosto de 2016

ESTE TEMA SE APLICA A: síSQL Server (a partir de 2016)noBase de datos SQL de AzurenoAlmacenamiento de datos SQL de Azure noAlmacenamiento de datos paralelos

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áginas es restaurar una o varias páginas dañadas sin restaurar la base de datos completa. 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. Las páginas sospechosas se identifican en la tabla suspect_pages de la base de datos msdb.

En este tema

¿Cuándo es útil la restauración de páginas?

La restauración de páginas se ha diseñado para reparar páginas aisladas que se han dañado. 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. 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. 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.

Además, no todos los errores de página requieren una restauración. Puede producirse un problema en los datos en caché, como por ejemplo un índice secundario, que se puede resolver recalculando los datos. 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.

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 optimizado para cargas masivas de registros o completa. La restauración de páginas solo se admite para grupos de archivos de lectura/escritura.

  • Solo se pueden restaurar las páginas de bases de datos. La restauración de páginas no se puede utilizar para restaurar los elementos siguientes:

    • 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 (la página de arranque del archivo)

    • Página 1:9 (la página de arranque de la base de datos)

    • Catálogo de texto completo

  • 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:

    • 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. La presencia de una página sin conexión puede evitar la realización de una copia de seguridad del registro. 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.

    • 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.

    • La restauración de páginas no suele funcionar con la recuperación por medio de registros de operaciones masivas.

      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. Si la copia de seguridad de registros funciona, puede pasar a realizar la restauración de páginas. 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.

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á en modo sin conexión mientras se restauran las páginas dañadas. Al final de la secuencia de restauración, la base de datos pasará a estar en línea.

    Restauración de páginas en línea
    SQL 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. 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. 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. Sin embargo, en ocasiones, será necesario utilizar una restauración sin conexión para algunas páginas dañadas. Por ejemplo, cuando los daños en ciertas páginas críticas pueden evitar que se inicie la base de datos.

    System_CAPS_ICON_warning.jpg 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. 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).

  • 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). 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. Solo se restauran las páginas que se especifican de forma explícita. Cada página especificada se sustituye por la copia de esa página en la copia de seguridad de datos especificada.

    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. 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. 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. 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.

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 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).

Los permisos RESTORE se conceden a los roles en los que la información acerca de la pertenencia está siempre disponible para el servidor. 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.

A partir de SQL Server 2016, SQL Server Management Studio admite las restauraciones de páginas.

Para restaurar páginas

  1. Conéctese a la instancia adecuada del Motor de base de datos de SQL Servery, en el Explorador de objetos, haga clic en el nombre del servidor para expandir el árbol.

  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 sistemay, a continuación, seleccione una base de datos del sistema.

  3. Haga clic con el botón derecho en la base de datos, seleccione Tareas, seleccione Restaurar y haga clic en Página, con lo que se abre el cuadro de diálogo Restaurar página.

    Restore
    En esta sección se realiza la misma función que la de Restaurar en en Restaurar base de datos (página General).

    Base de datos
    Especifica la base de datos que se va a restaurar. Puede especificar una base de datos nueva o seleccionar una base de datos existente de la lista desplegable. La lista incluye todas las bases de datos del servidor, excepto las bases de datos del sistema maestra y tempdb.

    System_CAPS_ICON_warning.jpg Advertencia


    Para restaurar una copia de seguridad protegida con contraseña, use la instrucción RESTORE.

    Copia del final del registro
    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.

    Conjuntos de copia de seguridad
    Esta sección muestra los conjuntos de copia de seguridad implicados en la restauración.

    EncabezadoValores
    NombreNombre del conjunto de copia de seguridad.
    ComponenteComponente del que se realizó una copia de seguridad: Base de datos, Archivo o <en blanco> (para registros de transacciones).
    TipoTipo de copia de seguridad realizada: Completa, Diferencialo Registro de transacciones.
    ServerNombre de la instancia del Motor de base de datos que realizó la operación de copia de seguridad.
    Base de datosNombre de la base de datos para la operación de copia de seguridad.
    PosiciónPosición del conjunto de copias de seguridad en el volumen.
    Primer LSNNúmero de secuencia de registro (LSN) de la primera transacción del conjunto de copias de seguridad. En blanco para las copias de seguridad de archivos.
    Último LSNNúmero de secuencia de registro (LSN) de la última transacción del conjunto de copias de seguridad. En blanco para las copias de seguridad de archivos.
    LSN de punto de comprobaciónNú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.
    LSN completoNúmero de secuencia de registro (LSN) de la copia de seguridad completa más reciente de la base de datos.
    Fecha de inicioFecha y hora en la que se inició la operación de copia de seguridad, presentadas en la configuración regional del cliente.
    Fecha finalFecha y hora en la que finalizó la operación de copia de seguridad, presentadas en la configuración regional del cliente.
    TamañoTamaño del conjunto de copias de seguridad, en bytes.
    Nombre de usuarioNombre del usuario que realizó la operación de copia de seguridad.
    ExpiraciónFecha y hora de expiración del conjunto de copias 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.

  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. Se trata de una operación de ejecución prolongada.

    System_CAPS_ICON_warning.jpg 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.

  5. La cuadrícula de páginas se utiliza 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 en la cuadrícula, haga clic en Agregar o en Quitar. Para obtener más información, vea Administrar la tabla suspect_pages (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. 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

  7. Para restaurar las páginas incluidas en la cuadrícula de páginas, haga clic en Aceptar.

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. 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 Argumentos RESTORE (Transact-SQL). Para obtener más información sobre la sintaxis de RESTORE DATABASE, vea RESTORE (Transact-SQL).

Para restaurar páginas

  1. Obtener los Id. de las páginas dañadas que se deben restaurar. 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. Para buscar el identificador de una página dañada, use cualquiera de los siguientes orígenes.

    Origen de identificador de páginaTema
    msdb..suspect_pagesAdministrar la tabla suspect_pages (SQL Server)
    Registro de erroresVer el registro de errores de SQL Server (SQL Server Management Studio)
    Seguimientos de eventosSupervisar y responder a eventos
    DBCCDBCC (Transact-SQL)
    Proveedor WMIConceptos del proveedor WMI para eventos de servidor
  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. En la instrucción RESTORE DATABASE, utilice la cláusula PAGE para obtener los Id. de todas las páginas que se deben restaurar.

  3. Aplicar las copias de seguridad diferenciales más recientes.

  4. Aplicar las copias de seguridad de registros posteriores.

  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. 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. 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. 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. Para obtener más información, vea sys.master_files (Transact-SQL).

  6. Restaurar la copia de seguridad de registros nueva. 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.

    System_CAPS_ICON_note.jpg Nota


    Esta secuencia es análoga a una secuencia de restauración de archivos. De hecho, tanto la restauración de páginas como la de archivos puede realizarse como parte de la misma secuencia.

Ejemplo (Transact-SQL)

En el siguiente ejemplo 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 y, después, la copia del final del registro, restaurada con RECOVERY. En este ejemplo se realiza una restauración en línea. En el ejemplo, el identificador del archivo B es 1 y los identificadores de las páginas dañadas son 57, 202, 916 y 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  

RESTORE (Transact-SQL)
Aplicar copias de seguridad de registros de transacción (SQL Server)
Administrar la tabla suspect_pages (SQL Server)
Realizar copias de seguridad y restaurar bases de datos de SQL Server

Adiciones de comunidad

AGREGAR
Mostrar: