Академический Документы
Профессиональный Документы
Культура Документы
de datos
Contenido
Introducción 1
Introducción
Objetivo del tema
Proporcionar una Impedir la pérdida de los datos
introducción a los
temas y objetivos del Establecimiento y cambio de un modelo de
módulo. recuperación de bases de datos
Explicación previa Copia de seguridad de SQL Server
Utilizar una estrategia
de copia de Cuándo se hacen las copias de seguridad
seguridad es de las bases de datos
esencial en el Ejecución de copias de seguridad
mantenimiento de
una base de datos. Tipos de métodos de copia de seguridad
Diseño de una estrategia de copia de
seguridad
AALTER
LTER DATABASE
DATABASE Nort
Northwind
hwind
SSET
ET RECOVERY
RECOVERY BULK_LOGGED
BULK_LOGGED
Copia de seguridad de bases de datos 4
SQL Server utiliza estas copias de seguridad para volver a crear los archivos
en sus ubicaciones originales, completos con objetos y datos, cuando se
restaura una base de datos.
Captura la actividad de la base de datos que tiene lugar durante el proceso de
Punto clave copia de seguridad.
Explique que el
proceso de copia de El proceso de copia de seguridad de SQL Server es dinámico y, salvo algunas
seguridad de SQL excepciones, puede tener lugar mientras la base de datos está en funcionamiento
Server es dinámico y y se está modificando. El proceso de copia de seguridad dinámica se produce
describa cómo se cuando SQL Server:
desarrolla.
Emite un punto de comprobación en la base de datos y registra el número de
secuencia de registro (LSN) del registro de transacciones activo más
antiguo.
Lee los discos directamente (pasa por alto la caché del búfer) para escribir
todas las páginas en el medio de copia de seguridad.
Escribe todas las entradas del registro de transacciones escritas durante el
proceso de copia de seguridad. Concretamente, SQL Server escribe las
entradas del registro de transacciones desde el último LSN grabado hasta el
final del registro.
Para hacer una copia de seguridad de una base de datos en SQL Server, debe
tener en cuenta a quién le está permitido hacer la copia de seguridad y dónde se
va a almacenar. Puede realizar copias de seguridad de bases de datos mediante
instrucciones de Transact-SQL o con el Administrador corporativo de SQL
Server.
Nota Sin una copia de seguridad actual de la base de datos master que
contenga referencias a las bases de datos de usuario, deberá volver a generar
completamente todas las bases de datos del sistema con el programa de símbolo
del sistema rebuildm, mediante la ejecución de C:\Archivos de
programa\Microsoft SQL Server\80\Tools\Binn\Rebuildm.exe. Este programa
vuelve a generar todas las bases de datos del sistema como una unidad.
Copia de seguridad de bases de datos 10
después de ciertas
operaciones.
Después de crear bases de datos
Después de crear índices
Después de limpiar el registro de
transacciones
Después de operaciones no registradas
Instrucciones
BACKUPLOG WITH
TRUNCATE_ONLY o BACKUP LOG
WITHNO_LOG Instrucciones
WRITETEXToUPDATETEXT Instrucción
SELECT...INTO
Debe planear las copias de seguridad de las bases de datos de usuario para que
se hagan de forma regular. También debe hacer copias de seguridad después de
crear una base de datos o un índice, y cuando se ejecutan ciertas operaciones no
registradas.
Haga una copia de seguridad de una base de datos después de ejecutar cualquier
operación no registrada porque, si se produce un error del sistema, puede que el
registro de transacciones no contenga toda la información necesaria para
restaurar la base de datos a un estado coherente.
Copia de seguridad de bases de datos 13
Puede hacer una copia de seguridad de una base de datos mientras ésta está en
funcionamiento y activa. Sin embargo, no es conveniente realizar algunas
operaciones durante el proceso de copia de seguridad.
Evite efectuar las acciones siguientes durante la operación de copia de
seguridad de una base de datos:
Crear o modificar bases de datos con las instrucciones CREATE
DATABASE o ALTER DATABASE.
Realizar operaciones de crecimiento automático.
Crear índices.
Ejecutar operaciones no registradas, incluidas la copia masiva de datos y las
instrucciones SELECT…INTO, WRITETEXT y UPDATETEXT.
Reducir una base de datos.
Copia de seguridad de bases de datos 14
Cuando haga una copia de seguridad, primero debe crear los archivos de copia
de seguridad (permanentes o temporales) que la contendrán. SQL Server
proporciona opciones que puede aplicar a cada uno de los distintos métodos de
copia de seguridad disponibles. Aunque SQL Server le permite elegir varios
destinos de copia de seguridad, el disco o la cinta son los más comunes.
'C:\Backup\MyBackupFile.bak''C:\Backup\MyBackupFile.bak'
USE master
EXEC sp_addumpdevice 'disk', 'mybackupfile',
'C:\Backup\MyBackupFile.bak'
Ejemplo 2 En este ejemplo se crea un dispositivo de copia de seguridad en una cinta con el
nombre lógico Mytape1 y el nombre físico \\.\tape0.
Copia de seguridad de bases de datos 16
Nota Si usa varios dispositivos, cada archivo de copia de seguridad tiene una
designación de familia, como familia 1, que identifica al dispositivo que creó el
archivo.
Las cintas son un medio muy cómodo para las copias de seguridad porque no
son caras, proporcionan una gran cantidad de espacio de almacenamiento y se
pueden almacenar fuera del sitio para asegurar y proteger los datos.
SSKIPKIP Ignora las etiquetas ANSI de las cintasIgnora las etiquetas ANSI de las
cintas
UNLOAD
SQL Server rebobina y descarga automáticamente la cinta de la unidad de cinta
después de terminar la copia de seguridad. La opción UNLOAD es la
predeterminada de SQL Server y permanece activa hasta que se selecciona la
opción NOUNLOAD.
NOUNLOAD
Puede utilizar esta opción si no desea que SQL Server rebobine y descargue
automáticamente la cinta de la unidad de cinta después de la copia de seguridad.
La opción NOUNLOAD permanece activa hasta que se seleccione UNLOAD.
BLOCKSIZE
Puede utilizar esta opción para cambiar el tamaño del bloque físico en bytes si
va a sobrescribir la cinta con las opciones FORMAT, o SKIP e INIT. Cuando
se hace una copia de seguridad en cinta, SQL Server selecciona el tamaño de
bloque apropiado. Puede suplantar la selección del tamaño de bloque si utiliza
la opción BLOCKSIZE y especifica un tamaño de bloque.
Copia de seguridad de bases de datos 25
FORMAT
Puede utilizar esta opción para escribir un encabezado en todos los volúmenes
(archivos) que se utilizan en una copia de seguridad. SQL Server sobrescribe
todos los encabezados y las copias de seguridad de los archivos. El encabezado
incluye la información que se encuentra en las opciones MEDIANAME y
MEDIADESCRIPTION.
SKIP
Puede utilizar esta opción para saltar los encabezados. SQL Server pasa por alto
las etiquetas ANSI existentes en las cintas del dispositivo de cinta. La etiqueta
ANSI de las cintas puede proporcionar información de advertencia acerca de la
fecha de caducidad de la cinta, así como exigir permisos de escritura.
NOSKIP
Puede utilizar esta opción si desea que SQL Server lea las etiquetas ANSI de la
cinta. SQL Server comprobará la fecha de caducidad y el nombre de todos los
conjuntos de copia de seguridad del medio antes de sobrescribirlos. De forma
predeterminada, SQL Server lee las etiquetas ANSI de las cintas.
RESTART
Puede utilizar esta opción para reiniciar la operación de copia de seguridad a
partir del punto de interrupción para hacer copias de seguridad en cinta que
abarquen varios volúmenes de cinta. Debe reiniciar manualmente el proceso de
copia de seguridad mediante la instrucción BACKUP original con la opción
RESTART.
USE master
EXEC sp_addumpdevice 'disk', 'NwindBac',
'C:\MyBackupDir\NwindBac.bak'
BACKUP DATABASE Northwind TO NwindBac
Copia de seguridad de bases de datos 28
Ejemplo 2 En este ejemplo se hace una copia de seguridad completa de la base de datos en
el archivo Nwndbac y se sobrescriben las copias de seguridad anteriores de ese
archivo.
BACKUP DATABASE Northwind TO NwindBac WITH INIT
Ejemplo 3 En este ejemplo se anexa una copia de seguridad completa de la base de datos al
archivo NwindBac. Las copias de seguridad anteriores del archivo siguen
intactas.
BACKUP DATABASE Northwind TO NwindBac WITH NOINIT
Debe hacer una copia de seguridad diferencial para reducir el tiempo necesario
para la restauración de una base de datos que se modifica con frecuencia. Haga
una copia de seguridad diferencial sólo si ha hecho una copia de seguridad
completa de la base de datos. En una copia de seguridad diferencial, SQL
Server:
Copia las partes de la base de datos que han cambiado desde la última
copia de seguridad completa.
Para determinar qué páginas han cambiado desde la última copia de
seguridad completa de la base de datos, SQL Server compara el LSN de
la página con el LSN de sincronización de la última copia de seguridad
completa.
Cuando se hace una copia de seguridad diferencial, SQL Server copia
extensiones en lugar de páginas individuales. Se hace una copia de una
extensión cuando el LSN de cualquier página de la extensión es mayor
que el LSN de la última copia de seguridad completa de la base de datos.
Se copia toda la actividad que haya tenido lugar durante la copia de
seguridad diferencial, así como las transacciones sin confirmar del registro
de transacciones.
Copia de seguridad de bases de datos 30
Cuando haga una copia de seguridad diferencial, tenga en cuenta los siguientes
Puntos clave hechos e instrucciones:
Señale que se debe
utilizar una Si una determinada fila de la base de datos ha sido modificada varias
convención de veces desde la última copia de seguridad completa de la base de datos, la
denominación para copia de seguridad diferencial sólo contiene el último conjunto de valores
los archivos que de esa fila. Esto es diferente de una copia de seguridad del registro de
contienen copias de transacciones, que contiene un historial de los cambios en las filas.
seguridad
diferenciales, de Disminuye el tiempo necesario para hacer la copia de seguridad de una
forma que puedan base de datos porque los conjuntos de copia de seguridad son más
distinguirse de los pequeños que los de las copias de seguridad completas.
archivos que Disminuye el tiempo necesario para restaurar una base de datos porque no
contienen copias de hay que aplicar varios registros de transacciones.
seguridad completas
de la base de datos. Debe establecer una convención de denominación para los archivos que
contienen copias de seguridad diferenciales, de forma que puedan
distinguirse de los que contienen copias de seguridad completas de la
base de datos.
[WITH
[{INIT | NOINIT}]
]
Ejemplo En este ejemplo se crea un dispositivo de copia de seguridad para el registro y
se hace la copia de seguridad del registro de transacciones de la base de datos
Northwind.
USE master
EXEC sp_addumpdevice 'disk', 'NwindBacLog',
'D:\Backup\NwindBacLog.bak'
BACKUP LOG Northwind TO NwindBacLog
Copia de seguridad de bases de datos 33
Ejemplo 2 En este ejemplo se utiliza la instrucción BACKUP LOG para quitar la parte
inactiva del registro de transacciones completo sin hacer una copia de
seguridad.
BACKUP LOG Northwind WITH NO_LOG
Cuando haga la copia de seguridad de una base de datos que conste de varios
archivos o grupos de archivos, puede que necesite hacer copias de seguridad de
varios archivos como una sola unidad si ha creado índices.
SQL Server detecta automáticamente si se ha creado un índice desde la última
copia de seguridad de un archivo de la base de datos y requiere que la copia de
seguridad del conjunto de todos los archivos afectados se realice como si se
tratara de una sola unidad.
Implementación empresarial
Debe hacer copias de seguridad completas de una base de datos si:
La base de datos es pequeña. La cantidad de tiempo que se requiere para
hacer la copia de seguridad de una base de datos pequeña es razonable.
La base de datos es de sólo lectura o sus datos sufren pocas modificaciones.
La copia de seguridad completa de la base de datos captura un conjunto de
datos razonablemente completo. Puede que desee conseguir una menor
pérdida de datos si se produce un error entre dos copias de seguridad y hay
que restaurar la base de datos.
Ejemplo de estrategia 1
Considere el siguiente ejemplo de un plan de copia de seguridad y los pasos que
debería realizar para restaurar la base de datos. Supongamos que:
La base de datos sólo contiene 10 megabytes (MB) de datos.
El proceso de la copia de seguridad completa de la base de datos dura unos
pocos minutos.
La base de datos se utiliza, principalmente, como ayuda en la toma de
decisiones y sufre pocas modificaciones al día.
La posibilidad de perder los cambios de la base de datos de un día es
aceptable. Dichos cambios se pueden volver a repetir fácilmente.
El administrador del sistema no desea supervisar el tamaño del registro ni
realizar ningún mantenimiento en el registro de transacciones.
La opción de base de datos trunc. log on chkpt. está establecida a True para
asegurar que el registro de transacciones se trunque con frecuencia. El
registro de transacciones no se utiliza para grabar los cambios de la base de
datos a lo largo del tiempo y no se puede utilizar para restaurar la base de
datos en el caso de un error del sistema.
La copia de seguridad completa de la base de datos se hace todas las noches
a las 6:00 p.m.
La base de datos se daña a las 10:00 a.m.
Proceso de restauración
Para recuperar la base de datos debe restaurar la copia de seguridad completa de
la base de datos a partir de la copia de las 6:00 p.m. del día anterior con el fin de
sobrescribir la versión dañada de la base de datos.
La limitación de esta solución es que se pierden todas las modificaciones
realizadas en los datos desde la última copia de seguridad.
Copia de seguridad de bases de datos 43
Ejemplo de estrategia 2
Considere el ejemplo siguiente de un plan de copia de seguridad y los pasos que
debería realizar para restaurar la base de datos. Suponga que la base de datos es
similar a la descrita en el ejemplo 1, con las excepciones siguientes:
La base de datos se modifica muy poco cada día, pero con mayor frecuencia
que la base de datos del ejemplo 1.
El administrador del sistema asume la responsabilidad de asegurar que haya
espacio suficiente en el registro de transacciones.
La opción de base de datos trunc. log on chkpt. está desactivada
(establecida a False). El registro de transacciones graba los cambios
realizados desde la última copia de seguridad completa de la base de datos y
se puede utilizar para restaurar o recuperar la base de datos si se produce un
error del sistema.
El registro de transacciones se almacena en un dispositivo físico distinto del
de la base de datos.
La copia de seguridad completa de la base de datos se hace todos los días a
las 6:00 p.m. Las copias de seguridad del registro de transacciones no se
hacen de forma regular, pero el registro de transacciones se limpia
periódicamente.
Proceso de restauración
Para recuperar la base de datos, debería realizar los siguientes pasos:
1. Haga la copia de seguridad del registro de transacciones sin truncar los datos
(opción NO_TRUNCATE).
2. Restaure la copia de seguridad completa de la base de datos, que se creó la
noche anterior a las 6:00 p.m., para sobrescribir la versión dañada de la base
de datos.
3. Restaure la copia de seguridad del registro de transacciones creada en el
paso 1 y recupere la base de datos.
Mediante esta técnica, puede recuperar los cambios realizados desde la copia de
seguridad de la noche anterior si el registro de transacciones no está dañado. Sin
embargo, si la posibilidad de perder datos es demasiado grande, debe considerar
la implementación de una estrategia de copia de seguridad que incluya la
realización periódica de copias de seguridad del registro de transacciones.
Copia de seguridad de bases de datos 44
Implementación empresarial
Establezca una estrategia de copia de seguridad completa de la base de datos y
del registro de transacciones para las bases de datos modificadas con mucha
frecuencia. También debe considerar si la copia de seguridad de la base de datos
y de los registros de transacciones se pueden hacer en un intervalo de tiempo
aceptable.
Copia de seguridad de bases de datos 45
Proceso de restauración
Para recuperar la base de datos, debería realizar los pasos siguientes:
1. Haga una copia de seguridad del registro de transacciones, si es posible.
Utilice la opción WITH NO_TRUNCATE.
2. Restaure la copia de seguridad completa de la base de datos que se creó la
noche anterior a las 6:00 p.m.
3. Aplique todos los registros de transacciones que se hayan creado durante el
día (9:00 a.m. y 12:00 p.m.).
4. Aplique la copia de seguridad del registro de transacciones que se ha creado
al comienzo del proceso de restauración (si se ha creado uno).
guridad de bases de datos 46
Ejemplo de estrategia
Estrategia de copia de seguridad
diferencial
Implementación empresarial
Utilice esta estrategia para reducir el tiempo de
recuperación si la base de datos se daña. Por
ejemplo, en lugar de aplicar varios registros de
transacciones grandes, puede utilizar una copia de
seguridad diferencial para aplicar los cambios que se
hayan efectuado en la base de datos desde la última
copia de seguridad completa de la base de datos.
Considere el siguiente ejemplo de un plan de copia de seguridad y los pasos que
debería realizar para restaurar la base de datos. Supongamos que:
Se hace una copia de seguridad completa de la base de datos una vez a la
semana. La última copia de seguridad completa de la base de datos se hizo
el domingo a la 1:00 a.m.
Todos los días, al terminar la jornada laboral, se hace una copia de
seguridad diferencial. Se han hecho copias de seguridad diferenciales el
lunes y el martes a las 6:00 p.m.
Las copias de seguridad del registro de transacciones se hacen cada hora,
durante la jornada laboral (entre las 8:00 a.m. y las 5:00 p.m.). Se han hecho
copias de seguridad del registro de transacciones a las 8:00 a.m. y a las 9:00
a.m. del miércoles.
La base de datos se daña a las 9:30 a.m. del miércoles.
Proceso de restauración
Para recuperar la base de datos, debería realizar los pasos siguientes:
1. Haga una copia de seguridad del registro de transacciones, si es posible.
Utilice la opción WITH NO_TRUNCATE.
2. Restaure la copia de seguridad completa de la base de datos que se creó el
domingo a la 1:00 a.m.
3. Restaure la copia de seguridad diferencial que se creó el martes a las 6:00
p.m. Este archivo de copia de seguridad es la copia de seguridad diferencial
más reciente y contiene todos los cambios realizados en la base de datos
guridad de bases de datos 48
Ejemplo de estrategia
desde la copia de seguridad completa de la base de datos del domingo a la
1:00 a.m.
4. Aplique las copias de seguridad del registro de transacciones creadas el
miércoles a las 8:00 a.m. y las 9:00 a.m.
5. Aplique la copia de seguridad del registro de transacciones que ha creado al
comienzo del proceso de restauración (paso 1) para asegurar la coherencia
de los datos.
Implementación empresarial
Utilice esta estrategia en las bases de datos de gran
tamaño (VLDB) que estén repartidas en varios
archivos. Cuando se combina con las copias de
seguridad regulares del registro de transacciones,
esta técnica ofrece una ventaja de tiempo sobre las
copias de seguridad completas de la base de datos.
Por ejemplo, si sólo dispone de una hora para hacer
la copia de seguridad completa de la base de datos
(que normalmente dura cuatro horas), podría hacer
la copia de seguridad de archivos individuales todas
las noches, con lo que se sigue asegurando la
coherencia de los datos.
Sin embargo, esta estrategia es complicada y no
mantiene la integridad referencial de forma
automática.
Considere el siguiente ejemplo de un plan de copia de seguridad y los pasos
que debería realizar para restaurar la base de datos. Supongamos que:
Los datos de la base de datos están divididos entre Archivo1, Archivo2 y
Archivo3.
Todas las semanas se hace una copia de seguridad completa de la base de
datos. La última copia de seguridad completa de la base de datos se hizo el
lunes a la 1:00 a.m.
Los archivos seleccionados se copian de forma rotativa, todos los días a la
1:00 a.m:
Archivo1 se copió el martes a la 1:00 a.m.
Archivo2 se copió el miércoles a la 1:00 a.m.
Archivo3 se copió el jueves a la 1:00 a.m.
Las copias de seguridad del registro de transacciones se hacen todos los días
a las 12:00 del mediodía y a las 6:00 p.m.
El jueves a las 8:00 a.m., se daña el medio físico de Archivo2.
Proceso de restauración
Para recuperar la base de datos, debería realizar los pasos siguientes:
1. Haga una copia de seguridad del registro de transacciones, si es posible.
guridad de bases de datos 50
Ejemplo de estrategia
Utilice la opción WITH NO_TRUNCATE.
2. Restaure la copia de seguridad de Archivo2 que se creó el miércoles a la
1:00 a.m.
3. Aplique todas las copias de seguridad del registro de transacciones que se
hayan creado desde la 1:00 a.m. del miércoles.
4. Aplique el registro de transacciones creado al comienzo del proceso de
restauración para recuperar los datos. Al aplicar todos los registros de
transacciones hace que los objetos de Archivo2 sean coherentes con el resto
de la base de datos.
Ejemplo de estrategia
Debe disminuir la cantidad de actividades
simultáneas cuando haga una copia de seguridad
de una base de datos. Las actividades simultáneas
en SQL Server pueden afectar al tiempo
necesario para hacer la copia de seguridad de la
base de datos.