copias de seguridad sql server 2008 msc. alexis cabrera mondeja 1

43
COPIAS DE SEGURIDAD SQL Server 2008 MSc. Alexis Cabrera Mondeja 1

Upload: soledad-escobar-cordoba

Post on 24-Jan-2016

223 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: COPIAS DE SEGURIDAD SQL Server 2008 MSc. Alexis Cabrera Mondeja 1

COPIAS DE SEGURIDADSQL Server 2008

MSc. Alexis Cabrera Mondeja

1

Page 2: COPIAS DE SEGURIDAD SQL Server 2008 MSc. Alexis Cabrera Mondeja 1

Copia de seguridad y restauración

Protección esencial para los datos críticosalmacenados en las bases de datos.

Dos formas:◦ 1) Transact-SQL: comandos sql

◦ 2) Modo gráfico: SQL Server ManagementStudio

2

Page 3: COPIAS DE SEGURIDAD SQL Server 2008 MSc. Alexis Cabrera Mondeja 1

Copia de Seguridad: Transact-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 sedesea hacer.

backup_device [ ,...n ]: Especifica una lista de 1 a 64dispositivos de copia de seguridad que se pueden utilizar enla operación de copia de seguridad. Puede especificar undispositivo físico de copia de seguridad o puede especificarun dispositivo de copia de seguridad lógico correspondiente,si ya se definió. Para especificar un dispositivo de copia deseguridad físico, utilice las opciones DISK o TAPE.

3

Page 4: COPIAS DE SEGURIDAD SQL Server 2008 MSc. Alexis Cabrera Mondeja 1

Copia de Seguridad: Transact-SQL IIOpciones de WITH básicas del conjunto de copia de seguridad:{ COMPRESSION | NO_COMPRESSION } : si los datos se almacenancomprimidos o no.

DESCRIPTION = { 'text' | @text_variable }: texto sin formato que describeel conjunto de copia de seguridad.

NAME = { backup_set_name | @backup_set_name_var }: nombre delconjunto de copia de seguridad. Si no se especifica NAME, está en blanco.

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 deseasobrescribir todos los datos existentes. De manera opcional, puede asignara los nuevos medios un nombre y una descripción.Importante: Mucho cuidado cuando se utiliza la cláusula FORMAT de lainstrucción BACKUP, ya que destruye cualquier copia de seguridadexistente en el medio de copia de seguridad.

4

Page 5: COPIAS DE SEGURIDAD SQL Server 2008 MSc. Alexis Cabrera Mondeja 1

Modelo o Escenario deRecuperación

Configuración de la BD para el control delas transacciones que el admón. de la BDquiere realizar.

3 modelos de recuperación en SQLServer 2008◦ Modelo Completo (Full)

◦ Modelo Simple (Simple)

◦ Modelo de Registro Masivo (Bulk-logged)

5

Page 6: COPIAS DE SEGURIDAD SQL Server 2008 MSc. Alexis Cabrera Mondeja 1

Modelo de Recuperación Completo(Full)Registra todas las operaciones delregistro de transacciones de la base dedatos.

Permite todas las opciones derecuperación.

Protección más alta, pero también másocupación del fichero de log.

Recuperación a un momento dado, yrecuperación de cola de backup.

6

Page 7: COPIAS DE SEGURIDAD SQL Server 2008 MSc. Alexis Cabrera Mondeja 1

Modelo de Recuperación SimpleSimilar al modelo completo ya que tambiénregistra las transacciones, pero se diferencia enque no registra todas las operaciones detransacciones, sólo lo hace de manera mínima ylas elimina una vez comprobadas.

Este modelo no permite recuperar los registrosde transacciones que ya hayan sido truncados.

No permite backup de log

No recuperación a un determinado punto, sóloal último (puede haber pérdida de datos).

7

Page 8: COPIAS DE SEGURIDAD SQL Server 2008 MSc. Alexis Cabrera Mondeja 1

Modelo de Recuperación deRegistro Masivo (Bulk_Logged)

Este modelo registra de manera mínimalas operaciones de registro.

No apunta todas las operacionesrealizadas en la BD sino que anota laspáginas modificadas.

Permite restaurar la base de datos hastael punto final en que ocurrió el fallo.

Utilizado en entornos con bajo nivel deactualizaciones.

8

Page 9: COPIAS DE SEGURIDAD SQL Server 2008 MSc. Alexis Cabrera Mondeja 1

Modelo de Recuperación:Configuración

El modelo de recuperación es unapropiedad de la Base de Datos:

◦ Alter DataBase [NombredeBasedeDatos]

Set Recovery Full | Simple| Bulk_Logged

Para comprobar el modelo de recuperaciónde las bases de datos del sistema:

◦ Select Name as [Base de Datos],

Recovery_Model_Desc As [Modelos deRecuperación ] From Sys.DataBases

9

Page 10: COPIAS DE SEGURIDAD SQL Server 2008 MSc. Alexis Cabrera Mondeja 1

Ejemplos:Copia de seguridad en un disco

USE negocios2012;GOBACKUP DATABASE negocios2012

TO DISK = ‘e:\SQLServerBackups\negocios2012.Bak'---WITH FORMAT,

MEDIANAME = 'Z_SQLServerBackups',DESCRIPTION = ' Backup completo de negocios2012 ';GO

10

Page 11: COPIAS DE SEGURIDAD SQL Server 2008 MSc. Alexis Cabrera Mondeja 1

Copia de base de datos Diferencial ISólo se realiza una copia de seguridad de las partes de la basede datos que han cambiado desde la última copia de seguridadde base de datos completa.

BACKUP DATABASE database_name TO <backup_device> WITHDIFFERENTIAL

Opciones:

◦ INIT para sobrescribir el medio de copia de seguridad y escribir la copia deseguridad como el primer archivo del medio de copia de seguridad. Si no existeningún encabezado de medio, se escribe uno automáticamente.

◦ SKIP e INIT para sobrescribir el medio de copia de seguridad, incluso si hayalguna copia de seguridad que aún no haya caducado en el medio de copia deseguridad o si el nombre del medio no coincide con el nombre del medio decopia de seguridad.

◦ La cláusula FORMAT cuando se utiliza el medio por primera vez para inicializarel medio de copia de seguridad y sobrescribir cualquier encabezado de medioexistente.

La cláusula INIT no es necesaria si se especifica la cláusula FORMAT.

11

Page 12: COPIAS DE SEGURIDAD SQL Server 2008 MSc. Alexis Cabrera Mondeja 1

Copia de base de datos Diferencial II

Importante:◦ No se puede crear una copia de seguridad debase de datos diferencial a menos que se hayacreado antes una copia de seguridad de la basede datos.◦ FORMAT o INIT destruyen cualquier copia deseguridad almacenada previamente en el mediode copia de seguridad

Ejemplo:BACKUP DATABASE MyAdvWorksTO MyAdvWorks_1WITH DIFFERENTIALGO

12

Page 13: COPIAS DE SEGURIDAD SQL Server 2008 MSc. Alexis Cabrera Mondeja 1

Copia de seguridad del registro detransacciones I

BACKUP LOG

Opciones:

{ NORECOVERY | STANDBY = undo_file_name }NORECOVERY: Realiza una copia de seguridad del final del registro y dejala base de datos en el estado RESTORING.

STANDBY = standby_file_name: Realiza una copia de seguridad del final delregistro y deja la base de datos en modo de sólo lectura y en el estadoSTANDBY. La cláusula STANDBY escribe datos en espera (realiza lareversión, pero con la posibilidad de recuperaciones posteriores).

◦ El uso del modo de espera requiere un archivo en espera especificado mediantestandby_file_name, cuya ubicación se almacena en el registro de la base de datos. Si elarchivo especificado ya existe, Database Engine (Motor de base de datos) losobrescribe; si no existe, Database Engine (Motor de base de datos) lo crea. El archivoen espera pasa a formar parte de la base de datos.

◦ Este archivo contiene los cambios revertidos, que se deben invertir si las operacionesRESTORE LOG se van a aplicar posteriormente. Debe haber suficiente espacio endisco para permitir el crecimiento del archivo en espera de manera que puedacontener todas las páginas distintas de la base de datos que se modificaron al revertirlas transacciones sin confirmar.

13

Page 14: COPIAS DE SEGURIDAD SQL Server 2008 MSc. Alexis Cabrera Mondeja 1

Copia de seguridad del registro detransacciones II

NO_TRUNCATE: Especifica que el registro no se va a truncar y hace queDatabase Engine (Motor de base de datos) intente hacer la copia deseguridad con independencia del estado de la base de datos. Porconsiguiente, una copia de seguridad realizada con NO_TRUNCATEpuede tener metadatos incompletos. Esta opción permite realizar copiasde seguridad del registro cuando la base de datos está dañada. La opciónNO_TRUNCATE de BACKUP LOG es equivalente a la especificación deCOPY_ONLY y CONTINUE_AFTER_ERROR.

Sin la opción NO_TRUNCATE, la base de datos debe estar en el estadoONLINE. Si la base de datos está en el estado SUSPENDED, podría crearuna copia de seguridad especificando NO_TRUNCATE. Pero si la base dedatos se encuentra en el estado OFFLINE o EMERGENCY, no se admiteBACKUP, ni siquiera con NO_TRUNCATE.

Ejemplo:BACKUP LOG negocios2012_FullRMTO negocios2012_FullRM_log1GO

14

Page 15: COPIAS DE SEGURIDAD SQL Server 2008 MSc. Alexis Cabrera Mondeja 1

Copia de seguridad de archivos ygrupos de archivos I

Cuando el tamaño y los requisitos derendimiento de la base de datos haganque no sea práctico realizar una copia deseguridad completa de la base de datos,se puede crear una copia de seguridad dearchivo en su lugar.

Una copia de seguridad de archivo contienetodos los datos de uno o varios archivos(o grupos de archivos).

15

Page 16: COPIAS DE SEGURIDAD SQL Server 2008 MSc. Alexis Cabrera Mondeja 1

Copia de seguridad de archivos ygrupos de archivos II

BACKUP DATABASE database

{ FILE = logical_file_name | FILEGROUP =logical_filegroup_name } [ ,...f ]TO backup_device [ ,...n ][ WITH with_options [ ,...o ] ] ;

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

16

Page 17: COPIAS DE SEGURIDAD SQL Server 2008 MSc. Alexis Cabrera Mondeja 1

Copia de seguridad de archivos ygrupos de archivos III

Ejemplo: Copia de seguridad completa dearchivos de los grupos de archivossecundarios

BACKUP DATABASE Sales

FILEGROUP = 'SalesGroup1',

FILEGROUP = 'SalesGroup2'

TO DISK = 'C:\MySQLServer\Backups\Sales\SalesFiles.bck‘

GO

17

Page 18: COPIAS DE SEGURIDAD SQL Server 2008 MSc. Alexis Cabrera Mondeja 1

Copia de seguridad parcial I

Una copia de seguridad parcial incluye todos los archivos delectura/escritura de una base de datos: el grupo de archivosprincipal y los grupos de archivos secundarios delectura/escritura, así como los grupos de archivos o archivosde sólo lectura especificados.READ_WRITE_FILEGROUPS: Especifica que en la copia deseguridad parcial se copiarán todos los grupos de archivos delectura/escritura. Si la base de datos es de sólo lectura,READ_WRITE_FILEGROUPS incluye tan sólo el grupo dearchivos 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 ] } ][;]

18

Page 19: COPIAS DE SEGURIDAD SQL Server 2008 MSc. Alexis Cabrera Mondeja 1

Copia de seguridad en más de undispositivo I

MIRROR TO <backup_device> [ ,...n ]

Especifica un conjunto de hasta tresdispositivos de copia de seguridad, cada unode los cuales reflejará los dispositivos decopia de seguridad especificados en lacláusula TO.La cláusula MIRROR TO debe incluir elmismo número y tipo de dispositivos decopia de seguridad que la cláusula TO.El número máximo de cláusulas MIRROR TOes tres.

19

Page 20: COPIAS DE SEGURIDAD SQL Server 2008 MSc. Alexis Cabrera Mondeja 1

Copia de seguridad en más de undispositivo II

BACKUP DATABASE AdventureWorksTODISK='X:\SQLServerBackups\AdventureWorks1a.bak',DISK='Y:\SQLServerBackups\AdventureWorks2a.bak',DISK='Z:\SQLServerBackups\AdventureWorks3a.bak‘

MIRROR TODISK='X:\SQLServerBackups\AdventureWorks1b.bak',DISK='Y:\SQLServerBackups\AdventureWorks2b.bak',DISK='Z:\SQLServerBackups\AdventureWorks3b.bak';

GO

20

Page 21: COPIAS DE SEGURIDAD SQL Server 2008 MSc. Alexis Cabrera Mondeja 1

Opciones de copia de seguridad

Opciones de conjunto de copia deseguridad:

◦ COPY_ONLY: Especifica que la copia de seguridad esuna copia de seguridad de sólo copia, que no afecta a lasecuencia normal de copias de seguridad. Se crea unacopia de seguridad de sólo copia independientementede las copias de seguridad convencionalesprogramadas regularmente.◦ { EXPIREDATE = 'date' | RETAINDAYS = días }

EXPIREDATE = { 'date' | @date_var }: Especifica cuándo expirael conjunto de copia de seguridad y se puede sobrescribir.RETAINDAYS = { days | @days_var }: Especifica el número dedías que deben transcurrir antes de que se pueda sobrescribireste conjunto de medios de copia de seguridad.

21

Page 22: COPIAS DE SEGURIDAD SQL Server 2008 MSc. Alexis Cabrera Mondeja 1

Realizar una copia de seguridad de la base de datos y el registro

En el ejemplo siguiente se realiza la copia de seguridad de la base de datos de ejemplo negocios2012 , que usa de forma predeterminada un modelo de recuperación simple. Para admitir las copias de seguridad del registro, la base de datos negocios2012 se ha modificado para usar el modelo de recuperación completa.

A continuación, en el ejemplo se usa sp_addumpdevice para crear un dispositivo de copia de seguridad lógico para realizar la copia de seguridad de datos,AdvWorksData, y se crea un dispositivo de copia de seguridad lógico para copiar el registro, AdvWorksLog.

A continuación, en el ejemplo se crea una copia de seguridad de base de datos completa en negociosData y, tras un periodo de actividad de actualización, se copia el registro en negociosLog.

Page 23: COPIAS DE SEGURIDAD SQL Server 2008 MSc. Alexis Cabrera Mondeja 1

Crear una copia de seguridad de archivos completa de los grupos de archivos secundarios

En el ejemplo siguiente se crea una copia de seguridad de archivos completa de cada archivo en los dos grupos de archivos secundarios.

--Back up archivos de SalesGroup1:

BACKUP DATABASE Sales FILEGROUP = 'SalesGroup1', FILEGROUP = 'SalesGroup2' TO DISK = ‘E:\SalesFiles.bck';GO

Page 24: COPIAS DE SEGURIDAD SQL Server 2008 MSc. Alexis Cabrera Mondeja 1

Crear una copia de seguridad de archivos diferencial de los grupos de archivos secundarios

En el ejemplo siguiente se crea una copia de seguridad de archivos diferencial de la base de datos negocios2012.

--Back up the files in SalesGroup1:

BACKUP DATABASE negocios2012 TO DISK= 'E:\negociosData.bak' WITH DIFFERENTIAL; GO

Page 25: COPIAS DE SEGURIDAD SQL Server 2008 MSc. Alexis Cabrera Mondeja 1

Crear una copia de seguridad comprimida en un nuevo conjunto de medios

En el ejemplo siguiente se realiza una copia de seguridad completa comprimida de la base de datos negocios2012 .

BACKUP DATABASE negocios2012 TO DISK= 'E:\negociosData.bak' WITH COMPRESSION;

Page 26: COPIAS DE SEGURIDAD SQL Server 2008 MSc. Alexis Cabrera Mondeja 1

sp_addumpdeviceAgrega un dispositivo de copia de seguridad a una instancia del SQL Server 2005 Database

sp_addumpdevice [ @devtype = ] 'device_type‘, [ @logicalname = ] 'logical_name‘, [ @physicalname = ] 'physical_name‘ [ , { [ @cntrltype = ] controller_type | [ @devstatus = ] 'device_status' } ]

sp_addumpdevice agrega un dispositivo de copia de seguridad a la vista de catálogo sys.backup_devices. Después, se puede hacer referencia al dispositivo de forma lógica en las instrucciones BACKUP y RESTORE. sp_addumpdevice no lleva a cabo el acceso al dispositivo físico. El acceso al dispositivo especificado sólo se produce cuando se ejecuta una instrucción BACKUP o RESTORE. La creación de un dispositivo lógico de copia de seguridad puede simplificar las instrucciones BACKUP y RESTORE, en las que se puede especificar el nombre del dispositivo como alternativa mediante una cláusula "TAPE =" o "DISK =" para indicar la ruta de acceso del dispositivo.Los problemas de propiedad y permisos pueden interferir en el uso de los dispositivos de copia de seguridad de disco o de archivo. Asegúrese de que la cuenta de Windows con la que se inicia el Database Engine (Motor de base de datos) disponga de los permisos de archivo apropiados.

Page 27: COPIAS DE SEGURIDAD SQL Server 2008 MSc. Alexis Cabrera Mondeja 1

Agregar un dispositivo de copia de seguridad de disco de red

En el ejemplo siguiente se muestra cómo agregar un dispositivo de copia de seguridad de disco remoto llamado networkdevice. El nombre con el que el Database Engine (Motor de base de datos) se ha iniciado debe tener permisos de acceso al archivo remoto (\\<servername>\<sharename>\<path>\<filename>.bak).

USE master; GO EXEC sp_addumpdevice 'disk', 'networkdevice', '\\<servername>\<sharename>\<path>\<filename>.bak';

Page 28: COPIAS DE SEGURIDAD SQL Server 2008 MSc. Alexis Cabrera Mondeja 1

Agregar un dispositivo de volcado en disco

En el ejemplo siguiente se muestra cómo agregar un dispositivo de copia de seguridad de disco llamado mydiskdump, con el nombre físico c:\dump\dump1.bak.

USE master;GOEXEC sp_addumpdevice 'disk', 'mydiskdump', 'c:\dump\dump1.bak';

Page 29: COPIAS DE SEGURIDAD SQL Server 2008 MSc. Alexis Cabrera Mondeja 1

Realizar una copia de seguridad en un dispositivo de copia de seguridad lógico

En el siguiente ejemplo se crea un dispositivo de copia de seguridad lógico, AdvWorksData, para un archivo de copia de seguridad en disco. A continuación, se realiza una copia de seguridad de la base de datos AdventureWorks en este dispositivo de copia de seguridad lógico.

USE masterGOEXEC sp_addumpdevice 'disk', ‘negociosData', 'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\BACKUP\negociosData.bak'; GO BACKUP DATABASE negociosWorks TO negociosData; GO

Page 30: COPIAS DE SEGURIDAD SQL Server 2008 MSc. Alexis Cabrera Mondeja 1

-- Permitir backups de logs, antes del backup de la base, modificar la ---base de datos -- para usar el modo full backup. USE master; GO ALTER DATABASE AdventureWorksnegocios2012 SET RECOVERY FULL; GO -- Crear negociosData y negociosLog como dispositivos logicas de backup.

USE master GO EXEC sp_addumpdevice 'disk', 'negociosData', ‘E:\negociosData.bak'; GOEXEC sp_addumpdevice 'disk', 'negociosLog', ‘C:\negociosLog.bak';GO -- Back up la base completa negocios2012. BACKUP DATABASE negocioss2012 TO negociosData; GO -- Back up negocios2012 log.

BACKUP LOG negocios2012 TO AdvWorksLog; GO

Page 31: COPIAS DE SEGURIDAD SQL Server 2008 MSc. Alexis Cabrera Mondeja 1

sp_dropdevice

Quita un dispositivo de base de datos o de copia de seguridad de una instancia del SQL Server 2005 Database Engine (Motor de base de datos de SQL Server 2005), lo que elimina la entrada de master.dbo.sysdevices.

sp_dropdevice [ @logicalname = ] 'device' [ , [ @delfile = ] 'delfile' ]

Notas

sp_dropdevice no puede utilizarse dentro de una transacción.

Debe pertenecer a la función fija de servidor diskadmin.

En el ejemplo siguiente se muestra cómo quitar el dispositivo de volcado de cinta tapedump1 del Database Engine (Motor de base de datos).

EXEC sp_dropdevice 'tapedump1';

Page 32: COPIAS DE SEGURIDAD SQL Server 2008 MSc. Alexis Cabrera Mondeja 1

Restauración y recuperación debases de datos SQL Server

Restauración: proceso de copiar datos desde unacopia de seguridad y aplicar transaccionesregistradas a los datos para ponerlos al día hastael punto de recuperación de destino.

Cada copia de seguridad contiene suficientesregistros para revertir las transacciones noconfirmadas y llevar la base de datos a un estadocoherente con la transacción y utilizable.El proceso de poner al día las transacciones noconfirmadas, si las hay, y poner la base de datos enlínea se conoce como recuperación.

22

Page 33: COPIAS DE SEGURIDAD SQL Server 2008 MSc. Alexis Cabrera Mondeja 1

Secuencias de restauración

Cada escenario de restauración seimplementa mediante uno o varios pasosde restauración (operaciones), lo que sedenomina secuencia de restauración. Cadaoperación corresponde a una instrucciónRESTORE de Transact-SQL independiente.Una secuencia de restauración mueve losdatos afectados a través de una o variasfases de la restauración.

23

Page 34: COPIAS DE SEGURIDAD SQL Server 2008 MSc. Alexis Cabrera Mondeja 1

Fases de restauraciónUna restauración es un proceso de varias fases. Las fases posibles de unarestauración incluyen las fases de copia de datos, rehacer (puesta al día) ydeshacer (revertir):

1.- Copia de datos: implica copiar todos los datos, el registro y las páginasde índice desde el medio de copia de seguridad de una base de datos a losarchivos de la base de datos.

2.- Rehacer: aplica las transacciones registradas a los datos copiados desdela copia de seguridad para poner al día esos datos hasta el punto derecuperación. Normalmente, en este punto una base de datos tienetransacciones no confirmadas y se encuentra en un estado inutilizable. Enese caso, se requiere una fase de deshacer como parte de la recuperaciónde la base de datos.

3.- Deshacer: es la primera parte de la recuperación, revierte cualquiertransacción no confirmada y hace que la base de datos esté disponible paralos usuarios. Después de la fase de reversión, no se pueden restaurar lascopias de seguridad subsiguientes.

24

Page 35: COPIAS DE SEGURIDAD SQL Server 2008 MSc. Alexis Cabrera Mondeja 1

Relación de RECOVERY yNORECOVERY con las fases derestauración

WITH RECOVERY recupera la base de datos e incluye las fases de rehacer ydeshacer; no se pueden restaurar otras copias de seguridad. Es el valorpredeterminado.

Si el conjunto de puestas al día no se ha puesto al día lo suficiente para sercoherente con la base de datos, la fase de deshacer no se podrá producir. DatabaseEngine (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 transaccionesno confirmadas. Al omitir la fase de deshacer, se pueden restaurar otras copias deseguridad 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 coherentescon 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 puederecuperar mediante la opción RECOVERY.

25

Page 36: COPIAS DE SEGURIDAD SQL Server 2008 MSc. Alexis Cabrera Mondeja 1

REPLACEEspecifica que SQL Server debe crear la base de datos especificada y sus

archivos relacionados aunque ya exista otra base de datos con el mismo nombre. En ese caso, se elimina la base de datos existente. Si no se especifica la opción REPLACE, se realiza una comprobación de seguridad. Así se evita sobrescribir por accidente una base de datos distinta. La comprobación de seguridad garantiza que la instrucción RESTORE DATABASE no restaurará la base de datos en el servidor actual si se dan las dos condiciones siguientes:

• La base de datos nombrada en la instrucción RESTORE ya existe en el servidor actual.

• El nombre de la base de datos es diferente del nombre de la base de datos registrado en el conjunto de copia de seguridad.

REPLACE también permite que RESTORE sobrescriba un archivo existente cuando no se puede comprobar si pertenece a la base de datos que se está restaurando. Normalmente, RESTORE no sobrescribe los archivos existentes. WITH REPLACE también se puede utilizar de la misma forma para la opción RESTORE LOG.

REPLACE elimina el requisito de que se realice una copia del final del registro antes de restaurar la base de datos.

Page 37: COPIAS DE SEGURIDAD SQL Server 2008 MSc. Alexis Cabrera Mondeja 1

Recuperación de una BD completaRESTORE 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 ] ]

[;]

28

Page 38: COPIAS DE SEGURIDAD SQL Server 2008 MSc. Alexis Cabrera Mondeja 1

No se puede restaurar la copia de seguridad de una base de datos comprimida en una base de datos sin comprimir.

Durante una restauración sin conexión, si la base de datos especificada se está usando, RESTORE obliga a los usuarios a desconectarse tras un breve retraso. En el caso de una restauración en línea de un grupo de archivos no principal, la base de datos puede seguir usándose excepto si el grupo de archivos que se está restaurando se ha puesto fuera de conexión. Los datos de la base de datos especificada se reemplazan por los datos restaurados.

Page 39: COPIAS DE SEGURIDAD SQL Server 2008 MSc. Alexis Cabrera Mondeja 1

Restaurar una base de datos completa

En el siguiente ejemplo se restaura una copia de seguridad completa de la base de datos desde un dispositivo lógico de copia de seguridad de negociosBackups.

RESTORE DATABASE negocios2012 FROM negocios2012Backups

Page 40: COPIAS DE SEGURIDAD SQL Server 2008 MSc. Alexis Cabrera Mondeja 1

Restaurar copias de seguridad de bases de datos completas y diferenciales

En el siguiente ejemplo se restaura una copia de seguridad completa después de una copia de seguridad diferencial del dispositivo de copia de seguridad E:\negocios2012.bak, que contiene las dos copias de seguridad. La copia de seguridad de bases de datos completa que se va a restaurar es el sexto conjunto de copias de seguridad del dispositivo (FILE = 6), y la copia de seguridad de base de datos diferencial es el noveno conjunto del dispositivo (FILE = 9). En cuanto se recupere la copia de seguridad diferencial, se recuperará la base de datos.

RESTORE DATABASE negocios2012 FROM DISK = ‘E:\negocios2012.bak' WITH FILE = 1 NORECOVERY; RESTORE DATABASE negocios2012 FROM DISK = ‘E:\negocios2012.bak' WITH FILE = 2 RECOVERY;

Page 41: COPIAS DE SEGURIDAD SQL Server 2008 MSc. Alexis Cabrera Mondeja 1

Restaurar una base de datos con la sintaxis de RESTART

En el ejemplo siguiente se usa la opción RESTART para reiniciar una operación RESTORE interrumpida por un error de alimentación del servidor.

-- Se interrumpió el RESTORE debido a fallo en la electricidad.

RESTORE DATABASE negocios2012 FROM negocios2012Backups

-- Aqui se restaura con opción RESTART.

RESTORE DATABASE negocios2012 FROM negocios2012Backups WITH RESTART

Page 42: COPIAS DE SEGURIDAD SQL Server 2008 MSc. Alexis Cabrera Mondeja 1

Restaurar una base de datos y mover archivos

En el ejemplo siguiente se restaura una base de datos completa y el registro de transacciones, y se mueve la base de datos restaurada al directorio C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Data.

RESTORE DATABASE negocios2012 FROM negocios2012Backups WITH NORECOVERY, MOVE 'negocios2012_Data' TO 'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Data\Newnegocios2012.mdf',

MOVE 'negocios2012_Log' TO 'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Data\Newnegocios2012.ldf‘ RESTORE LOG negocios2012 FROM negocios2012 Backups WITH RECOVERY

Page 43: COPIAS DE SEGURIDAD SQL Server 2008 MSc. Alexis Cabrera Mondeja 1

Copiar una base de datos con BACKUP y RESTORE

En el ejemplo siguiente se usan las instrucciones BACKUP y RESTORE para realizar una copia de la base de datos negocios2012. La instrucción MOVE hace que se restauren los datos y el archivo de registro en las ubicaciones especificadas. La instrucción RESTORE FILELISTONLY se usa para determinar el número y los nombres de los archivos de la base de datos que se están restaurando. La nueva copia de la base de datos se denomina TestDB.

BACKUP DATABASE negocios2012 TO negocios2012Backups ; RESTORE FILELISTONLY FROM negocios2012Backups ; RESTORE DATABASE TestDB FROM negocios2012Backups WITH MOVE 'negocios2012_Data' TO 'C:\MySQLServer\testdb.mdf', MOVE 'negocios2012_Log' TO 'C:\MySQLServer\testdb.ldf'; GO