COPIAS DE SEGURIDAD
COPIAS DE SEGURIDAD
SQL Server 2005
SQL Server 2005
Copia de seguridad y restauración
Copia de seguridad y restauración
Protección esencial para los datos críticos
almacenados en las bases de datos.
Dos formas:
◦
1) Transact-SQL: comandos sql
◦
1) Transact-SQL: comandos sql
◦
2) Modo gráfico: SQL Server Management
Studio
Copia de Seguridad:
Copia de Seguridad: Transact
Transact--SQL I
SQL I
Copia de BD completa:
BACKUP DATABASE
database
TO
backup_device
[
,
...
n
]
[ WITH
with_options
[
,
...
o
] ] ;
database
: Es la base de datos cuya copia de seguridad se
database
: Es la base de datos cuya copia de seguridad se
desea hacer.
backup_device
[ ,...
n
]: Especifica una lista de 1 a 64
dispositivos de copia de seguridad que se pueden utilizar en
la operación de copia de seguridad. Puede especificar un
dispositivo físico de copia de seguridad o puede especificar
un dispositivo de copia de seguridad lógico correspondiente,
si ya se definió. Para especificar un dispositivo de copia de
seguridad físico, utilice las opciones DISK o TAPE.
Copia de Seguridad:
Copia de Seguridad: Transact
Transact--SQL II
SQL II
Opciones de WITH básicas del conjunto de copia de seguridad:{ COMPRESSION | NO_COMPRESSION } : si los datos se almacenan comprimidos o no.
DESCRIPTION = { 'text' | @text_variable }: texto sin formato que describe el conjunto de copia de seguridad.
NAME = { backup_set_name | @backup_set_name_var }: nombre del
conjunto de copia de seguridad. Si no se especifica NAME, está en blanco. NOINIT : De forma predeterminada, BACKUP DATABASE anexa la copia
de seguridad a un conjunto de medios existente, conservando los de seguridad a un conjunto de medios existente, conservando los conjuntos de copia de seguridad existentes. Para especificar esto explícitamente se utiliza la opción NOINIT.
FORMAT: para dar formato a los medios de copia de seguridad.
◦ FORMAT [ , MEDIANAME= { media_name | @media_name_variable } ] [ , MEDIADESCRIPTION = { text | @text_variable } ]
Cuando se emplea el medio por primera vez o cuando se desea
sobrescribir todos los datos existentes. De manera opcional, puede asignar a los nuevos medios un nombre y una descripción.
Importante: Mucho cuidado cuando se utiliza la cláusula FORMAT de la instrucción BACKUP, ya que destruye cualquier copia de seguridad
Modelo o Escenario de
Modelo o Escenario de
Recuperación
Recuperación
Configuración de la BD para el control de
las transacciones que el admón. de la BD
quiere realizar.
3 modelos de recuperación en SQL
3 modelos de recuperación en SQL
Server 2005
◦
Modelo Completo (Full)
◦
Modelo Simple (Simple)
Modelo de Recuperación Completo
Modelo de Recuperación Completo
(Full)
(Full)
Registra todas las operaciones del
registro de transacciones de la base de
datos.
Permite todas las opciones de
Permite todas las opciones de
recuperación.
Protección más alta, pero también más
ocupación del fichero de log.
Recuperación a un momento dado, y
Modelo de Recuperación Simple
Modelo de Recuperación Simple
Similar al modelo completo ya que también
registra las transacciones, pero se diferencia en
que no registra todas las operaciones de
transacciones, sólo lo hace de manera mínima y
las elimina una vez comprobadas. Recupera
las elimina una vez comprobadas. Recupera
hasta el último check point.
Este modelo no permite recuperar los registros
de transacciones que ya hayan sido truncados.
No permite backup de log
No recuperación a un determinado punto, sólo
Modelo de Recuperación de
Modelo de Recuperación de
Registro Masivo (
Registro Masivo (
Bulk_Logged
Bulk_Logged)
)
Este modelo registra de manera mínima
las operaciones de registro.
No apunta todas las operaciones
realizadas en la BD sino que anota las
realizadas en la BD sino que anota las
páginas modificadas.
Permite restaurar la base de datos hasta
el punto final en que ocurrió el fallo.
Utilizado en entornos con bajo nivel de
Modelo de Recuperación:
Modelo de Recuperación:
Configuración
Configuración
El modelo de recuperación es una
propiedad de la Base de Datos:
◦ Alter DataBase [NombredeBasedeDatos]
Set Recovery Full | Simple| Bulk_Logged
Para comprobar el modelo de recuperación
Para comprobar el modelo de recuperación
de las bases de datos del sistema:
◦ Select Name as [Base de Datos],
Recovery_Model_Desc As [Modelos de Recuperación ] From Sys.DataBases
Ejemplos:
Ejemplos:
Copia de seguridad en un disco
USE AdventureWorks; GO
BACKUP DATABASE AdventureWorks
TO DISK = 'Z:\SQLServerBackups\AdventureWorks.Bak' WITH FORMAT,
MEDIANAME = 'Z_SQLServerBackups',
NAME = 'Full Backup of AdventureWorks'; NAME = 'Full Backup of AdventureWorks'; GO
Copia de seguridad en una cinta
USE AdventureWorks; GO
BACKUP DATABASE AdventureWorks TO TAPE = '\\.\Tape0'
WITH NOINIT,
NAME = 'Full Backup of AdventureWorks'; GO
Copia de base de datos Diferencial I
Copia de base de datos Diferencial I
Sólo se realiza una copia de seguridad de las partes de la base
de datos que han cambiado desde la última copia de seguridad
de base de datos completa.
BACKUP DATABASE database_name TO <backup_device> WITH DIFFERENTIAL
Opciones:
◦ INIT para sobrescribir el medio de copia de seguridad y escribir la copia de seguridad como el primer archivo del medio de copia de seguridad. Si no existe
◦ INIT para sobrescribir el medio de copia de seguridad y escribir la copia de seguridad como el primer archivo del medio de copia de seguridad. Si no existe ningún encabezado de medio, se escribe uno automáticamente.
◦ SKIP e INIT para sobrescribir el medio de copia de seguridad, incluso si hay alguna copia de seguridad que aún no haya caducado en el medio de copia de seguridad o si el nombre del medio no coincide con el nombre del medio de copia de seguridad.
◦ La cláusula FORMAT cuando se utiliza el medio por primera vez para inicializar el medio de copia de seguridad y sobrescribir cualquier encabezado de medio existente.
Copia de base de datos Diferencial
Copia de base de datos Diferencial
II
II
Importante:
◦
No se puede crear una copia de seguridad de
base de datos diferencial a menos que se haya
creado antes una copia de seguridad de la base
de datos.
◦
FORMAT o INIT destruyen cualquier copia de
◦
FORMAT o INIT destruyen cualquier copia de
seguridad almacenada previamente en el medio
de copia de seguridad
Ejemplo:
BACKUP DATABASE MyAdvWorks
TO MyAdvWorks_1
WITH DIFFERENTIAL
GO
Copia de seguridad del registro de
Copia de seguridad del registro de
transacciones I
transacciones I
BACKUP LOG
Opciones:
{ NORECOVERY | STANDBY = undo_file_name }
NORECOVERY: Realiza una copia de seguridad del final del registro y deja la base de datos en el estado RESTORING.
STANDBY = standby_file_name: Realiza una copia de seguridad del final del registro y deja la base de datos en modo de sólo lectura y en el estado STANDBY. La cláusula STANDBY escribe datos en espera (realiza la STANDBY. La cláusula STANDBY escribe datos en espera (realiza la reversión, pero con la posibilidad de recuperaciones posteriores).
◦ El uso del modo de espera requiere un archivo en espera especificado mediante
standby_file_name, cuya ubicación se almacena en el registro de la base de datos. Si el archivo especificado ya existe, Database Engine (Motor de base de datos) lo
sobrescribe; si no existe, Database Engine (Motor de base de datos) lo crea. El archivo en espera pasa a formar parte de la base de datos.
◦ Este archivo contiene los cambios revertidos, que se deben invertir si las operaciones RESTORE LOG se van a aplicar posteriormente. Debe haber suficiente espacio en disco para permitir el crecimiento del archivo en espera de manera que pueda
contener todas las páginas distintas de la base de datos que se modificaron al revertir las transacciones sin confirmar.
Copia de seguridad del registro de
Copia de seguridad del registro de
transacciones II
transacciones II
NO_TRUNCATE: Especifica que el registro no se va a truncar y hace que Database Engine (Motor de base de datos) intente hacer la copia de
seguridad con independencia del estado de la base de datos. Por consiguiente, una copia de seguridad realizada con NO_TRUNCATE puede tener metadatos incompletos. Esta opción permite realizar copias de seguridad del registro cuando la base de datos está dañada. La opción NO_TRUNCATE de BACKUP LOG es equivalente a la especificación de COPY_ONLY y CONTINUE_AFTER_ERROR.
Sin la opción NO_TRUNCATE, la base de datos debe estar en el estado Sin la opción NO_TRUNCATE, la base de datos debe estar en el estado ONLINE. Si la base de datos está en el estado SUSPENDED, podría crear una copia de seguridad especificando NO_TRUNCATE. Pero si la base de datos se encuentra en el estado OFFLINE o EMERGENCY, no se admite BACKUP, ni siquiera con NO_TRUNCATE.
Ejemplo:
BACKUP LOG MyAdvWorks_FullRM TO MyAdvWorks_FullRM_log1 GO
Copia de seguridad de archivos y
Copia de seguridad de archivos y
grupos de archivos I
grupos de archivos I
Cuando el tamaño y los requisitos de
rendimiento de la base de datos hagan
que no sea práctico realizar una copia de
seguridad completa de la base de datos,
seguridad completa de la base de datos,
se puede crear una copia de seguridad de
archivo en su lugar.
Una
copia de seguridad de archivo
contiene
todos los datos de uno o varios archivos
(o grupos de archivos).
Copia de seguridad de archivos y
Copia de seguridad de archivos y
grupos de archivos II
grupos de archivos II
BACKUP DATABASE
database
{ FILE
=
logical_file_name
| FILEGROUP
=
logical_filegroup_name
} [
,
...
f
]
TO
backup_device
[
,
...
n
]
[ WITH
with_options
[
,
...
o
] ] ;
Ejemplos:
Ejemplos:
◦
Crear una copia de seguridad de archivos de
dos archivos:
BACKUP DATABASE Sales FILE = 'SGrp1Fi2', FILE = 'SGrp2Fi2'
TO DISK = 'G:\SQL Server Backups\Sales\SalesGroup1.bck‘ GO
Copia de seguridad de archivos y
Copia de seguridad de archivos y
grupos de archivos III
grupos de archivos III
Ejemplo: Copia de seguridad completa de
archivos de los grupos de archivos
secundarios
BACKUP DATABASE Sales FILEGROUP = 'SalesGroup1', FILEGROUP = 'SalesGroup1', FILEGROUP = 'SalesGroup2'
TO DISK = 'C:\MySQLServer\Backups\Sales\SalesFiles.bck‘ GO
Copia de seguridad parcial I
Copia de seguridad parcial I
Una copia de seguridad parcial incluye todos los archivos de
lectura/escritura de una base de datos: el grupo de archivos
principal y los grupos de archivos secundarios de
lectura/escritura, así como los grupos de archivos o archivos
de sólo lectura especificados.
READ_WRITE_FILEGROUPS: Especifica que en la copia de
seguridad parcial se copiarán todos los grupos de archivos de
READ_WRITE_FILEGROUPS: Especifica que en la copia de
seguridad parcial se copiarán todos los grupos de archivos de
lectura/escritura. Si la base de datos es de sólo lectura,
READ_WRITE_FILEGROUPS incluye tan sólo el grupo de
archivos principal.
BACKUP DATABASE { database_name | @database_name_var } READ_WRITE_FILEGROUPS [ , <read_only_filegroup> [ ,...n ] ] TO <backup_device> [ ,...n ]
[ <MIRROR TO clause> ] [ next-mirror-to ]
[ WITH { DIFFERENTIAL | <general_WITH_options> [ ,...n ] } ] [;]
Copia de seguridad en más de un
Copia de seguridad en más de un
dispositivo I
dispositivo I
MIRROR TO <backup_device> [
,
...
n
]
Especifica un conjunto de hasta tres
dispositivos de copia de seguridad, cada uno
de los cuales reflejará los dispositivos de
copia de seguridad especificados en la
copia de seguridad especificados en la
cláusula TO.
La cláusula MIRROR TO debe incluir el
mismo número y tipo de dispositivos de
copia de seguridad que la cláusula TO.
El número máximo de cláusulas MIRROR TO
Copia de seguridad en más de un
Copia de seguridad en más de un
dispositivo II
dispositivo II
BACKUP DATABASE AdventureWorksTO
DISK='X:\SQLServerBackups\AdventureWorks1a.bak', DISK='Y:\SQLServerBackups\AdventureWorks2a.bak', DISK='Z:\SQLServerBackups\AdventureWorks3a.bak‘ MIRROR TO DISK='X:\SQLServerBackups\AdventureWorks1b.bak', DISK='Y:\SQLServerBackups\AdventureWorks2b.bak', DISK='Z:\SQLServerBackups\AdventureWorks3b.bak'; DISK='Z:\SQLServerBackups\AdventureWorks3b.bak'; GO
Opciones de copia de seguridad
Opciones de copia de seguridad
Opciones de conjunto de copia de
seguridad:
◦
COPY_ONLY: Especifica que la copia de seguridad es
una
copia de seguridad de sólo copia
, que no afecta a la
secuencia normal de copias de seguridad. Se crea una
copia de seguridad de sólo copia independientemente
copia de seguridad de sólo copia independientemente
de las copias de seguridad convencionales
programadas regularmente.
◦
{ EXPIREDATE
= '
date
'
| RETAINDAYS
=
días
}
EXPIREDATE
=
{
'
date
'
|
@
date_var
}: Especifica cuándo expira
el conjunto de copia de seguridad y se puede sobrescribir.
RETAINDAYS
=
{
days
|
@
days_var
}: Especifica el número de
días que deben transcurrir antes de que se pueda sobrescribir
este conjunto de medios de copia de seguridad.
Restauración y recuperación de
Restauración y recuperación de
bases de datos SQL Server
bases de datos SQL Server
R
estauración
: proceso de copiar datos desde una
copia de seguridad y aplicar transacciones
registradas a los datos para ponerlos al día hasta
el punto de recuperación de destino.
Cada copia de seguridad contiene suficientes
registros para revertir las transacciones no
Cada copia de seguridad contiene suficientes
registros para revertir las transacciones no
confirmadas y llevar la base de datos a un estado
coherente con la transacción y utilizable.
El proceso de poner al día las transacciones no
confirmadas, si las hay, y poner la base de datos en
Secuencias de restauración
Secuencias de restauración
Cada escenario de restauración se
implementa mediante uno o varios pasos
de restauración (operaciones), lo que se
denomina
secuencia de restauración
. Cada
denomina
secuencia de restauración
. Cada
operación corresponde a una instrucción
RESTORE de Transact-SQL independiente.
Una secuencia de restauración mueve los
datos afectados a través de una o varias
fases de la restauración.
Fases de restauración
Fases de restauración
Una restauración es un proceso de varias fases. Las fases posibles de una restauración incluyen las fases de copia de datos, rehacer (puesta al día) y deshacer (revertir):
1.- Copia de datos: implica copiar todos los datos, el registro y las páginas de índice desde el medio de copia de seguridad de una base de datos a los archivos de la base de datos.
2.- Rehacer: aplica las transacciones registradas a los datos copiados desde la copia de seguridad para poner al día esos datos hasta el punto de
la copia de seguridad para poner al día esos datos hasta el punto de recuperación. Normalmente, en este punto una base de datos tiene
transacciones no confirmadas y se encuentra en un estado inutilizable. En ese caso, se requiere una fase de deshacer como parte de la recuperación de la base de datos.
3.- Deshacer: es la primera parte de la recuperación, revierte cualquier transacción no confirmada y hace que la base de datos esté disponible para los usuarios. Después de la fase de reversión, no se pueden restaurar las copias de seguridad subsiguientes.
Relación de RECOVERY y
Relación de RECOVERY y
NORECOVERY con las fases de
NORECOVERY con las fases de
restauración
restauración
WITH RECOVERY recupera la base de datos e incluye las fases de rehacer y deshacer; no se pueden restaurar otras copias de seguridad. Es el valor
predeterminado.
Si el conjunto de puestas al día no se ha puesto al día lo suficiente para ser
coherente con la base de datos, la fase de deshacer no se podrá producir. Database Engine (Motor de base de datos) emitirá un error y la recuperación se detendrá. Si todo el conjunto de puestas al día es coherente con la base de datos, se realizará Engine (Motor de base de datos) emitirá un error y la recuperación se detendrá. Si todo el conjunto de puestas al día es coherente con la base de datos, se realizará la recuperación y se podrá conectar la base de datos.
WITH NORECOVERY omite la fase de deshacer para preservar las transacciones no confirmadas. Al omitir la fase de deshacer, se pueden restaurar otras copias de seguridad para poner al día la base de datos a un momento posterior. A veces,
RESTORE WITH NORECOVERY pone al día los datos hasta donde son coherentes con la base de datos. En estos casos, Database Engine (Motor de base de datos) emite un mensaje informativo indicando que el conjunto de puestas al día se puede recuperar mediante la opción RECOVERY.
Recuperación de una BD completa
Recuperación de una BD completa
RESTORE DATABASE { database_name | @database_name_var } [ FROM <backup_device> [ ,...n ] ]
[ WITH {
[ RECOVERY | NORECOVERY | STANDBY = {standby_file_name | @standby_file_name_var } ] | , <general_WITH_options> [ ,...n ] | , <replication_WITH_option> | , <change_data_capture_WITH_option> | , <service_broker_WITH options> | , <point_in_time_WITH_options—RESTORE_DATABASE> } [ ,...n ] ] [;]