Documente Academic
Documente Profesional
Documente Cultură
de datos
Contenido
Introducción 1
Impedir la pérdida de los datos 2
Establecimiento y cambio de un modelo
de recuperación de bases de datos 4
Copia de seguridad de SQL Server 6
Cuándo se hacen las copias de
seguridad de las bases de datos 8
Ejecución de copias de seguridad 14
Tipos de métodos de copia de seguridad 27
Diseño de una estrategia de copia
de seguridad 42
Consideraciones acerca del rendimiento 52
Copia de seguridad de bases de datos i
Introducción
Objetivo del tema
Proporcionar una introduc-
ción a los temas y objetivos Impedir la pérdida de los datos
del módulo.
Establecimiento y cambio de un modelo de
Explicación previa recuperación de bases de datos
Utilizar una estrategia
de copia de seguridad Copia de seguridad de SQL Server
es esencial en el manteni-
miento de una base de Cuándo se hacen las copias de seguridad de las bases
datos. de datos
Ejecución de copias de seguridad
Tipos de métodos de copia de seguridad
Diseño de una estrategia de copia de seguridad
ALTER
ALTER DATABASE
DATABASE Northwind
Northwind
SET
SET RECOVERY
RECOVERY BULK_LOGGED
BULK_LOGGED
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
Punto clave de copia de seguridad.
Explique que el proceso
de copia de seguridad de El proceso de copia de seguridad de SQL Server es dinámico y, salvo
SQL Server es dinámico algunas excepciones, puede tener lugar mientras la base de datos está en
y describa cómo se funcionamiento y se está modificando. El proceso de copia de seguridad
desarrolla. dinámica se produce cuando SQL Server:
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.
Copia de seguridad de bases de datos 7
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
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.
Copia de seguridad de bases de datos 15
USE
USE master
master
EXEC
EXEC sp_addumpdevice
sp_addumpdevice 'disk',
'disk', 'mybackupfile',
'mybackupfile',
'C:\Backup\MyBackupFile.bak'
'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.
USE master
EXEC sp_addumpdevice 'tape', 'mytape1', '\\.\tape0'
Copia de seguridad de bases de datos 17
toss
e ddaato
pBB1
1
SQL Server puede escribir
ckuup
se dde
en varios archivos de
BBaack
e
d bbaas
copia de seguridad al
ridaad
mismo tiempo (en paralelo). Conjunto
Media
Media Set
Setde
Conjunto de medios
medios
eguurid
Se puede hacer una copia File 1
Archivo1 File 2
Archivo2 File 3
Archivo3
ia sseg
de seguridad en un conjunto Conjunto
Backup
Backup Set
Conjunto de
Set
de CopiaA1
BackupA1 CopiaA1
BackupA1 CopiaA1
BackupA1
BackupB1
CCooppia
de copia de seguridad para copia
copia de
de BackupA2
CopiaA2 BackupA2
CopiaA2 BackupA2
CopiaA2
reducir la duración total de seguridad
seguridad BackupA3
CopiaA3 BackupA3
CopiaA3 BackupA3
CopiaA3
la copia y la restauración CopiaB1 CopiaB1 CopiaB1
de la base de datos.
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.
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 26
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.
Copia de seguridad de bases de datos 27
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
Copia de seguridad de bases de datos 29
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 31
Cuando haga una copia de seguridad diferencial, tenga en cuenta los siguientes
Puntos clave hechos e instrucciones:
Señale que se debe
utilizar una convención de Si una determinada fila de la base de datos ha sido modificada varias veces
denominación para los desde la última copia de seguridad completa de la base de datos, la copia de
archivos que contienen
seguridad diferencial sólo contiene el último conjunto de valores de esa fila.
copias de seguridad
diferenciales, de forma Esto es diferente de una copia de seguridad del registro de transacciones,
que puedan distinguirse que contiene un historial de los cambios en las filas.
de los archivos que Disminuye el tiempo necesario para hacer la copia de seguridad de una base
contienen copias de de datos porque los conjuntos de copia de seguridad son más pequeños que
seguridad completas los de las copias de seguridad completas.
de la base de datos.
Disminuye el tiempo necesario para restaurar una base de datos porque no
hay que aplicar varios registros de transacciones.
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.
Sintaxis parcial BACKUP DATABASE {nombreBaseDeDatos | @varNombreBaseDeDatos}
TO <dispositivoDeCopia> [, ...n]
[WITH
[DIFFERENTIAL]
]
Ejemplo En este ejemplo se crea una copia de seguridad diferencial en un archivo de
copia de seguridad temporal.
BACKUP DATABASE Northwind TO
DISK = 'D:\MyData\MyDiffBackup.bak'
WITH DIFFERENTIAL
Copia de seguridad de bases de datos 32
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
Ejemplo En este ejemplo se hace la copia de seguridad del archivo Orders2 de un grupo
de archivos de una base de datos. La base de datos PhoneOrders consta de
tres archivos: Orders1, Orders2 y Orders3. El registro de transacciones está
almacenado en el archivo OrderLog. Ya existen los siguientes archivos de
copia de seguridad: OrderBackup1, OrderBackup2, OrderBackup3 y
OrderBackupLog.
BACKUP DATABASE PhoneOrders
FILE = Orders2 TO OrderBackup2
BACKUP LOG PhoneOrders to OrderBackupLog
Copia de seguridad de bases de datos 39
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 44
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 45
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 46
Ejemplo de estrategia
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 y los registros de transacciones están almacenados en
archivos y medios físicos independientes.
La copia de seguridad completa de la base de datos se hace todas las noches
a las 6:00 p.m.
Las copias de seguridad del registro de transacciones se hacen todos los días
a las 9:00 a.m., a las 12:00 del mediodía y a las 3:00 p.m.
El medio físico que contiene la base de datos se daña a la 1:30 p.m.
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).
Copia de seguridad de bases de datos 47
Explicación previa
Puede hacer una copia
de seguridad diferencial
además de la copia de Lunes Martes
Lunes Martes
seguridad completa de la
base de datos y del registro
de transacciones.
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.
Copia de seguridad de bases de datos 48
Ejemplo de estrategia
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
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.
Copia de seguridad de bases de datos 49
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.
Copia de seguridad de bases de datos 50
Ejemplo de estrategia
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.
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.