Restaurar una copia de seguridad de registros de transacciones (SQL Server)

Se aplica a:SQL Server

En este tema se describe cómo restaurar una copia de seguridad del registro de transacciones en SQL Server con SQL Server Management Studio o Transact-SQL.

En este tema

Antes de empezar

Requisitos previos

  • Las copias de seguridad deben restaurarse en el mismo orden en el que se crearon. Para que pueda restaurar una copia de seguridad determinada del registro de transacciones, primero debe restaurar las siguientes copias de seguridad anteriores sin revertir las transacciones sin confirmar, es decir, WITH NORECOVERY:

    • La copia de seguridad completa de la base de datos y la última copia de seguridad diferencial, si hay alguna, anteriores a la copia de seguridad del registro de transacciones. La base de datos debe haber utilizado el modelo de recuperación completa o el modelo de recuperación optimizado para cargas masivas de registros antes de crearse la copia de seguridad completa o diferencial más reciente.

    • Todas las copias de seguridad de registros de transacciones realizadas después de la copia de seguridad completa o de la copia de seguridad diferencial (si restaura una) y antes de la copia de seguridad especificada del registro de transacciones. Las copias de seguridad de registros deben haberse aplicado en la secuencia en que fueron creadas, sin saltos en la cadena de registros.

      Para obtener más información sobre las copias de seguridad del registro de transacciones, vea Copias de seguridad de registros de transacciones (SQL Server) y Aplicar copias de seguridad del registro de transacciones (SQL Server).

Seguridad

Permisos

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.

Uso de SQL Server Management Studio

Advertencia

El proceso normal de una restauración consiste en seleccionar las copias de seguridad de registros en el cuadro de diálogo Restaurar base de datos junto con las copias de seguridad de datos y diferenciales.

Para restaurar una copia de seguridad del registro de transacciones

  1. Después de conectarse a la instancia adecuada del Motor de base de datos de Microsoft SQL Server, en el Explorador de objetos, haga clic en el nombre del servidor para expandir el árbol del servidor.

  2. Expanda Bases de datosy, en función de la base de datos, seleccione la base de datos de un usuario o expanda Bases de datos del sistema y seleccione una base de datos del sistema.

  3. Haga clic con el botón derecho en la base de datos, seleccione Tareas, Restaurary, después, haga clic en Registro de transacciones, con lo que se abre el cuadro de diálogo Restaurar registro de transacciones .

    Nota:

    Si la opción Registro de transacciones está atenuada, es posible que primero deba restaurar una copia de seguridad completa o diferencial. Use el cuadro de diálogo de copia de seguridad Base de datos .

  4. En el cuadro de lista Base de datos de la página General , seleccione el nombre de una base de datos. Solo aparecerán las bases de datos en estado de restauración.

  5. Para especificar el origen y la ubicación de los conjuntos de copias de seguridad que se deben restaurar, haga clic en una de las opciones siguientes:

    • Desde copias de seguridad de bases de datos anteriores

      Seleccione la base de datos que desea restaurar en la lista desplegable. 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 .

    • Desde archivo o cinta

      Haga clic en el botón de exploración (...) para abrir el cuadro de diálogo Seleccionar dispositivos de copia de seguridad . En el cuadro Tipo de medio de copia de seguridad , seleccione uno de los tipos de dispositivo. Para seleccionar uno o varios dispositivos del cuadro Medio de copia de seguridad , haga clic en Agregar.

      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 .

  6. En la cuadrícula Seleccionar las copias de seguridad del registro de transacciones que se van a restaurar , seleccione las copias de seguridad que desea restaurar. En esta cuadrícula se muestran las copias de seguridad del registro de transacciones disponibles para la base de datos seleccionada. Una copia de seguridad del registro de transacciones solo está disponible si el Primer LSN es superior al Último LSN de la base de datos. Las copias de seguridad de registros aparecen en el orden de los números de secuencia de registro (LSN) que contienen y se deben restaurar en este orden.

    En la tabla siguiente se muestran los encabezados de columna de la cuadrícula y se describen sus valores.

    Encabezado Valor
    Restaurar Las casillas seleccionadas indican los conjuntos de copias de seguridad que se restaurarán.
    Nombre Nombre del conjunto de copia de seguridad.
    Componente Componente del que se ha realizado una copia de seguridad: Base de datos, Archivo o <en blanco> (para registros de transacciones).
    Base de datos Nombre de la base de datos que forma parte de la operación de copia de seguridad.
    Fecha de inicio Fecha y hora de inicio de la operación de copia de seguridad, según la configuración regional del cliente.
    Fecha final Fecha y hora de finalización de la operación de copia de seguridad, según la configuración regional del cliente.
    Primer LSN Número de secuencia de registro de la primera transacción del conjunto de copias de seguridad. En blanco para las copias de seguridad de archivos.
    Último LSN Número de flujo de registro 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ón Número de flujo de registro del punto de comprobación más reciente en el momento en que se creó la copia de seguridad.
    LSN completo Número de secuencia de registro de la copia de seguridad completa más reciente de la base de datos.
    Server Nombre de la instancia del motor de base de datos que realizó la operación de copia de seguridad.
    Nombre de usuario Nombre del usuario que realizó la operación de copia de seguridad.
    Size Tamaño del conjunto de copias de seguridad, en bytes.
    Position Posición del conjunto de copias de seguridad en el volumen.
    Expiración Fecha y hora de expiración del conjunto de copia de seguridad.
  7. Seleccione una de las siguientes opciones:

    • A un momento dado

      Puede conservar el valor predeterminado (Lo más reciente posible) o seleccionar una fecha y hora determinadas haciendo clic en el botón Examinar, que abre el cuadro de diálogo Restauración a un momento dado .

    • Transacción marcada

      Restaura la base de datos al estado de una transacción previamente marcada. Al seleccionar esta opción aparece el cuadro Seleccionar transacción marcada , en el que se muestra una cuadrícula con las transacciones marcadas disponibles en las copias de seguridad del registro de transacciones seleccionadas.

      De forma predeterminada, la restauración se realiza hasta la transacción marcada, sin incluirla. Para restaurar también la transacción marcada, seleccione Incluir transacción marcada.

      En la tabla siguiente se muestran los encabezados de columna de la cuadrícula y se describen sus valores.

      Encabezado Valor
      <espacio en blanco> Muestra una casilla para seleccionar la marca.
      Marca de transacción Nombre de la transacción marcada especificada por el usuario cuando se confirmó la transacción.
      Date Fecha y hora de confirmación de la transacción. La fecha y hora de la transacción se muestran tal como están registradas en la tabla msdbgmarkhistory , no en la fecha y hora del equipo cliente.
      Descripción Descripción de la transacción marcada especificada por el usuario al confirmar la transacción (si la hay).
      LSN Número de flujo de registro de la transacción marcada.
      Base de datos Nombre de la base de datos en la que se confirmó la transacción marcada.
      Nombre de usuario Nombre del usuario de la base de datos que confirmó la transacción marcada.
  8. Para ver o seleccionar las opciones avanzadas, haga clic en Opciones , en el panel Seleccionar una página .

  9. En la sección Opciones de restauración , las opciones son:

    • Conservar la configuración de replicación (WITH KEEP_REPLICATION)

      Conserva la configuración de replicación cuando se restaura una base de datos publicada en un servidor distinto de aquel en que se creó.

      Esta opción solo está disponible con la opción Dejar la base de datos lista para su uso revirtiendo las transacciones no confirmadas (descrita más adelante), que equivale a restaurar una copia de seguridad con la opción RECOVERY.

      Marcar esta opción equivale a usar la opción KEEP_REPLACE en una instrucción RESTORE de Transact-SQL.

    • Preguntar antes de restaurar cada copia de seguridad

      Antes de restaurar cada conjunto de copia de seguridad (después del primero), esta opción abre el cuadro de diálogo Continuar con la restauración , en el que se solicita si quiere continuar con la secuencia de restauración. En este cuadro de diálogo se muestra el nombre del siguiente conjunto de medios (si lo hay), el nombre del conjunto de copias de seguridad y la descripción del conjunto de copias de seguridad.

      Esta opción resulta especialmente útil cuando se deben intercambiar cintas de distintos conjuntos de medios. Por ejemplo, se puede utilizar cuando el servidor solo dispone de un dispositivo de cinta. Espere hasta que esté listo para continuar antes de hacer clic en Aceptar.

      Si hace clic en No , la base de datos se quedará en estado de restauración. Para mayor comodidad, puede continuar con la secuencia de restauración una vez completada la última restauración. Si la copia de seguridad siguiente es de datos o diferencial, vuelva a utilizar la tarea Restaurar base de datos . Si la siguiente copia de seguridad es una copia de seguridad de registros, utilice la tarea Restaurar registro de transacciones .

    • Restringir el acceso a la base de datos restaurada (WITH RESTRICTED_USER)

      Hace que la base de datos restaurada esté disponible solo para los miembros de db_owner, dbcreatoro sysadmin.

      Marcar esta opción equivale al uso de la opción RESTRICTED_USER en una instrucción RESTORE de Transact-SQL.

  10. Para las opciones Estado de recuperación , especifique el estado de la base de datos después de la operación de restauración.

    • Revertir las transacciones no confirmadas para dejar la base de datos lista para su uso. No pueden restaurarse registros de transacciones adicionales. (RESTORE WITH RECOVERY)

      Recupera la base de datos. Esta opción equivale a la opción RECOVERY en una instrucción RESTORE de Transact-SQL.

      Elíjala solo si no desea restaurar ningún archivo de registro.

    • Dejar la base de datos no operativa y no revertir las transacciones no confirmadas. Pueden restaurarse registros de transacciones adicionales. (RESTORE WITH NORECOVERY)

      Deja la base de datos sin recuperar, en el estado RESTORING . Esta opción equivale a usar la opción RECOVERY en una instrucción RESTORE de Transact-SQL.

      Si elige esta opción, la opción Conservar la configuración de replicación no estará disponible.

      Importante

      Para un reflejo o una base de datos secundaria, seleccione siempre esta opción.

    • Dejar la base de datos en modo de solo lectura. Deshacer las transacciones sin confirmar, pero guardar las acciones de deshacer en un archivo para que los efectos de recuperación puedan invertirse. (RESTORE WITH STANDBY)

      Deja la base de datos en estado de espera. Esta opción equivale a usar la opción STANDBY en una instrucción RESTORE de Transact-SQL.

      Si elige esta opción, debe especificar un archivo en espera.

  11. O bien, especifique un nombre de archivo en espera en el cuadro de texto Archivo en espera . Esta opción es obligatoria si se deja la base de datos en modo de solo lectura. Puede buscar el archivo en espera o escribir su ruta de acceso en el cuadro de texto.

Usar Transact-SQL

Importante

Se recomienda que especifique siempre WITH NORECOVERY o WITH RECOVERY en todas las instrucciones RESTORE para evitar ambigüedades. Esto es especialmente importante cuando se escriben scripts.

Para restaurar una copia de seguridad del registro de transacciones

  1. Ejecute la instrucción RESTORE LOG para aplicar la copia de seguridad del registro de transacciones especificando:

    • El nombre de la base de datos a la que se aplicará el registro de transacciones.

    • El dispositivo de copia de seguridad desde el que se restaurará la copia de seguridad del registro de transacciones.

    • La cláusula NORECOVERY.

    La sintaxis básica de esta instrucción es la siguiente:

    RESTORE LOG database_name FROM <backup_device> WITH NORECOVERY.

    Donde database_name es el nombre de la base de datos y <backup_device> es el nombre del dispositivo que contiene la copia de seguridad de registros que se va a restaurar.

  2. Repita el paso 1 para cada copia de seguridad del registro de transacciones que tenga que aplicar.

  3. Después de restaurar la copia de seguridad más reciente en la secuencia de restauración, use una de las instrucciones siguientes para recuperar la base de datos:

    • Recuperar la base de datos como parte de la última instrucción RESTORE LOG:

      RESTORE LOG <database_name> FROM <backup_device> WITH RECOVERY;  
      GO  
      
    • Esperar a recuperar la base de datos utilizando otra instrucción RESTORE DATABASE:

      RESTORE LOG <database_name> FROM <backup_device> WITH NORECOVERY;   
      RESTORE DATABASE <database_name> WITH RECOVERY;  
      GO  
      

      Si espera a recuperar la base de datos tendrá la oportunidad de comprobar que ha restaurado todas las copias de seguridad de registros necesarias. Este método suele ser aconsejable al realizar restauraciones a un momento dado.

    Importante

    Si está creando una base de datos reflejada, omita el paso de recuperación. Una base de datos reflejada debe permanecer en el estado RESTORING.

Ejemplos (Transact-SQL)

La base de datos AdventureWorks2022 usa el modelo de recuperación simple de forma predeterminada. En los siguientes ejemplos se requiere la modificación de la base de datos para utilizar el modelo de recuperación completa, como se indica a continuación:

ALTER DATABASE AdventureWorks2022 SET RECOVERY FULL;  

A Aplicar una sola copia de seguridad del registro de transacciones

En el siguiente ejemplo se empieza con la restauración de la base de datos AdventureWorks2022 utilizando una copia de seguridad completa de la base de datos que se encuentra en un dispositivo de copia de seguridad denominado AdventureWorks2022_1. A continuación, se aplica la primera copia de seguridad del registro de transacciones, que se encuentra en un dispositivo de copia de seguridad denominado AdventureWorks2022_log. Finalmente, el ejemplo recupera la base de datos.

RESTORE DATABASE AdventureWorks2022  
   FROM AdventureWorks2022_1  
   WITH NORECOVERY;  
GO  
RESTORE LOG AdventureWorks2022  
   FROM AdventureWorks2022_log  
   WITH FILE = 1,  
   NORECOVERY;  
GO  
RESTORE DATABASE AdventureWorks2022  
   WITH RECOVERY;  
GO  

B. Aplicar varias copias de seguridad del registro de transacciones

En el siguiente ejemplo se empieza con la restauración de la base de datos AdventureWorks2022 utilizando una copia de seguridad completa de la base de datos que se encuentra en un dispositivo de copia de seguridad denominado AdventureWorks2022_1. A continuación, se aplican, una por una, las tres primeras copias de seguridad del registro de transacciones, que se encuentran en un dispositivo de copia de seguridad denominado AdventureWorks2022_log. Finalmente, el ejemplo recupera la base de datos.

RESTORE DATABASE AdventureWorks2022  
   FROM AdventureWorks2022_1  
   WITH NORECOVERY;  
GO  
RESTORE LOG AdventureWorks2022  
   FROM AdventureWorks2022_log  
   WITH FILE = 1,  
   NORECOVERY;  
GO  
RESTORE LOG AdventureWorks2022  
   FROM AdventureWorks2022_log  
   WITH FILE = 2,  
   NORECOVERY;  
GO  
RESTORE LOG AdventureWorks2022  
   FROM AdventureWorks2022_log  
   WITH FILE = 3,  
   NORECOVERY;  
GO  
RESTORE DATABASE AdventureWorks2022  
   WITH RECOVERY;  
GO  

Related Tasks

Consulte también

RESTORE (Transact-SQL)
Aplicar copias de seguridad de registros de transacción (SQL Server)