Error al restaurar la base de datos

Mi jefe me pidió que libere espacio en el servidor, entonces decidimos reducir el registro de transacciones de una base de datos cuyo archivo principal pesaba 400 MB y el registro de transacciones pesaba la inconcebible cantidad de 11GB, para esto, mi jefe hizo un respaldo diferencial de esa base de datos y luego respaldo el registro de transacciones. Posteriormente, el sin previo aviso y sin pedir opinión alguna, borro la base de datos del SQL server.
Su objetivo principal se cumplió perfectamente (libero más de 11 GB en el servidor) pero al momento de restaurar la base de datos, le sale un mensaje que dice:
"No se encuentra la base de datos con Id 65535. Es posible que no se haya activado o se encuentre en transición."
Claro esta que lo que hemos tratado de restaurar es aquel respaldo diferencial ya que no se saco un respaldo completo.
¿Qué podemos hacer para que los datos de ese respaldo diferencial queden en la base de datos del SQL?
Nota: Tenemos un respaldo completo del 10/oct/2003.

1 Respuesta

Respuesta
1
Baja el respaldo total de octubre, y después el diferencial, posteriormente actualiza las propiedades de la base de datos para que tenga el autoshrikn encendido del log de transacciones y después reduce su tamaño al que requieras, ejemplo 100 megas y listo.
Muchas gracias por la prontitud de tu respuesta.
Te cuento que restaure ese respaldo viejo, al momento de querer restaurar el respaldo diferencial me sale el siguiente error:
"En la restauracion anterior no especifico WITH NORECOVERY o WITH STANDBY. Reinicie la secuencia de restauracion con WITH NORECOVERY o WITH STANDBY para todos los pasos, salvo el ultimo."
¿Alguna idea de que es lo que tengo que hacer?
Utiliza con WITH NORECOVERY, ya que intentamos recuperar la base sino generarla.
Ok, ¿pero dónde ponemos eso?
Cómo configurar, mantener y conectar un servidor de reserva (Transact-SQL)
Por lo general, para configurar un servidor de reserva es preciso crear una copia de seguridad de base de datos y realizar de forma periódica copias de seguridad del registro de transacciones en el servidor principal; a continuación, deben aplicarse esas copias de seguridad, secuencialmente, en el servidor de reserva. El servidor de reserva se mantiene en estado de sólo lectura entre las restauraciones. Cuando se necesita el servidor de reserva, todas las copias de seguridad del registro de transacciones pendientes, incluida la copia de seguridad del registro de transacciones activo (que se encuentra en el servidor principal), se aplican al servidor de reserva y se recupera la base de datos.
Crear copias de seguridad en el servidor principal
Ejecute la instrucción BACKUP DATABASE para crear la copia de seguridad de la base de datos.
Ejecute la instrucción BACKUP LOG para crear una copia de seguridad del registro de transacciones.
Repita el paso 2 para cada registro de transacciones que desee crear posteriormente.
Configurar y mantener el servidor de reserva
Ejecute la instrucción RESTORE DATABASE con la cláusula STANDBY para restaurar la copia de seguridad de la base de datos creada en el paso 1 en el servidor principal. Especifique el nombre del archivo para deshacer en el que se encuentra el contenido de las páginas de datos previo a que se deshicieran las transacciones no confirmadas que afectaban a esas páginas.
Ejecute la instrucción RESTORE LOG con la cláusula STANDBY para aplicar cada registro de transacciones creado en el paso 2 en el servidor principal.
Repita el paso 2 para cada registro de transacciones creado en el servidor principal.
Conectar el servidor de reserva (por un error del servidor principal)
Ejecute la instrucción BACKUP LOG mediante la cláusula NO_TRUNCATE para realizar una copia de seguridad del registro de transacciones activo. Ésta es la última copia de seguridad del registro de transacciones que se aplicará al servidor de reserva cuando éste se conecte. Para obtener más información, consulte Cómo crear una copia de seguridad del registro de transacciones activo.
Ejecute la instrucción RESTORE LOG con la cláusula STANDBY para aplicar todas las copias de seguridad del registro de transacciones (incluida la copia de seguridad del registro de transacciones activo creada en el paso 1) que aún no se hayan aplicado al servidor de reserva.
Ejecute la instrucción RESTORE DATABASE WITH RECOVERY para restaurar la base de datos y activar el servidor de reserva.
Ejemplos
En este ejemplo se configura la base de datos MyNwind en un servidor de reserva. Puede utilizarse la base de datos en modo de sólo lectura entre operaciones de restauración.
-- Restore the initial database backup on the standby server.
USE master
GO
RESTORE DATABASE MyNwind
FROM MyNwind_1
WITH STANDBY = 'c:\undo.ldf'
GO
-- Apply the first transaction log backup.
RESTORE LOG MyNwind
FROM MyNwind_log1
WITH STANDBY = 'c:\undo.ldf'
GO
-- Apply the next transaction log backup.
RESTORE LOG MyNwind
FROM MyNwind_log2
WITH STANDBY = 'c:\undo.ldf'
GO
-- Repeat for each transaction log backup created on the
-- Primary server.
--
-- Time elapses.. .. ..
--
-- The primary server has failed. Back up the
-- Active transaction log on the primary server.
BACKUP LOG MyNwind
TO MyNwind_log3
WITH NO_TRUNCATE
GO
-- Apply the final (active) transaction log backup
-- To the standby server. All preceding transaction
-- log backups must have been already applied.
RESTORE LOG MyNwind
FROM MyNwind_log3
WITH STANDBY = 'c:\undo.ldf'
GO
-- Recover the database on the standby server,
-- making it available for normal operations.
RESTORE DATABASE MyNwind
WITH RECOVERY
GO
Véase también
Restore
Restaurar bases de datos a un estado anterior
Usar servidores de reserva
©1988-2000 Microsoft Corporation. Reservados todos los derechos.
Restore
Restaura copias de seguridad realizadas con el comando BACKUP. Para obtener más información acerca de las operaciones de copia de seguridad y restauración de bases de datos, consulte Realizar copias de seguridad y restaurar bases de datos.
Sintaxis
Restaurar una base de datos completa:
RESTORE DATABASE { database_name | @database_name_var }
[ FROM < backup_device > [ ,...n ] ]
[ WITH
[ RESTRICTED_USER ]
[ [ , ] FILE = { file_number | @file_number } ]
[ [ , ] PASSWORD = { password | @password_variable } ]
[ [ , ] MEDIANAME = { media_name | @media_name_variable } ]
[ [ , ] MEDIAPASSWORD = { mediapassword | @mediapassword_variable } ]
[ [ , ] MOVE 'logical_file_name' TO 'operating_system_file_name' ]
[,...n]
[ [ , ] KEEP_REPLICATION ]
[ [ , ] { NORECOVERY | RECOVERY | STANDBY = undo_file_name } ]
[ [ , ] { NOREWIND | REWIND } ]
[ [ , ] { NOUNLOAD | UNLOAD } ]
[ [ , ] REPLACE]
[ [ , ] RESTART ]
[ [ , ] STATS [ = percentage ] ]
]
Restaurar parte de una base de datos:
RESTORE DATABASE { database_name | @database_name_var }
< file_or_filegroup > [ ,...n ]
[ FROM < backup_device > [ ,...n ] ]
[ WITH
{ PARTIAL }
[ [ , ] FILE = { file_number | @file_number } ]
[ [ , ] PASSWORD = { password | @password_variable } ]
[ [ , ] MEDIANAME = { media_name | @media_name_variable } ]
[ [ , ] MEDIAPASSWORD = { mediapassword | @mediapassword_variable } ]
[ [ , ] MOVE 'logical_file_name' TO 'operating_system_file_name' ]
[,...n]
[ [ , ] NORECOVERY]
[ [ , ] { NOREWIND | REWIND } ]
[ [ , ] { NOUNLOAD | UNLOAD } ]
[ [ , ] REPLACE]
[ [ , ] RESTRICTED_USER ]
[ [ , ] RESTART ]
[ [ , ] STATS [ = percentage ] ]
]
Restaurar archivos o grupos de archivos específicos:
RESTORE DATABASE { database_name | @database_name_var }
< file_or_filegroup > [ ,...n ]
[ FROM < backup_device > [ ,...n ] ]
[ WITH
[ RESTRICTED_USER ]
[ [ , ] FILE = { file_number | @file_number } ]
[ [ , ] PASSWORD = { password | @password_variable } ]
[ [ , ] MEDIANAME = { media_name | @media_name_variable } ]
[ [ , ] MEDIAPASSWORD = { mediapassword | @mediapassword_variable } ]
[ [ , ] MOVE 'logical_file_name' TO 'operating_system_file_name' ]
[,...n ]
[ [ , ] NORECOVERY]
[ [ , ] { NOREWIND | REWIND } ]
[ [ , ] { NOUNLOAD | UNLOAD } ]
[ [ , ] REPLACE]
[ [ , ] RESTART ]
[ [ , ] STATS [ = percentage ] ]
]
Restaurar un registro de transacciones:
RESTORE LOG { database_name | @database_name_var }
[ FROM < backup_device > [ ,...n ] ]
[ WITH
[ RESTRICTED_USER ]
[ [ , ] FILE = { file_number | @file_number } ]
[ [ , ] PASSWORD = { password | @password_variable } ]
[ [ , ] MOVE 'logical_file_name' TO 'operating_system_file_name' ]
[ ,...n ]
[ [ , ] MEDIANAME = { media_name | @media_name_variable } ]
[ [ , ] MEDIAPASSWORD = { mediapassword | @mediapassword_variable } ]
[ [ , ] KEEP_REPLICATION ]
[ [ , ] { NORECOVERY | RECOVERY | STANDBY = undo_file_name } ]
[ [ , ] { NOREWIND | REWIND } ]
[ [ , ] { NOUNLOAD | UNLOAD } ]
[ [ , ] RESTART ]
[ [ , ] STATS [= percentage ] ]
[ [ , ] STOPAT = { date_time | @date_time_var }
| [ , ] STOPATMARK = 'mark_name' [ AFTER datetime ]
| [ , ] STOPBEFOREMARK = 'mark_name' [ AFTER datetime ]
]
]
< backup_device > ::=
{
{ 'logical_backup_device_name' | @logical_backup_device_name_var }
| { DISK | TAPE } =
{ 'physical_backup_device_name' | @physical_backup_device_name_var }
}
< file_or_filegroup > ::=
{
FILE = { logical_file_name | @logical_file_name_var }
|
FILEGROUP = { logical_filegroup_name | @logical_filegroup_name_var }
}
Argumentos
Database
Especifica la restauración completa de la base de datos a partir de una copia de seguridad. Si se especifica una lista de archivos o de grupos de archivos, sólo se restauran esos archivos especificados.
{ database_name | @database_name_var }
Es la base de datos en la que se restaura el registro o la base de datos completa. Si se suministra como variable (@database_name_var), este nombre se puede especificar como una constante de cadena (@database_name_var = database name) o como una variable de un tipo de datos de cadena de caracteres, excepto los tipos de datos ntext o text.
FROM
Especifica los dispositivos de copia de seguridad desde los que se restaurará la copia de seguridad. Si no se especifica la cláusula FROM, la restauración de la copia de seguridad no tiene lugar. En su lugar, se recupera la base de datos. Se puede omitir la cláusula FROM para intentar recuperar una base de datos restaurada con la opción NORECOVERY o para cambiar a un servidor de reserva. Si se omite la cláusula FROM, se debe especificar NORECOVERY, RECOVERY o STANDBY.
<backup_device>
Especifica los dispositivos de copia de seguridad físicos o lógicos que se utilizarán para la operación de restauración. Puede ser uno o más de los siguientes:
{'logical_backup_device_name' | @logical_backup_device_name_var}
Es el nombre lógico, que debe seguir las reglas de los identificadores, de los dispositivos de copia de seguridad creados por sp_addumpdevice desde los que se restaura una base de datos. Si se proporciona como una variable (@logical_backup_device_name_var), se puede especificar el nombre del dispositivo de copia de seguridad como una constante de cadena (@logical_backup_device_name_var = logical_backup_device_name) o como una variable del tipo de datos cadena de caracteres, excepto los tipos de datos ntext y text.
{DISK | TAPE } =
'physical_backup_device_name' | @physical_backup_device_name_var
Permite restaurar las copias de seguridad guardadas en el dispositivo de disco o cinta con nombre. Los tipos de dispositivo de disco y cinta se deben especificar con el nombre real (por ejemplo, ruta de acceso completa y nombre de archivo) del dispositivo: DISK = 'C:\Archivos de programa\Microsoft SQL Server\MSSQL\BACKUP\Mybackup.dat' o TAPE = '\\.\TAPE0'. Si se especifica como una variable (@physical_backup_device_name_var), el nombre del dispositivo se puede especificar como una constante de cadena (@physical_backup_device_name_var = 'physcial_backup_device_name') o como una variable del tipo de datos de cadena de caracteres, excepto los tipos de datos ntext o text.
Si utiliza un servidor de red con un nombre UNC o una letra de unidad redirigida, especifique un tipo de dispositivo de disco. La cuenta en la que está ejecutando SQL Server debe tener acceso de lectura al equipo remoto o servidor de red para poder realizar la operación RESTORE.
n
Marcador de posición que indica que se pueden especificar varios dispositivos de copia de seguridad y dispositivos lógicos de copia de seguridad. El número máximo de dispositivos de copia de seguridad o de dispositivos lógicos de copia de seguridad es 64.
RESTRICTED_USER
Restringe el acceso a la base de datos recién restaurada, a los miembros de las funciones db_owner, dbcreator o sysadmin. En SQL Server 2000, RESTRICTED_USER reemplaza la opción DBO_ONLY. DBO_ONLY está disponible sólo porque es compatible con versiones anteriores.
Utilícela con la opción RECOVERY.
Para obtener más información, consulte Establecer las opciones de la base de datos.
FILE = { file_number | @file_number }
Identifica el conjunto de copias de seguridad que se va a restaurar. Por ejemplo, un file_number igual a 1 indica el primer conjunto de copias de seguridad del medio de copia de seguridad y un file_number igual a 2 indica el segundo conjunto de copias de seguridad.
PASSWORD = { password | @password_variable }
Proporciona la contraseña del conjunto de copias de seguridad. PASSWORD es una cadena de caracteres. Si se proporcionó una contraseña al crear el conjunto de copias de seguridad, debe suministrarla para realizar operaciones de restauración de ese conjunto de copias de seguridad.
Para obtener más información acerca de cómo utilizar contraseñas, consulte Permisos.
MEDIANAME = { media_name | @media_name_variable }
Especifica el nombre del medio. Si se proporciona, el nombre del medio debe coincidir con el nombre del medio de los volúmenes de copia de seguridad; en caso contrario, finaliza la operación de restauración. Si no se proporciona el nombre del medio en la instrucción RESTORE, tampoco se comprueba que éste coincida con el nombre del medio de los volúmenes de copia de seguridad.
Importante La utilización coherente de nombres de medios en las operaciones de copia de seguridad y de restauración proporciona una comprobación adicional de seguridad del medio seleccionado para la operación de restauración.
MEDIAPASSWORD = { mediapassword | @mediapassword_variable }
Suministra la contraseña del conjunto de medios. MEDIAPASSWORD es una cadena de caracteres.
Si se proporcionó una contraseña al dar formato al conjunto de medios, se deberá suministrar para tener acceso a cualquier conjunto de copias de seguridad de ese conjunto de medios.
MOVE 'logical_file_name' TO 'operating_system_file_name'
Especifica que el logical_file_name proporcionado se debe mover a operating_system_file_name. De forma predeterminada, logical_file_name se restaura en su ubicación original. Si se utiliza la instrucción RESTORE para copiar una base de datos en el mismo servidor o en uno diferente, puede que sea necesario utilizar la opción MOVE para volver a ubicar los archivos de base de datos y para evitar colisiones con los archivos existentes. Se puede especificar cada archivo lógico de la base de datos en diferentes instrucciones MOVE.
Nota Utilice RESTORE FILELISTONLY para obtener una lista de los archivos lógicos a partir del conjunto de copias de seguridad.
Para obtener más información, consulte Copiar bases de datos.
n
Se trata de un marcador de posición que indica que se puede mover más de un archivo lógico mediante varias instrucciones MOVE.
Norecovery
Indica a la operación de restauración que no deshaga las transacciones no confirmadas. Es preciso especificar las opciones NORECOVERY o STANDBY si se debe aplicar otro registro de transacciones. Si no se especifica NORECOVERY, RECOVERY o STANDBY, RECOVERY es la opción predeterminada.
SQL Server requiere que se utilice la opción WITH NORECOVERY en todas las instrucciones RESTORE, excepto en la final, cuando se restaure la copia de seguridad de una base de datos y varios registros de transacciones, o cuando sean necesarias varias instrucciones RESTORE (por ejemplo, en una copia de seguridad completa de base de datos seguida de una copia de seguridad diferencial).
Nota Cuando se especifica la opción NORECOVERY, la base de datos no se puede utilizar en este estado intermedio y no recuperado.
Cuando se utiliza en la operación de restauración de un archivo o grupo de archivos, NORECOVERY obliga a la base de datos a permanecer en estado de restauración después de la operación de restauración. Esto resulta útil en cualquiera de las situaciones siguientes:
Se está ejecutando una secuencia de comandos de restauración y se aplica el registro en todo momento.
Se está utilizando una secuencia de restauraciones de archivos y no está previsto que la base de datos se pueda utilizar entre dos operaciones de restauración.
Recovery
Indica a la operación de restauración que deshaga las transacciones no confirmadas. Después del proceso de recuperación, la base de datos está preparada para ser utilizada.
Si las siguientes operaciones RESTORE (RESTORE LOG o RESTORE DATABASE a partir de una copia de seguridad diferencial) están planeadas, se debe especificar en su lugar NORECOVERY o STANDBY.
Si no se especifica NORECOVERY, RECOVERY o STANDBY, RECOVERY es la opción predeterminada. Al restaurar los conjuntos de copia de seguridad de una versión anterior de SQL Server, puede ser necesaria una actualización de la base de datos. Esta actualización se realiza automáticamente al especificar WITH RECOVERY. Para obtener más información, consulte Copias de seguridad del registro de transacciones.
STANDBY = undo_file_name
Especifica el nombre del archivo para deshacer, con el objeto de que se puedan deshacer los resultados de la recuperación. El tamaño que requiere el archivo para deshacer depende del volumen de acciones para deshacer que se produzcan como resultado de las transacciones no confirmadas. Si no se especifica NORECOVERY, RECOVERY o STANDBY, RECOVERY es la opción predeterminada.
STANDBY permite abrir una base de datos sólo para lectura entre las restauraciones del registro de transacciones, y utilizarla cuando haya un servidor de reserva activo y en situaciones de recuperación especiales en las que resulte útil inspeccionar la base de datos entre las restauraciones del registro.
Si el archivo para deshacer con el nombre especificado no existe, SQL Server lo crea. Si el archivo existe, SQL Server lo sobrescribe.
Se puede utilizar el mismo archivo para deshacer en restauraciones consecutivas de la misma base de datos. Para obtener más información, consulte Utilizar servidores de reserva.
Importante Si el espacio libre de disco está agotado en la unidad que contiene el nombre de archivo para deshacer especificado, la operación de restauración se detiene.
STANDBY no se permite cuando es necesario actualizar una base de datos.
KEEP_REPLICATION
Indica a la operación de restauración que conserve la configuración de la duplicación cuando restaure una base de datos publicada en un servidor que no es donde se creó. KEEP_REPLICATION se debe utilizar durante la configuración de la duplicación para que funcione con el trasvase de registros. Evita que se elimine la configuración de la duplicación al restaurar una copia de seguridad de base de datos o de registro en un servidor de reserva activo, y la base de datos se recupera. No se permite especificar esta opción para restaurar una copia de seguridad con la opción NORECOVERY.
Nounload
Especifica que la cinta no se descargue automáticamente de la unidad de cinta después de una operación RESTORE. NOUNLOAD permanece establecido hasta que se especifica UNLOAD. Esta opción sólo se utiliza para dispositivos de cinta. Si se utiliza para la restauración un dispositivo que no es de cinta, esta opción no se tiene en cuenta.
Norewind
Especifica que SQL Server mantendrá la cinta abierta después de la operación de copia de seguridad. Mantener abierta la cinta evita que otros procesos obtengan acceso a la misma. No se liberará la cinta hasta que se emita una instrucción REWIND o UNLOAD, o se cierre el servidor. Se puede encontrar una lista de las cintas actualmente abiertas si se consulta la tabla sysopentapes de la base de datos master.
NOREWIND implica NOUNLOAD. Esta opción sólo se utiliza para dispositivos de cinta. Si se utiliza para la restauración un dispositivo que no es de cinta, esta opción no se tiene en cuenta.
Rewind
Especifica que SQL Server liberará y rebobinará la cinta. Si no se especifica NOREWIND ni REWIND, se utilizará REWIND de forma predeterminada. Esta opción sólo se utiliza para dispositivos de cinta. Si se utiliza para la restauración un dispositivo que no es de cinta, esta opción no se tiene en cuenta.
Unload
Especifica que la cinta se rebobine y se descargue automáticamente cuando termine la restauración. UNLOAD se establece de forma predeterminada al iniciar una nueva sesión de usuario. Permanece activo hasta que se especifica NOUNLOAD. Esta opción sólo se utiliza para dispositivos de cinta. Si se utiliza para la restauración un dispositivo que no es de cinta, esta opción no se tiene en cuenta.
Replace
Especifica que SQL Server debe crear la base de datos especificada y sus archivos relacionados aunque ya exista otra base de datos con el mismo nombre. En ese caso, se elimina la base de datos existente. Cuando no se especifica la opción REPLACE, se realiza una comprobación de seguridad, que impide que se sobrescriba una base de datos distinta por accidente. La comprobación de seguridad se asegura de que la instrucción RESTORE DATABASE no restaurará la base de datos en el servidor actual si:
La base de datos nombrada en la instrucción RESTORE ya existe en el servidor actual.
El nombre de la base de datos es diferente del nombre de la base de datos registrado en el conjunto de copias de seguridad.
REPLACE también permite que RESTORE sobrescriba un archivo existente cuando no se puede comprobar si pertenece a la base de datos que se está restaurando. Normalmente, RESTORE no sobrescribe los archivos ya existentes.
Restart
Especifica que SQL Server debe reiniciar una operación de restauración que se ha interrumpido. RESTART reinicia la operación de restauración en el punto en que se interrumpió.
Importante Esta opción sólo se puede utilizar para restauraciones dirigidas desde medios de cinta y para restauraciones que ocupan varios volúmenes de cinta.
STATS [ = percentage ]
Muestra un mensaje cada vez que se completa otro porcentaje y se utiliza para indicar el progreso. Si se omite percentage, SQL Server muestra un mensaje cada vez que se completa un 10 por ciento.
PARTIAL
Especifica una operación de restauración parcial. Con frecuencia, los errores de aplicación o de usuario afectan a una parte aislada de la base de datos, por ejemplo, una tabla. Algunos ejemplos de este tipo de error son una actualización no válida o una tabla eliminada por error. Para permitir la recuperación de estos sucesos, SQL Server proporciona un mecanismo para restaurar parte de la base de datos a otra ubicación, de manera que los datos dañados o que faltan se puedan copiar de nuevo a la base de datos original.
La granularidad de la operación de restauración parcial es el grupo de archivos de la base de datos. El archivo y grupo de archivos principal se restauran siempre, junto con los archivos que especifique y sus grupos de archivos correspondientes. El resultado es un subconjunto de la base de datos. Los grupos de archivos que no se restauran se marcan como sin conexión y no son accesibles.
Para obtener más información, consulte Operaciones de recuperación parcial de la base de datos.
< file_or_filegroup >
Especifica los nombres de los archivos o grupos de archivos lógicos que se van a incluir en la restauración de la base de datos. Se pueden especificar varios archivos o grupos de archivos.
FILE = { logical_file_name | @logical_file_name_var}
Se trata de los nombres de uno o más archivos que se van a incluir en la restauración de la base de datos.
FILEGROUP = { logical_filegroup_name | @logical_filegroup_name_var }
Se trata de los nombres de uno o más grupos de archivos que se van a incluir en la restauración de la base de datos.
Cuando se utiliza esta opción, se debe aplicar el registro de transacciones a los archivos de la base de datos después de la última operación de restauración de archivos o grupos de archivos. De este modo se confirman los archivos para que sean coherentes con el resto de la base de datos. Si desde la última copia de seguridad no se ha modificado ninguno de los archivos que se van a restaurar, no es necesario aplicar un registro de transacciones. La instrucción RESTORE informa al usuario de esta situación.
n
Se trata de un marcador de posición que indica que se pueden especificar varios archivos y grupos de archivos. No hay un número máximo de archivos o grupos de archivos.
LOG
Especifica que se va a aplicar una copia de seguridad del registro de transacciones a esta base de datos. Los registros de transacciones se deben aplicar en orden secuencial. SQL Server comprueba el registro de transacciones del que se ha realizado la copia de seguridad para asegurarse de que las transacciones se cargan en la base de datos y en la secuencia correctas. Para aplicar varios registros de transacciones, utilice la opción NORECOVERY en todas las operaciones de restauración, excepto en la última. Para obtener más información, consulte Copias de seguridad del registro de transacciones.
STOPAT = date_time | @date_time_var
Especifica que se va restaurar la base de datos al estado en que estaba en la fecha y hora especificadas. Si se utiliza una variable para STOPAT, la variable debe ser del tipo de datos varchar, char, smalldatetime o datetime. Sólo se aplican a la base de datos los datos del registro de transacciones escritos antes de la fecha y hora especificadas.
Nota Si especifica una hora en STOPAT posterior al final de la operación RESTORE LOG, la base de datos queda en estado no recuperado, como si se hubiera ejecutado RESTORE LOG con NORECOVERY.
STOPATMARK = 'mark_name' [ AFTER datetime ]
Indica que se recupere hasta la marca especificada, incluida la transacción que contiene la marca. Si se omite AFTER datetime, la recuperación se detiene en la primera marca que tenga el nombre especificado. Si se especifica AFTER datetime, la recuperación se detiene en la primera marca que tenga el nombre especificado, ya sea en datetime o después.
STOPBEFOREMARK = 'mark_name' [ AFTER datetime ]
Indica que se recupere hasta la marca especificada, sin incluir la transacción que contiene la marca. Si se omite AFTER datetime, la recuperación se detiene en la primera marca que tenga el nombre especificado. Si se especifica AFTER datetime, la recuperación se detiene en la primera marca que tenga el nombre especificado, ya sea en datetime o después.
Observaciones
Durante la restauración, la base de datos especificada no debe estar en uso. Los datos de la base de datos especificada se reemplazan por los datos restaurados.
Para obtener más información acerca de la recuperación de bases de datos, consulte Realizar copias de seguridad y restaurar bases de datos.
Se pueden realizar operaciones de restauración entre plataformas, incluso entre diferentes tipos de procesador, siempre que el sistema operativo admita la intercalación de la base de datos. Para obtener más información, consulte Aspectos básicos de la intercalación de SQL Server.
Tipos de restauración
A continuación se muestran los tipos de restauración que admite SQL Server:
La restauración completa de la base de datos que restaura la base de datos entera.
La restauración completa y la restauración diferencial de la base de datos. Restaure una copia de seguridad diferencial con la instrucción RESTORE DATABASE.
La restauración del registro de transacciones.
Restauraciones de archivos individuales y grupos de archivos. Se puede restaurar archivos y grupos de archivos a partir de una operación de copia de seguridad de archivo o grupo de archivos, o bien a partir de una operación de copia de seguridad completa de la base de datos. Cuando restaure archivos o grupos de archivos, deberá aplicar un registro de transacciones. Además, se pueden restaurar copias de seguridad diferenciales de archivos después de una restauración completa de archivos.
Para obtener más información, consulte Copias de seguridad del registro de transacciones.
Crear y mantener un servidor de reserva o servidor de reserva activo. Para obtener más información acerca de los servidores de reserva, consulte Utilizar servidores de reserva.
Para mantener la compatibilidad con versiones anteriores, se pueden utilizar las siguientes palabras clave en la sintaxis de la instrucción RESTORE:
Se puede utilizar la palabra LOAD en lugar de la palabra clave RESTORE.
Se puede utilizar la palabra TRANSACTION en lugar de la palabra clave LOG.
Se puede utilizar la palabra clave DBO_ONLY en lugar de la palabra clave RESTRICTED_USER.
Configuración y restauración de bases de datos
Cuando se utiliza la instrucción RESTORE DATABASE, las opciones de bases de datos que se pueden restaurar, que son todas las opciones configurables de ALTER DATABASE excepto offline y las opciones de duplicación merge publish, published y subscribed, se restablecen a la configuración obligada en el momento en que la operación BACKUP finaliza.
Nota Este comportamiento difiere del de versiones anteriores de Microsoft SQL Server.
Sin embargo, la opción WITH RESTRICTED_USER anula este comportamiento para configurar la opción de acceso del usuario. Esta configuración siempre se establece tras una instrucción RESTORE que contiene la opción WITH RESTRICTED_USER.
Para obtener más información, consulte Realizar copias de seguridad y restaurar bases de datos de duplicación.
Tablas del historial de restauraciones
SQL Server contiene las siguientes tablas del historial de restauraciones, que realizan el seguimiento de la actividad de restauración (RESTORE) en cada sistema:
Restorefile
Restorefilegroup
Restorehistory
Nota Cuando se realiza una operación RESTORE, se modifican las tablas del historial de copias de seguridad.
Para restaurar una base de datos master dañada se utiliza un procedimiento especial. Para obtener más información, consulte Restaurar la base de datos master.
¿Las copias de seguridad creadas con Microsoft® SQL Server? 2000 no se pueden restaurar a una versión anterior de SQL Server.
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, de forma predeterminada los permisos RESTORE se conceden tanto a los miembros de las funciones fijas de servidor sysadmin y dbcreator, como al propietario de la base de datos.
Los permisos RESTORE se conceden a funciones en las que la información acerca de los miembros está siempre disponible en el servidor. Debido a que los miembros de una función fija de base de datos sólo 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 de la función fija de base de datos db_owner no tienen permisos RESTORE.
Además, el usuario debe especificar las contraseñas del conjunto de medios, del conjunto de copias de seguridad o de ambos. Cuando se define una contraseña para un conjunto de medios, para realizar una copia de seguridad no es suficiente que el usuario sea miembro de las funciones fijas de servidor o de base de datos correspondientes. El usuario también debe suministrar la contraseña del medio para realizar estas operaciones. De forma similar, no se permite utilizar RESTORE a menos que se especifiquen las contraseñas correctas del medio y del conjunto de copias de seguridad en el comando de restauración.
La definición de contraseñas para conjuntos de copia de seguridad y conjuntos de medios es una característica opcional de la instrucción BACKUP. Las contraseñas impiden operaciones de restauración no autorizadas o anexiones no autorizadas de conjuntos de copia de seguridad a medios utilizando las herramientas de SQL Server 2000, pero no impiden que se sobrescriba un medio con la opción FORMAT.
Por lo tanto, aunque la utilización de contraseñas puede ayudar a proteger el contenido del medio contra accesos no autorizados utilizando herramientas de SQL Server, las contraseñas no impiden la destrucción del contenido. Las contraseñas no protegen completamente contra accesos no autorizados al contenido de los medios, porque los datos de los conjuntos de copia de seguridad no están cifrados y, teóricamente, se podrían examinar con programas creados específicamente para este propósito. En aquellos casos en que la seguridad es fundamental, es importante evitar que personas no autorizadas tengan acceso a los medios.
Es un error especificar una contraseña si no se ha definido ninguna.
Ejemplos
Nota En todos los ejemplos se supone que se ha realizado una copia de seguridad completa de la base de datos.
A. Restaurar una base de datos completa
Nota La base de datos MyNwind se muestra a modo de ejemplo.
En este ejemplo se restaura una copia de seguridad completa de la base de datos.
RESTORE DATABASE MyNwind
FROM MyNwind_1
B. Restaurar una copia de seguridad completa y una copia de seguridad diferencial de la base de datos
Este ejemplo restaura una copia de seguridad completa de la base de datos seguida de una copia de seguridad diferencial. Además, se muestra cómo restaurar el segundo conjunto de copias de seguridad del medio. Esta copia de seguridad diferencial se anexó al dispositivo que contiene la copia de seguridad completa de la base de datos.
RESTORE DATABASE MyNwind
FROM MyNwind_1
WITH NORECOVERY
RESTORE DATABASE MyNwind
FROM MyNwind_1
WITH FILE = 2
C. Restaurar una base de datos con la sintaxis de RESTART
En este ejemplo se utiliza la opción RESTART para reiniciar una operación RESTORE interrumpida por un error de alimentación del servidor.
-- This database RESTORE halted prematurely due to power failure.
RESTORE DATABASE MyNwind
FROM MyNwind_1
-- Here is the RESTORE RESTART operation.
RESTORE DATABASE MyNwind
FROM MyNwind_1 WITH RESTART
D. Restaurar una base de datos y mover archivos
Este ejemplo restaura por completo una base de datos y el registro de transacciones y mueve la base de datos restaurada al directorio C:\Archivos de programa\Microsoft SQL Server\MSSQL\Data directory.
RESTORE DATABASE MyNwind
FROM MyNwind_1
WITH NORECOVERY,
MOVE 'MyNwind' TO 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\NewNwind.mdf',
MOVE 'MyNwindLog1' TO 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\NewNwind.ldf'
RESTORE LOG MyNwind
FROM MyNwindLog1
WITH RECOVERY
E. Hacer una copia de una base de datos con BACKUP y RESTORE
En este ejemplo se utilizan las instrucciones BACKUP y RESTORE para hacer una copia de la base de datos Northwind. La instrucción MOVE provoca que se restauren los datos y el archivo de registro en las ubicaciones especificadas. La instrucción RESTORE FILELISTONLY se utiliza para determinar el número y los nombres de los archivos de la base de datos que se están restaurando. La nueva copia de la base de datos se llama TestDB. Para obtener más información, consulte RESTORE FILELISTONLY.
BACKUP DATABASE Northwind
TO DISK = 'c:\Northwind.bak'
RESTORE FILELISTONLY
FROM DISK = 'c:\Northwind.bak'
RESTORE DATABASE TestDB
FROM DISK = 'c:\Northwind.bak'
WITH MOVE 'Northwind' TO 'c:\test\testdb.mdf',
MOVE 'Northwind_log' TO 'c:\test\testdb.ldf'
GO
F. Restaurar a un momento determinado con la sintaxis de STOPAT y restaurar con más de un dispositivo
En este ejemplo se restaura una base de datos al estado en que se encontraba a las 12:00 a.m. del 15 de abril de 1998 y se muestra una operación de restauración que implica varios registros y varios dispositivos de copia de seguridad.
RESTORE DATABASE MyNwind
FROM MyNwind_1, MyNwind_2
WITH NORECOVERY
RESTORE LOG MyNwind
FROM MyNwindLog1
WITH NORECOVERY
RESTORE LOG MyNwind
FROM MyNwindLog2
WITH RECOVERY, STOPAT = 'Apr 15, 1998 12:00 AM'
G. Restaurar con la sintaxis de TAPE
En este ejemplo se restaura una copia de seguridad completa de la base de datos desde un dispositivo de copia de seguridad en cinta (TAPE).
RESTORE DATABASE MyNwind
FROM TAPE = '\\.\tape0'
H. Restaurar con la sintaxis de FILE y FILEGROUP
En este ejemplo se restaura una base de datos compuesta de dos archivos, un grupo de archivos y un registro de transacciones.
RESTORE DATABASE MyNwind
FILE = 'MyNwind_data_1',
FILE = 'MyNwind_data_2',
FILEGROUP = 'new_customers'
FROM MyNwind_1
WITH NORECOVERY
-- Restore the log backup.
RESTORE LOG MyNwind
FROM MyNwindLog1
I. Restaurar el registro de transacciones hasta la marca
Este ejemplo restaura el registro de transacciones hasta la marca denominada "RoyaltyUpdate".
BEGIN TRANSACTION RoyaltyUpdate
WITH MARK 'Update royalty values'
GO
USE pubs
GO
UPDATE roysched
SET royalty = royalty * 1.10
WHERE title_id LIKE 'PC%'
GO
COMMIT TRANSACTION RoyaltyUpdate
GO
--Time pases. Regular database
--And log backups are taken.
--An error occurs.
USE master
GO
RESTORE DATABASE pubs
FROM Pubs1
WITH FILE = 3, NORECOVERY
GO
RESTORE LOG pubs
FROM Pubs1
WITH FILE = 4,
STOPATMARK = 'RoyaltyUpdate'
Véase también
Backup
Herramienta bcp
Begin transaction
Tipos de datos
Restore filelistonly
Restore headeronly
Restore labelonly
Restore verifyonly
sp_addumpdevice
Descripción de los conjuntos y familias de medios
Utilizar identificadores
©1988-2000 Microsoft Corporation. Reservados todos los derechos.
Todo lo anterior se tomo de los libros de ayuda en línea de sql server.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas