Compartir a través de


Recuperación de bases de datos relacionadas que contienen transacciones marcadas

Este tema solo es relevante para las bases de datos que contienen transacciones marcadas y que usan los modelos de recuperación completos o optimizados para cargas masivas de registros.

Para obtener información sobre los requisitos para restaurar en un punto de recuperación específico, vea Restaurar una base de datos de SQL Server a un momento dado (modelo de recuperación completa).

SQL Server admite la inserción de marcas con nombre en el registro de transacciones para permitir la recuperación a esa marca específica. Las marcas de registro son específicas de la transacción y solo se insertan si su transacción asociada se confirma. Como resultado, las marcas se pueden asociar a un trabajo específico y puede recuperarse en un punto que incluya o excluya este trabajo.

Antes de insertar marcas con nombre en el registro de transacciones, tenga en cuenta lo siguiente:

Transact-SQL Sintaxis para insertar marcas nominadas en un registro de transacciones

Para insertar marcas en los registros de transacciones, use la instrucción BEGIN TRANSACTION y la cláusula WITH MARK [description]. La marca lleva el mismo nombre que la transacción. La descripción opcional es una descripción textual de la marca, no el nombre de la marca. Por ejemplo, el nombre tanto de la transacción como de la marca que se crea en la instrucción siguiente BEGIN TRANSACTION es Tx1:

BEGIN TRANSACTION Tx1 WITH MARK 'not the mark name, just a description'    

El registro de transacciones registra el nombre de marca (nombre de transacción), la descripción, la base de datos, el usuario, la información datetime y el número de secuencia de registro (LSN). La datetime información se usa con el nombre de marca para identificar de forma única la marca.

Para obtener información sobre cómo insertar una marca en una transacción que abarque varias bases de datos, vea Usar transacciones marcadas para recuperar bases de datos relacionadas de forma coherente (modelo de recuperación completa).

Transact-SQL Sintaxis para recuperarse a un punto de control

Cuando selecciona una transacción marcada mediante una instrucciónRESTORE LOG, puede utilizar una de las siguientes cláusulas para detenerse en la marca o justo antes de esta.

  • Use la cláusula WITH STOPATMARK = '<mark_name>' para especificar que la transacción marcada es el punto de recuperación.

    STOPATMARK avanza hacia adelante hasta la marca e incluye la transacción marcada en el proceso de avance.

  • Use la cláusula WITH STOPBEFOREMARK = '<mark_name>' para especificar que el registro que está inmediatamente antes de la marca sea el punto de recuperación.

    STOPBEFOREMARK avanza hasta la marca y excluye la transacción marcada del avance.

Las opciones STOPATMARK y STOPBEFOREMARK admiten una cláusula AFTER datetime opcional. Cuando se usa datetime , los nombres de marca no tienen que ser únicos.

Si se omite AFTER datetime, el avance de rollo se detiene en el primer punto de referencia que tiene el nombre especificado. Si se especifica AFTER datetime, el avance se detiene en la primera marca que tiene el nombre especificado, exactamente en o después de datetime.

Nota:

Como en todas las operaciones de restauración a un momento dado, la recuperación a un punto específico no se permite cuando la base de datos está realizando operaciones de registro masivo.

Para restaurar a una transacción marcada

Restaurar una base de datos en una transacción marcada (SQL Server Management Studio)

RESTORE (Transact-SQL)

Preparación de las copias de seguridad de registros

En este ejemplo, una estrategia de copia de seguridad adecuada para estas bases de datos relacionadas sería la siguiente:

  1. Use el modelo de recuperación completa para ambas bases de datos.

  2. Cree una copia de seguridad completa de cada base de datos.

    Las bases de datos pueden ser respaldadas de forma secuencial o simultáneamente.

  3. Antes de realizar una copia de seguridad del registro de transacciones, marque una transacción que se ejecute en todas las bases de datos. Para obtener información sobre cómo crear las transacciones marcadas, vea Usar transacciones marcadas para recuperar bases de datos relacionadas de forma coherente (modelo de recuperación completa).

  4. Realice una copia de seguridad del registro de transacciones en cada base de datos.

Restauración de la base de datos a una transacción marcada

Para restaurar la copia de seguridad

  1. Cree copias de tail-log de las bases de datos que no estén dañadas, si es posible.

  2. Restaure la copia de seguridad completa de la base de datos más reciente de cada base de datos.

  3. Identifique la transacción marcada más reciente que está disponible en todas las copias de seguridad del registro de transacciones. Esta información se almacena en la tabla logmarkhistory de la base de datos msdb de cada servidor.

  4. Identifique las copias de seguridad de registros para todas las bases de datos relacionadas que contienen esta marca.

  5. Restaure cada copia de seguridad del registro, deteniendo en la transacción marcada.

  6. Recuperar cada base de datos.

Véase también

BEGIN TRANSACTION (Transact-SQL)
RESTORE (Transact-SQL)
Aplicar copias de seguridad de registros de transacción (SQL Server)
Uso de transacciones marcadas para recuperar bases de datos relacionadas de forma coherente (modelo de recuperación completa)
Información general sobre restauración y recuperación (SQL Server)
Restaurar una base de datos de SQL Server a un momento dado (modelo de recuperación completa)
Planear y realizar secuencias de restauración (modelo de recuperación completa)