Copias del final del registro
Este tema solamente es relevante para las bases de datos que utilizan los modelos de recuperación optimizado para cargas masivas de registros.
En la mayoría de los casos, los modelos de recuperación optimizado para cargas masivas de registros SQL Server 2005 y versiones posteriores requieren que se realice una copia de seguridad del final del registro después del error para capturar las entradas del registro de las que todavía no se ha realizado una copia de seguridad. Las copias de seguridad de registros que se realizan después del error, antes de una operación de restauración se denominan copia del final del registro.
SQL Server 2005 y versiones posteriores, por lo general, requieren que se realice una copia de seguridad del final del registro después del error antes de comenzar a restaurar una base de datos. La copia del final del registro evita la pérdida de trabajo y mantiene intacta la cadena de registros. Cuando se recupera una base de datos al momento en que se produjo el error, la copia del final del registro es la última copia de seguridad de interés del plan de recuperación. Si no puede realizar una copia de seguridad de registros después del error, puede recuperar una base de datos solo al final de la última copia de seguridad que se creó antes del error.
No todos los escenarios de restauración requieren una copia del final del registro. No tiene que tener una copia del final del registro si el punto de recuperación está incluido en una copia de seguridad del registro anterior, o si va a mover o reemplazar (sobrescribir) la base de datos y no necesita restaurarla a un momento específico posterior a la copia de seguridad más reciente. También, si los archivos de registro están dañados y no se puede crear una copia del final del registro, debe restaurar la base de datos sin utilizar una copia de seguridad de registros después del error. Las transacciones confirmadas después de la última copia de seguridad de registros se perderán. Para obtener más información, vea "Restaurar sin utilizar una copia del final del registro" más adelante en este tema.
Realizar una copia de seguridad del final del registro
Al igual que cualquier copia de seguridad de registros, una copia del final del registro se realiza con la instrucción BACKUP LOG. Recomendamos realizar una copia del final del registro en las siguientes situaciones:
Si la base de datos está con conexión y planea realizar una operación de restauración en la base de datos, antes de iniciar una operación de restauración, realice una copia del final del registro con WITH NORECOVERY:
BACKUP LOG nombreDeBaseDeDatos TO <dispositivoDeCopiaDeSeguridad> WITH NORECOVERY
Nota
Para evitar un error, la opción NORECOVERY es necesaria.
Si la base de datos está sin conexión y no se inicia.
Intente hacer una copia del final del registro. Debido a que no pueden producirse otras transacciones en este momento, el uso de WITH NORECOVERY es opcional. Si la base de datos está dañada, utilice WITH CONTINUE_AFTER_ERROR, de la forma siguiente.
BACKUP LOG nombreDeBaseDeDatos TO <dispositivoDeCopiaDeSeguridad> [WITH { CONTINUE_AFTER_ERROR | NO_TRUNCATE }
Si la base de datos está dañada, por ejemplo, si no se inicia, una copia del final del registro se completa sin errores solo si los archivos de registro no están dañados, si la base de datos tiene un estado que admite copias de seguridad de registros después del error y si la base de datos no contiene cambios registrados de forma masiva.
Estas opciones se resumen en la siguiente tabla.
Opción BACKUP LOG |
Comentarios |
---|---|
NORECOVERY |
Utilice NORECOVERY cada vez que desee continuar con una operación de restauración en la base de datos. NORECOVERY pone la base de datos en el estado de restauración. Esto garantiza que la base de datos no cambie después de realizar la copia del final del registro. El registro se truncará a menos que también se especifique la opción NO_TRUNCATE o COPY_ONLY.
Importante
Recomendamos evitar el uso de NO_TRUNCATE, excepto cuando la base de datos esté dañada.
|
CONTINUE_AFTER_ERROR |
Utilice CONTINUE_AFTER_ERROR solo si va a crear una copia del final de una base de datos dañada.
Nota
Al realizar una copia de seguridad del final del registro de una base de datos dañada, es posible que parte de los metadatos que comúnmente se capturan en las copias de seguridad de registros no estén disponibles. Para obtener más información, vea "Copias del final del registro con metadatos de copia de seguridad incompletos" más adelante en este tema.
|
Para crear una copia de seguridad del registro de transacciones cuando la base de datos está dañada
Copias del final del registro con metadatos de copia de seguridad incompletos
Las copias de seguridad de registros después del error capturan el final del registro aunque falten archivos en la base de datos, o la base de datos esté sin conexión o dañada. Sin embargo, esto puede provocar que se obtengan metadatos incompletos de los comandos de información de restauración y msdb. Sin embargo, solo los metadatos están incompletos. El registro capturado está completo y en condiciones de uso.
Si una copia del final del registro tiene metadatos incompletos, en la tabla backupset se establece has_incomplete_metadata en 1. Asimismo, en la salida de RESTORE HEADERONLY, HasIncompleteMetadata se establece en 1.
Si los metadatos de la copia del final del registro están incompletos, a la tabla backupfilegroup le faltará la mayoría de la información sobre grupos de archivos en el momento de realizar la copia de seguridad de registros después del error. La mayoría de las columnas de la tabla backupfilegroup son NULL; las únicas columnas significativas son las siguientes:
backup_set_id
filegroup_id
type
type_desc
is_readonly
Restaurar sin utilizar una copia del final del registro
Los escenarios de restauración en los que no es necesaria una copia del final del registro incluyen los siguientes:
Restaurar una base de datos a un momento determinado incluido en una copia de seguridad de registros después del error anterior.
No es necesario realizar una copia del final del registro si se restaura una base de datos y se especifican las opciones STOPAT, STOPATMARK o STOPBEFOREMARK en cada instrucción RESTORE de la secuencia de restauración.
Para restaurar una base de datos a un momento anterior
Para utilizar Transact-SQL a fin de restaurar datos a un momento específico, vea Cómo restaurar a un momento determinado (Transact-SQL), Recuperar hasta una transacción marcada o Recuperar a un número de secuencia de registro (LSN).
Para utilizar SQL Server Management Studio, vea Cómo restaurar a un momento dado (SQL Server Management Studio) o Cómo restaurar una base de datos en una transacción marcada (SQL Server Management Studio).
Restaurar una copia de una base de datos en una nueva ubicación.
Cuando se restaura una base de datos, puede utilizar el mismo nombre de base de datos solo si se la restaura a una instancia de servidor distinta, como cuando se crea una base de datos reflejada para la creación de reflejo o una base de datos secundaria para el trasvase de registros. Si mueve una base de datos en la misma instancia de servidor, debe especificar un nuevo nombre para la base de datos.
Para restaurar una base de datos en una nueva ubicación
Mediante Transact-SQL, en cada instrucción RESTORE de la secuencia de restauración, especifique la opción MOVE. Para obtener más información, vea Cómo restaurar una base de datos en una ubicación nueva y con un nombre nuevo (Transact-SQL) o Cómo restaurar archivos en una nueva ubicación (Transact-SQL).
Mediante SQL Server Management Studio, especifique la nueva ubicación de cada archivo en el campo Restaurar como de Restaurar base de datos (página Opciones). Para obtener más información, vea Cómo restaurar una copia de seguridad de base de datos (SQL Server Management Studio).
Reemplazar completamente (sobrescribir) la base de datos.
Advertencia La restauración con la opción REPLACE no debe usarse a menudo y solo deben hacerlo administradores de bases de datos con experiencia, después de haberlo pensado detenidamente. Para obtener más información, vea Usar la opción REPLACE.
Para reemplazar una base de datos
Mediante Transact-SQL, especifique la opción REPLACE en las instrucciones RESTORE.
Mediante SQL Server Management Studio, especifique la nueva ubicación de cada archivo en el campo Restaurar como de Restaurar base de datos (página Opciones). Para obtener más información, vea Cómo restaurar una copia de seguridad de base de datos (SQL Server Management Studio).
Vea también
Referencia
Conceptos
Historial de cambios
Contenido actualizado |
---|
Se ha actualizado la sección "Realizar una copia de seguridad del final del registro" para corregir la información acerca de cómo realizar una copia de seguridad del final del registro si la base de datos está sin conexión y no se inicia. |