Download Modulo 7 Recuperación de Desastres Recupero de Desastres en

Document related concepts

Microsoft SQL Server wikipedia , lookup

Tabla (base de datos) wikipedia , lookup

SQL Server Compact wikipedia , lookup

Área Global del Sistema wikipedia , lookup

Data Transformation Services wikipedia , lookup

Transcript
Modulo 7
Recuperación de Desastres
○
Recupero de Desastres en SQL Server 2005
○
Uso de Snapshots de la Base de Datos
○
Backup y Recuperación
Recupero de Desastre en SQL Server 2005
Introducción
El recupero de Desastres un proceso de restauración del sistema y recupero luego que ha sucedido un
desastre. Un desastre puede ser cualquier cosa causada por un error de un usuario (como un
administrador que borra una tabla) o una falla de hardware (como la falla de un disco) todo el camino
a un colapso catastrófico de la infraestructura y el hardware donde se aloja la base de datos, quizás
como resultado de un terremoto, incendio o acto de terrorismo.
Mejoras de Desastre- Recupero
El SQL Server 2005 continua soportando clustering, backup y restauración, y log shipping como
mecanismo de desastre-recupero. También suma un número de mejoras a las features disponibles en
las versiones anteriores.
Snapshots de Base de Datos. Un snapshot de base de datos es una copia de solo lectura de la base de
datos hecha en un momento en particular. Los usuarios pueden consultar el snapshot de la base de
datos en la misma manera en la que consultarían la base de datos. Una snapshot de la base de datos
puede ser usada para restaurar los datos y agregarla devuelta en la base de datos original rápida y
fácilmente. Para una descripción mas detallada de snapshots de bases de datos, vea Using Database
Snapshots mas tarde en este modulo.
!
Operaciones Online. En SQL Server 2005, puede restaurar paginas dañadas y archivos
comprimiendo una base de datos mientras que la base de datos esta online y otro usuario esta
accediendo a partes de la base de datos no dañada. Para un descripción mas detallada de cómo realizar
una restauración online, vea Backup and Restore Operations mas tarde en este modulo.
!
Backup media mirroring. El SQL Server 2005 permite hacer mirror backup media, incrementando la
confiabilidad reduciendo los efectos de una mala función de los dispositivos de backup. Backup
mirroring puede ser usado con dispositivos de disco o cinta (todos los dispositivos formando un mirror
set deben ser del mismo tipo) El backup fallara si algún dispositivo en el mirror set no esta disponible
o no se encuentra. Sin embargo, las operaciones de restauración solo requieren de un solo dispositivo
en cada mirror set para tener éxito. Para una descripción mas detallada de backup media mirroring,
vea .Backup
and Restore Operations mas tarde en este modulo.
!
Verificación Improvisada. Los backup y operaciones de restauración pueden realizar un chequeo de
error adicional en SQL Server 2005, incrementando la confiabilidad que una base de datos será
restaurada correctamente desde un set dado de backups. Puede opcionalmente generar checksums
cuando realiza un backup que puede ser verificado cuando los datos son restaurados El comando
RESTORE VERIFYONLY ha sido extendido para incluir información checksum cuando examina
un set de backup.
!
Uso de Snapshots de Base de Datos
Introducción
Los snapshots de la base de datos proveen la capacidad para los administradores de generar y usar una
base de datos de solo lectura y vista estable. Una snapshot de la base de datos puede ser usada para
recuperar datos perdidos por un cambio accidental hecho a la base de datos.
Esta sección describe los snapshots de la base de datos y discute su uso como un herramienta para
asistir en un recupero de desastre.
Objetivos
!
Definir snapshots de base de datos.
!
!
!
Crear, alterar, y borrar snapshots de base de datos.
Usar una snapshot de base de datos para asistir en la restauración de datos luego de un desastre.
Usar snapshots de base de datos.
Qué son Snapshots de Base de Datos?
Introducción
Mientras que el mirroring provee soporte continuo, hay muchos escenarios en los cuales un simple
snapshot de la base de datos es útil como una base de datos en standby, como un test o una base de
datos en desarrollo o simplemente como una base de datos de reporte.
Definición
Un snapshot de base de datos es una vista de la base de datos como solo lectura, consistente en un
punto especifico de tiempo.
Modificar Datos
SQL Server 2005 usa tecnología copy-on-write para implementar los snapshots de la base de datos sin
incurrir en crear una copia completa de la base de datos. Una snapshot de la base de datos, empleando
archivos separados NTFS para alojar espacio físico en el disco solo cuando es requerido. Cuando una
página en la fuente de la base de datos es actualizada por primera vez, la imagen original de esa
página es copiada a la snapshot de la base de datos. (Actualizaciones subsiguientes de la misma página
no incurren en copias adicionales sobre la misma.) Si una página no es nunca modificada, no es nunca
copiada.
Nota
Si borra un archivo de la fuente de la base de datos, el contenido completo de la base de datos será
copiado al snapshot de la base de datos.
Lectura de Datos
un usuario que accede a la snapshot de la base de datos vera una copia de la página en la snapshot solo
si la pagina ha sido modificada desde que la snapshot ha sido creada. De todas formas, el usuario es
redireccionado a la página correspondiente en la fuente de la base de datos. Esta redirección es
transparente para el usuario.
Cómo Administrar Snapshots de Base de Datos
Crear un Snapshot
Crea una snapshot de base de datos usando el comando CREATE DATABASE con la cláusula AS
SNAPSHOT, como muestra el siguiente ejemplo:
CREATE DATABASE database_snapshot_name
ON <filespec>[,...n]
AS SNAPSHOT OF source_database_name
El siguiente código muestra como crear una snapshot de la base de datos AdventureWorks
en la carpeta C:\SnapshotData:
CREATE DATABASE AdventureWorks_dbsnapshot_1800
ON (NAME = AdventureWorks_Data,
FILENAME = ’C:\SnapshotData\AdventureWorks_Data.mdf’)
AS SNAPSHOT OF AdventureWorks
La snapshot debe ser creada en la misma instancia de SQL Server que la de la fuente de la base de
datos, y la carpeta de destino debe existir. Adicionalmente, la cláusula ON debe incluir un archivo
para cada fila de datos usado en la fuente de la base de datos, Aunque no debería especificar los
parámetros SIZE, MAXSIZE, o FILEGROWTH.
Nota
La cláusula filespec no puede incluir la palabra clave PRIMARY o especificar una lista de grupos de
archivo.
Crear una snapshot crea una vista de la base de datos en el tiempo en curso. Puede usar el SQL Server
Agent para agendar tareas que crean snapshots en un tiempo determinado. Una base de datos puede
tener múltiples snapshots. Por lo tanto es recomendado que usted adopte una conversión de nombre
para una snapshots de base de datos que incluye el tiempo en que la snapshot fue creada. Por ejemplo,
AdventureWorks_dbsnapshot_1800 indica que una snapshot fue creada a las t 6:00 P.M.
En una base de datos que cambia frecuentemente, los archivos snapshot pueden agrandarse
rápidamente, así que es recomendado que si agenda la creación de snapshot, también agende trabajos
de borrado de las versiones anteriores de la snapshot.
Tip
Puede descubrir la fuente de la base de datos para una consulta de la snapshot de base de datos
consultando la vista de catálogos sys.databases y examinar la columna source_database_id.
Borrar una Snapshot
Use el comando DROP DATABASE para borrar una snapshot y tener el espacio en disco que esta
ocupo:
DROP DATABASE database_snapshot_name [,...n]
El siguiente ejemplo borra la snapshot de base de datos AdventureWorks_dbsnapshot_1800, y
también borra el archivo AdventureWorks_Data de la carpeta C:\SnapshotData:
DROP DATABASE AdventureWorks_dbsnapshot_1800
Restricciones
Las siguientes restricciones se aplican a las snapshots de base de datos:
! Snapshots de base de datos no pueden ser creadas para bases de datos model, master, o tempdb.
! Snapshots de base de datos son de solo lectura; los usuarios no las pueden modificar.
! Snapshots de base de datos no pueden ser restauradas o hacerse backup.
! Snapshots de base de datos no pueden ser adjuntadas o desadjuntadas.
! Snapshots de base de datos no pueden ser creadas en FAT32 o en particiones raw.
! Catálogos Full-text no pueden ser propagados al snapshot de la base de datos, y catálogos full-text no
pueden ser creados sobre los snapshots de la base de datos.
! La ubicación física de los archivos comprimen una fuente de bases de datos no pueden ser
cambiados si la snapshots de base de datos es creada sobre la fuente de base de datos existente.
! Toda las snapshots de base de datos creadas sobre la base de datos deben ser borradas antes que la
misma base de datos sea borrada.
! Restricciones de Seguridad en objeto snapshot de base de datos no puede ser modificado.
Cómo usar una Snapshot de Base de Datos para Restaurar
Datos
Introducción
Puede usar una snapshot de base de datos para recuperar datos de un cambio accidental a la base de
datos aplicando los datos de la snapshot de base de datos a la fuente de la base de datos. Sin embargo,
debe tener en cuenta que la snapshot de la base de datos provee un mecanismo de recuperación de
peso pequeño que no debería ser usado como un sustituto para implementar un backup comprensivo y
recuperación estratégica.
Escenarios Aplicables
Una variedad de situaciones puede terminar en la pérdida de datos, desde borrar algo por accidente de
una tabla o modificación de una simple row hasta corrupción o pérdida del archivo de la base de datos.
La naturaleza de la snapshot de la base de datos la hace ideal para recuperar desde una aplicación
hasta un error de un usuario que pueden borrar una row o una actualización por accidente, o borrar una
tabla. Restaurar datos de una snapshot de base de datos es más rápido y fácil que realizar una
operación de restauración desde una base de datos de backup. Sin embargo, el mecanismo copy-onwrite previene la snapshots de la base de datos de recuperar una base de datos sospechosa de
comprimir archivos corruptos de base de datos, esto requiere restaurar los archivos faltantes de la base
de datos desde un backup. También debe notar que solo puede recuperar cambios hechos al punto en
el cual la snapshot fue tomada. Recuperar los cambio subsecuentes requiere restaurar la base de datos
desde un y luego ir hacia delante usando las transacciones mas recientes de log backups. Los
siguientes escenarios son ejemplos de cuando usar una snapshot de base de datos para propósitos de
recuperación.
Importante
Debe recordad que estos tipos de statement de recuperación, solo recuperan los datos que usted
especifica explícitamente, y cuando restaura datos usando estos métodos, cualquier otra modificación
hecha a los datos en el periodo subsecuentes era perdido.
Escenario 1: Recuperar rows
Puede recuperar rows borradas de una tabla copiándolas desde la snapshot correspondiente. Por
ejemplo, un nombre de usuario Fred ha reportado que todas las rows en la tabla
Production.WorkOrderRouting en la base de datos AdventureWorks han desaparecido. Puede
restaurar las rows perdidas de la base de datos AdventureWorks_dbsnapshot_1800 usando la
statements como muestra el siguiente ejemplo:
ALTER TABLE Production.WorkOrderRouting
NOCHECK CONSTRAINT CK_WorkOrderRouting_ActualEndDate
INSERT INTO Production.WorkOrderRouting
SELECT *
FROM
AdventureWorks_dbsnapshot_1800.Production.WorkOrderRouting
ALTER TABLE Production.WorkOrderRouting
CHECK CONSTRAINT CK_WorkOrderRouting_ActualEndDate
Es de práctica común desafiliar cualquier restricción cuando se copia un número grande de rows
dentro de una tabla, para propósitos de performance. En otros casos, puede ser necesario deshabilitar
restricciones temporalmente para prevenir que los datos sean rechazados cuando son reaplicados.
Escenario 2: Deshacer una Actualización
Puede usar técnicas similares para copiar datos de una snapshot para deshacer cambios hechos a las
rows seleccionadas. Fred ahora ha reportado que por error cambio el nombre del departamento 1 en la
tabla HumanResources.Department, pero no puede recordar que valor tenía antes, así que no pudo
chequearlo otra vez. Puede corregir el error usando el siguiente statement:
UPDATE HumanResources.Department
SET Name = (
SELECT Name
FROM
AdventureWorks_dbsnapshot_1800.HumanResources.Department
WHERE DepartmentID = 1)
WHERE DepartmentID = 1
Escenario 3: Recuperar un Objeto Borrado
Fred ha reportado otro problema con la tabla Production.WorkOrderRouting: también ha
desaparecido. Puede reconstruir una tabla con el siguiente procedimiento.
1. Use Object Explorer en SQL Server Management Studio para script la tabla
Production.WorkOrderRouting en la base de datos AdventureWorks_dbsnapshot
_1800. Genere el script para el Query Editor.
2. Ejecute la script en la base de datos AdventureWorks. Note que dependiendo de las opciones
seleccionadas cuando genera el script, también contendrá definiciones de las restricciones de la tabla y
los triggers adjuntos a la tabla.
3. Use la técnica del escenario 1 para publicar la tabla. Puede usar la misma estrategia para recrear
cualquier objeto que haya sido borrado de la base de datos AdventureWorks, incluyendo vistas,
procesos almacenados, tipos de datos de usuarios definidos, funciones de usuarios definidos, reglas y
defaults.
Operaciones de Backup y Restauración
Introducción
Las tareas de backup y restauración de una base de datos, son temas fundamentales con los cuales un
administrador debe estar familiarizado para implementar una estrategia de recupero de desastre. Esta
sección describe como realizar las operaciones de backup y restauración usando las nuevas features en
SQL Server 2005.
Objetivos
!
!
!
!
!
!
Hacer backup de una base de datos.
Restaurar una base de datos.
Realizar una restauración online.
Reducir las fallas de media que impactan el sistema de su base de datos.
Restaurar la base de datos master.
Realizar operaciones de backup y restauración.
Cambios para hacer un Backup de la Base de Datos
Introducción
El SQL Server 2005 introduce cambios a la statement BACKUP. Ya no soporta las opciones
BACKUP LOG WITH NO_LOG y BACKUP LOG WITH TRUNCATE_ONLY, que antes te
permitían remover y truncar una porción inactiva de un log sin tener que hacer una copia de el.
Usar Transact-SQL para Realizar un Backup
El siguiente código muestra la sintaxis básica de las statements BACKUP DATABASE y BACKUP
LOG, sin cambios desde SQL Server 2000:
BACKUP DATABASE { database_name | @database_name_var }
TO < backup_device > [ ,...n ]
[ WITH
...
]
BACKUP LOG { database_name | @database_name_var }
TO < backup_device > [ ,...n ]
[ WITH
...
]
El argumento backup_device puede ser especificado usando o el nombre lógico de un dispositivo
predeterminado o el tipo y nombre físico de un nuevo dispositivo. El siguiente ejemplo muestra como
hacer un backup de la base de datos AdventureWorks en el dispositivo antes creado AWBackup:
BACKUP DATABASE AdventureWorks
TO AWBackup
Nota
Los llamados dispositivos pipe backup no son soportados en SQL Server 2005; solo puede crear un
dispositivo de disco o cinta.
Usar SQL Server Management Studio para Realizar un Backup
Puede realizar un backups de una base de datos usando el cuadro de dialogo Backup Database en
SQL Server Management Studio.
1. Conéctese a una instancia de SQL Server.
2. En Object Explorer, expanda la instancia relevante, luego expanda System Databases o User
Databases, dependiendo el tipo de base de datos de la quería hacer el backup.
3. Haga botón derecho sobre la base de datos, posiciones sobre Tasks, y luego haga click en Back
Up.
4. Especifique los requerimientos en las paginas General y Options, y luego haga click en OK.
Backups de Datos y Diferenciales
Backups completes de la base de datos y backups diferenciales en SQL Server 2005 contienen una
imagen full de los datos como también suficiente información de logs para asegurar una recuperación
consistente luego del proceso de restauración. Si algunas transacciones están en proceso cuando el
backup es hecho, el backup incluye pasos de log para alcanzar un estado consistente.
Backup Parcial
Backups completos y diferenciales también soportan un nuevo tipo de backup, el backup parcial. Esto
es diseñado para primariamente para permitir restaurar de un modelo simple de base de datos, pero
puede ser usado para recuperacion completa o bulk-logged de modelos de base de datos, también. Un
backup parcial también incluye todos los datos en cualquier grupo de archivos lectura/escrituray en
cualquier grupo de archivos específicamente mencionado. Para una base de datos de solo lectura, esto
es igual que solo para el grupo de archivos principal. Un backup parcial diferencial hace relación a un
backup parcial en el mismo modo que un backup completo diferencial hace referencia a un backup
completo de la base de datos.
Use la opción READ_WRITE_FILEGROUPS de la statement BACKUP para crear un backup
parcial, como muestra el siguiente ejemplo:
BACKUP DATABASE AdventureWorks READ_WRITE_FILEGROUPS
TO AWPartialBackup
Cuando use el backup parcial diferencial, considere los siguientes puntos:
! Backups diferenciales parciales no pueden ser multibase.
! Si un grupo de archivos es cambiado de read-only a read/write, automáticamente será incluido en el
próximo backup parcial o parcial diferencial.
! Si un grupo de archivos es cambiado de read/write a read-only, debe realizar un archivo de backup
por separado porque será salteado automáticamente en el próximo backup parcial diferencial.
Backups Copy-only
El SQL Server 2005 incluye una nueva opción de statement BACKUP que le permite hacer una copia
de la base de datos para un propósito especifico, por ejemplo, testear sin alterar la secuencia normal
de sus log backups diferencial y transaccional.
Use la opción COPY_ONLY para crear datos o log backup que es independiente de los otros backups
de una base de datos específica, como muestra el siguiente ejemplo de código:
BACKUP DATABASE AdventureWorks
TO AWBackup
WITH COPY_ONLY
Si usa la opción COPY_ONLY en una statement BACKUP LOG, el log no es truncado y el backup
no es incluido en la secuencia de logs para ser aplicada a la base de datos durante el proceso de
restauración.
Cambios en la Restauración de Base de Datos
Introducción
Puede implementar operaciones de restauración offline en SQL Server 2005 usando la statement
RESTORE en casi la misma forma que en las versiones anteriores. Puede usar también el SQL Server
Management Studio para restaurar la base de datos y logs. La statement RESTORE contiene una
nueva opción, RESTRICTED_USER. Esta restringe el acceso a la base de datos recuperada a los
miembros de los roles db_owner, dbcreator, o sysadmin. Esto reemplaza la opción DBO_ONLY
del SQL Server 2000, que solo esta disponible para compatibilidad retrazada. Puede restaurar solo
backups de bases de datos creadas en SQL Server 7.0, SQL Server 2000, y SQL Server 2005.
Nota
No puede restaurar una base de datos que tiene un snapshot basada en ella.
Recuperacion Point-in-time
En versiones anteriores de SQL Server, puede usar la opción STOPAT para restaurar un log en un
punto específico en el tiempo. En SQL Server 2005, esta funcionalidad también ha sido agregada a la
statement RESTORE DATABASE. Por ejemplo, el siguiente código restaura la base de datos
AdventureWorks a su estado a las 2:00 p.m. del 1ro de Marzo del dispositivo de backup AWBackup.
RESTORE DATABASE AdventureWorks
FROM AWBackup
WITH RECOVERY, STOPAT = ’Mar 1, 2004 2:00 PM’
Operaciones de Restauración Parcial
Mientras ejecuta una operación de backup parcial para hacer backup del grupo de archivos principal,
otros grupos de archivos read/write, y otros grupos read-only específicos, también puede ejecutar una
restauración parcial de los mismos ítems. Usualmente, un proceso de restauración es requerido por un
error en una parte aislada de la base de datos; por ejemplo, una tabla que se borro por accidente. En
este escenario, puede ejecutar una restauración parcial del grupo de archivos primarios y los grupos de
archivos que contienen la tabla especifica a una locacion secundaria, y luego copiar la tabla y sus
contenidos a la locacion original de la cual fueron borradas. Las restauraciones parciales también
pueden ser útiles para crear subsets de datos con servidores no conectados. El siguiente código
muestra como ejecutará una restauración parcial de AWBackup a una nueva base de datos llamada
AWTemp:
RESTORE DATABASE AWTemp
FILE = ’AdventureWorks_data_1’
FROM AWBackup
WITH PARTIAL,
MOVE ’AdventureWorks_data_1’ TO ’AWTemp_data_1.mdf’
Operaciones de Restauración Page-level
Aparte de poder restaurar una base de datos completa, uno o mas grupos de archivos, o uno o mas
archivos, ahora puede restaurar paginas individuales cuando usa los modelos de recuperacion
completa o bulk-logged. Esto puede reducir ampliamente el tiempo requerido para una operación de
restauración, por lo tanto reduce el tiempo que la base de datos esta offline. Restauración Page-level
es también una técnica particular para restaurar páginas dañadas aisladas. Si tiene que restaurar
múltiples paginas en el mismo archivo, debería usar restaurar el archivo. Use la opción PAGE en la
cláusula file_or_filegroup para la statement RESTORE DATABASE para realizar una restauración
page-level:
PAGE = ’file:page [ ,...p]’
Esto requiere que especifique el nombre de un archivo y el offset de una pagina dentro del archivo.
Puede identificar offsets de una página que contienen errores usando información hexadecimal del log
de error del suspect_page_table en msdb. Por ejemplo, el siguiente código restaurara la página
número 832 en el archivo AdventureWorks_data_1 del dispositivo de backup AWBackup:
RESTORE DATABASE AdventureWorks
PAGE = ’AdventureWorks_data_1:832’
FROM AWBackup
Operaciones de Restauración
La edición de SQL Server 2005 Enterprise Edition soporta el concepto de restauración piecemeal, que
le permite restaurar grupos de archivos en stages, trayendo a cada grupo online mientras avanza.
Puede usar este método para reducir en gran medida el tiempo total en el cual la base de datos esta
siendo restaurada, solo restaurando los archivos dañados,
restáurelos por orden de importancia, y ponga cada grupo de archivos online lo antes posible. El
comportamiento de la restauración piecemeal varía dependiendo del modelo de recuperacion de su
base de datos:
! Modelos de recuperacion completa y bulk-logged.
Restauración piecemeal es valida para cualquier grupo de archivos secundario.
! Modelo de recuperacion simple.
Puedo restaurar solo grupos de archivos secundarios si ellos son de solo lectura cuando el backup fue
ejecutado y han permanecido así desde entonces. Restauración Piecemeal comienza con una
restauración parcial de algunos de los grupos de archivos primarios, y en el caso de un modelo de
recuperacion simple, los grupos de archivos read/write. Una vez que están online, puede restaurar
cualquier otro archivo dañado disponible en la base de datos.
Cómo Realizar una Restauración Online
Introducción
El SQL Server 2005 Enterprise Edition introduce un nuevo concepto de restauración online de
backups debe SQL Server 2005. Por defecto, en esta edición, una base de datos queda online mientras
que se restauran archivos o paginas individuales a una base de datos. Esto puede mejorar el tiempo de
restauración en los modelos completos y bulk-logged . (No soporta modelos de restauración simples.)
Restauración de Archivos Online
Durante la restauración de cualquier archivo o grupo de archivos, el grupo completo esta offline. Por
lo tanto, cuando esta restaurando un archivo en el grupo de archivos primarios, toda la base de datos
debe estar offline. Sin embargo, luego que el primer grupo de archivos es restaurado, la base de datos
es puesta otra vez online, y mientras los grupos de archivos secundarios son restaurados, el grupo de
archivos es puesto automáticamente online.
Restauración de Paginas Online
La restauración online asegura que la restauración de páginas dañadas aisladas tiene poco impacto
sobre el sistema completo de la base de datos. Generalmente, las páginas dañadas serán listadas en el
log de error de la base de datos. Por ejemplo, si trata de acceder a una pagina dañada, un error ocurrirá
y se hará una entrada en el log de error. Puede usar esta información para localizar la página
individual y restaurarla de un backup valido.
Confiabilidad Media
Introducción
Más allá de su estrategia de restauración, sus datos aun pueden estar en peligro por errores que pueden
ocurrir en su backup media. El SQL Server 2005 incluye funcionalidades que lo alertan de errores
durante los procesos de backup y restauración, permitiéndole restaurar los datos mas allá de los
errores que pueden ocurrir y reduciendo la posibilidad de errores de media impactando sus trabajos.
Uso de checksums Durante el Backup y Restauración
Puede usar la opción CHECKSUM de la statement BACKUP para calcular una checksum en cada
página de datos y verificar esta checksum antes de escribir la información a su backup media. Esto le
ayudara a asegurarse que solo datos validos serán escritos cuando haga el backup de archivos. El
siguiente ejemplo de código muestra como usar la opción CHECKSUM:
BACKUP DATABASE AdventureWorks
TO AWBackup
WITH CHECKSUM
Por defecto, si ocurre un error durante la creación del proceso checksum, el backup falla. Este
comportamiento puede ser evitado usando la opción CONTINUE_AFTER_ERROR escrita abajo.
Los checksums computados son escritos en el backup media. Pueden ser usados durante el proceso de
restauración para una vez mas, verificar los datos cuando son leídos del backup, antes que sea
finalizado a la base de datos restaurada. Use la opción CHECKSUM del statement RESTORE para
instruir al SQL Server a verificar los datos antes de restaurarlos, como muestra el siguiente ejemplo de
código:
RESTORE DATABASE AdventureWorks
FROM AWBackup
WITH CHECKSUM
Puede forzar al SQL Server a log, pero no fallar, cuando encuentra errores de checksum usando la
opción CONTINUE_AFTER_ERROR. La statement RESTOREVERIFYONLY ha sido mejorada
para incluir la opción CHECKSUM y permitirle verificar los datos antes de intentar restaurarlos.
Nota
Debe usar la opción CHECKSUM con cuidado, puede producir efectos adversos a su sistema de base
de datos.
Backup Media Mirroring
El SQL Server 2005 incrementa el potencial de restauración de sus datos a través del uso de un
backup media mirroring. Este método resulta en dos locaciones del mismo tipo de media almacenando
sus datos del backup, lo cual reduce el peligro que la media falle causando perdida de datos. El
siguiente ejemplo de código muestra como usar la opción MIRROR TO en el statement BACKUP:
BACKUP DATABASE AdventureWorks
TO AWBackup
MIRROR TO AWMirror
WITH FORMAT
Nota
Cuando usa la opción MIRROR TO, también debe incluir la opción WITH FORMAT de la
statement del BACKUP.
Cuando esta haciendo backup de datos, todos los miembros del mirror deben ser accesibles. Sin
embargo, cuando esta restaurando datos, solo un miembro necesita se accesible, haciendo una
restauración posible aunque el otro miembro este dañado.
Continuar Luego de Errores
El statement RESTORE en SQL Server 2005 incluye un nuevo punto que le permite completar una
operación de restauración completa aunque un error aparezca durante el procesos. Usando la opción
CONTINUE_AFTER_ERROR cauda al SQL Server simplemente intentar log el error y continuar
con su trabajo, como muestra el siguiente código:
RESTORE DATABASE AdventureWorks
FROM AWBackup
WITH CONTINUE_AFTER_ERROR
Dependiendo en la naturaleza del error, este intento puede tener éxito, o fallar. Por ejemplo, si una
verificación de checksum falla, es posible que el remanente de los datos sea restaurado y sea valido y
el proceso pueda continuar. Sin embargo, si ocurre un error en una cinta, puede ser imposible que
continuara la operación de restauración, la cual entonces fallara. Si los errores ocurren, la base de
datos es marcada SUSPECT al final del proceso de restauración, permitiéndole chequear
manualmente que errores ocurrieron y que impacto habrán tenido en su base de datos.
Cómo Recuperar la Base de Datos Master
Introducción
Si su base de datos master es dañada, puede necesitar o simplemente restaurar la base de datos o
reconstruirla completamente.
Restaurar la Base de Datos Master
Su la base de datos master es aun accesible, podrá iniciar una instancia de SQL Server. En este
escenario, debe iniciar SQL Server en modo singleuser y luego restaurar su copia de la base de datos
master desde su más reciente backup completo de la base de datos en la manera habitual, como
describe en los siguientes pasos.
1. Inicie SQL Server en modo single-usere. En la línea de comando, navegue a la carpeta de
instalación de SQL Server y tipee el siguiente código:
sqlservr.exe -c .m
2. Ejecute una operación de restauración de un backup de una base de datos completa:
RESTORE DATABASE master
FROM masterbackup
Si hizo algún cambio a la base de datos master desde que fue hecho el backup, necesitara rehacer
manualmente esos cambios una vez que la base de datos esta restaurada y online. Por esta razón,
cuando realiza un cambio a master (por ejemplo, cambiar una configuración server-wide, o agregar o
remover bases de datos), es recomendado que ejecute un backup completo de la base de datos. Una
vez que el proceso de restauración es completado, el SQL Server es parado automáticamente. En este
punto, puede empezar SQL Server en modo single-user para hacer los cambios manuales antes de
ponerla online, o puede iniciar SQL Server para uso inmediato de clientes
Reconstruir la Base de Datos Master
Si la base de datos master es dañada severamente, puede ser que no pueda iniciar una instancia de
SQL Server. En esta situación, debería reconstruir una versión nueva entera de su base de datos
master.
Para reconstruir una base de datos master, debe correr el programa del setup de SQL Server con las
siguientes opciones:
! /qn cambia a suprimir la interfase de usuario.
! REINSTALLMODE = AMUS propiedad para reconstruir un sistema de base de datos.
! REINSTALL = ALL propiedad de setear un servidor con las features instaladas previamente. Esta
debe ser usada cuando se especifica la propiedadREINSTALLMODE.
Una vez que la reconstrucción esta completa, puede restaurar su versión original del servidor si tiene
un backup disponible siguiendo los pasos descriptos arriba. Si no tiene un backup disponible,
necesitara recrear y reconfigurar su sistema. Reconstruir el sistema de base de datos incluye
reconstruir las bases de datos msdb y model, asi que debe asegurarse que tiene copias de backup de
sus versiones para restaurar luego de reconstruir.