• No se han encontrado resultados

Valvanuz García Velasco

N/A
N/A
Protected

Academic year: 2021

Share "Valvanuz García Velasco"

Copied!
26
0
0

Texto completo

(1)

COPIAS DE SEGURIDAD

COPIAS DE SEGURIDAD

SQL Server 2005

SQL Server 2005

(2)

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

(3)

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.

(4)

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

(5)

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)

(6)

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

(7)

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

(8)

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

(9)

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

(10)

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

(11)

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.

(12)

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

(13)

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.

(14)

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

(15)

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).

(16)

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

(17)

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

(18)

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 ] } ] [;]

(19)

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

(20)

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

(21)

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.

(22)

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

(23)

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.

(24)

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.

(25)

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.

(26)

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 ] ] [;]

Referencias

Documento similar