You are on page 1of 22

Curso SQL Server 2000 Captulo 4

CURSO SQL SERVER 2000


Dictado por Horacio Peafiel

Mdulo 4: Copias de Seguridad

FAGDUT

CCI

Curso SQL Server 2000 Captulo 4

MDULO 4 COPIAS DE SEGURIDAD La administracin de los backups de un servidor de Bases de Datos es una tarea que se debe comprender en profundidad para el trabajo del da a da. Luego de completar este mdulo, el alumno podr: Comprender la terminologa asociada a las copias de seguridad en SQL Server 2000. Crear un plan de copias de seguridad para un servidor de bases de datos. Ejecutar procesos de backup y restauracin de copias de seguridad, tanto utilizando el Administrador Corporativo de SQL Server como el lenguaje Transact-SQL.

4.1 INTRODUCCIN Antes de aprender a realizar copias de seguridad de nuestras bases de datos, deberemos hacernos familiar con algunos trminos que son usados con los backups y restauraciones de SQL Server 2000. A continuacin, veremos los diferentes tipos de medios de backup en los cuales podemos guardar nuestros backups, incluyendo cmo seleccionarlos. Finalmente, aprenderemos a crear medios de backup reutilizables.

DISPOSITIVOS DE BACKUP Podemos seleccionar usar ya sea disco o un dispositivo de cinta como medio de backup. El programa de backup de SQL Server 2000 soporta drives de cinta locales, discos rgidos locales, discos en red, y canalizaciones con nombre. Las canalizaciones con nombre proporcionan una interfase para uso de soluciones de backup de terceras partes. Terminologa de backup Trmino Backup Descripcin Una copia completa o parcial de una base de datos, registro de transacciones, archivo o grupo de archivos que forman un conjunto de backup. El conjunto de backup es registrado en un medio de backup (como ser disco o cinta) usando un dispositivo de backup (un drive de cinta o un archivo fsico en disco). El archivo fsico (como ser c:\Backups\Full.bkp) o una unidad de cinta especfica (como ser \\.\Tape0) que podemos usar para registrar un backup en un medio de backup. Un archivo que almacena un conjunto de backup. El medio fsico (disco o cinta) usado para guardar un conjunto de backup usando un archivo de backup. Los medios de backup pueden guardar mltiples conjuntos de backup (como ser mltiples backups de SQL Server y Windows 2000). El backup de una operacin simple de backup que reside en un medio de backup. El conjunto de backup puede residir en un solo medio de backup, una familia de medios, o un conjunto de medios. Todos los medios (archivos fsicos o cintas) en un conjunto de medios escritas en un solo dispositivo de backup por un conjunto de backup simple. Proporciona informacin sobre los contenidos de un medio de backup. Una cabecera de medios debe ser escrita antes que un conjunto de backup pueda ser registrado en un medio de backup (lo que se llama comunmente inicializar el medio de backup). Usualmente, la cabecera de medios es escrita una sla vez y permanece en el medio de backup durante toda la vida de este medio. Todo medio involucrado en una operacin de backup. Ejemplos de conjuntos de medios son: una cinta, un archivo en disco, un dispositivo de backup que escribe un conjunto de cintas, o un
2 CCI

Dispositivo de backup

Archivo de backup Medio de backup

Conjunto de backup

Familia de medios

Cabecera de medios

Conjunto de medios

FAGDUT

Curso SQL Server 2000 Captulo 4

conjunto de cintas escritas por ms de un dispositivo de backup. Creacin de Dispositivos de Backup permanentes Podemos crear uno o ms dispositivos de backup permanentes que podemos utilizar para hacer backups regulares, o podemos crear un nuevo archivo de backup cada vez que realicemos un backup de nuestra base de datos. Generalmente, desearemos crear backups que podamos reutilizar, particularmente para automatizacin de backups de bases de datos. Habiendo hecho backups en dispositivos permanentes nos permite referenciar los mismos en los comandos de backup y restauracin usando slo su nombre lgico, en lugar del nombre fsico completo. Los dispositivos de backup se guardan en la tabla sysdevices de la base de datos Master. Usando el Administrador Corporativo Para crear un dispositivo de backup usando el Administrador Corporativo de SQL Server, expandimos el contenedor Administracin, hacemos click derecho en Copia de seguridad, y hacemos click en Nuevo dispositivo de copia de seguridad. En el cuadro de dilogo Propiedades del dispositivo de copia de seguridad: Nuevo dispositivo, especificaremos un nombre lgico para el dispositivo y definiremos la direccin del dispositivo de cinta o un nombre de archivo para el dispositivo de backup, como muestra la siguiente figura:

Para eliminar un dispositivo de backup usando el Administrador Corporativo, hacemos click en el contenedor Copias de seguridad en el rbol de la consola para mostrar los dispositivos en el panel de detalles. Hacemos click derecho y seleccionaremos Eliminar. Nota: Los dispositivos de copia de seguridad no son especficos de una base de datos en particular. Usando Transact-SQL Para crear un dispositivo de backup reutilizable, usaremos el procedimiento almacenado del sistema sp_addumpdevice. Por ejemplo: sp_addumpdevice disk, FullBackupDevice, c:\backups\full.bkp El ejemplo precedente crea un dispositivo de backup llamado FullBackupDevice usando un archivo en disco. sp_addumpdevice tape, TLogTapeBackupDevice, \\.\Tape0

FAGDUT

CCI

Curso SQL Server 2000 Captulo 4

Este ejemplo crea un dispositivo de cinta con el nombre TlogTapeBackupDevice usando el drive de cinta 0 (refiere al primer dispositivo de cinta disponible en el sistema). Usando Transact-SQL, podemos crear y guardar un script que crea todos nuestros dispositivos de backup de una vez. Guardar este script es importante porque podemos utilizarlo para re-crear los dispositivos de backup en la base de datos Master si fuera necesario (o duplicar la estructura de dispositivos de backup en otros servidores SQL Server en la red. Para usar Transact-SQL para ver una lista de todos los dispositivos en nuestra instancia de SQL Server, usaremos el procedimiento almacenado del sistema sp_helpdevice. Para eliminar un dispositivo de backup, usaremos en procedimiento almacenado del sistema sp_dropdevice. sp_dropdevice FullBackupDevice El ejemplo precedente elimina el dispositivo de backup pero no elimina el archivo fsico subyacente. Para eliminarlo, usaremos la siguiente sentencia T-SQL: sp_dropdevice FullBackupDevice, DELFILE

PRCTICA 4.1 CREACIN DE DISPOSITIVOS DE BACKUP USANDO T-SQL 1. Iniciaremos el Analizador de Consultas de SQL Server. 2. Tipearemos el siguiente lote. Deberemos estar seguros que las carpetas especificadas en el mismo existan en nuestra mquina local; si no existen, debemos crearlas antes de ejecutar el lote: USE master GO sp_addumpdevice 'disk ' , 'MasterFullBackup' , 'C:\Archivos de Programa\ Microsoft SQL Server\MSSQL\Backup\MasterFull.bak' GO sp_addumpdevice 'disk ' , 'MSDBFullBackup' , ' C:\Archivos de Programa\ Microsoft SQL Server\MSSQL\Backup\MSDBFull.bak' GO sp_addumpdevice 'disk ' , 'CURSOSQLFullBackup' , ' C:\Archivos de Programa\ Microsoft SQL Server\MSSQL\Backup\CURSOSQLFull.bak' GO sp_addumpdevice 'disk ' , 'CURSOSQLDiffBackup' , ' C:\Archivos de Programa\ Microsoft SQL Server\MSSQL\Backup\CURSOSQLDiff.bak' GO sp_addumpdevice 'disk ' , 'CURSOSQLTLogBackup' , ' C:\Archivos de Programa\ Microsoft SQL Server\MSSQL\Backup\CURSOSQLTLog.bak' GO Ntese que debemos tipear un GO luego de cada sentencia de creacin de dispositivo. 3. Ejecutaremos el lote con el botn Ejecutar. 4. A continuacin, en el panel de consulta, tipearemos lo siguiente: sp_helpdevice 5. Ejecutaremos este procedimiento almacenado. Notemos que aparecern cinco dispositivos de copia de seguridad, as como informacin de las bases de datos Master, Model y Tempdb.
FAGDUT 4 CCI

Curso SQL Server 2000 Captulo 4

6. Finalmente, cerraremos el Analizador de Consultas y terminaremos la prctica.

4.2 COPIAS DE SEGURIDAD DE BASES DE DATOS Luego de determinar los medios de backup y crear los dispositivos de backup, estaremos listos para realizas la copia de seguridad de nuestros datos. En este apartado, aprenderemos a realizar los distintos tipos de backups usando tanto el Administrador Corporativo como Transact-SQL. Aprenderemos las opciones de backup que se encuentran disponibles cuando realizamos copias de seguridad usando el Administrador Corporativo, a la vez que veremos sus equivalentes usando Transact-SQL. Realizar backups usando el Administrador Corporativo El Administrador Corporativo de SQL Server proporciona una interfase grfica simple para realizar backups interactivamente. Usar el Administrador Corporativo es una buena manera de comenzar a realizar copias de seguridad, permitindonos familiarizarnos con la terminologa de los backups y sus opciones. El comprender las opciones de backup a travs del Administrador Corporativo nos ayudar a comprender las sintaxis de Transact-SQL para backups. Podemos realizar backups directamente con el Administrador Corporativo, o tambin usar el Asistente para creacin de Copias de Seguridad. Usando el Asistente El Asistente para creacin de Copias de Seguridad se encuentra disponible en el men Herramientas. A continuacin veremos la ventana donde podemos seleccionar este asistente:

FAGDUT

CCI

Curso SQL Server 2000 Captulo 4

Luego de iniciar el Asistente para Copia de Seguridad, seleccionaremos una base de datos a la que se le realizar el backup. Esto lo hacemos en la siguiente ventana:

Luego de seleccionar la base de datos a realizarle el backup, deberemos seleccionar un nombre para el conjunto de copia de seguridad, ingresndolo en la casilla Nombre de la caja de dilogo. Tambin podemos especificar una descripcin para al conjunto de backup. Esta descripcin es opcional, pero es muy til para distinguir entre mltiples backups.

FAGDUT

CCI

Curso SQL Server 2000 Captulo 4

A continuacin, en Seleccionar el tipo de copia de seguridad, seleccionaremos el tipo de backup que realizaremos. Usando el Asistente para copias de seguridad, podemos realizar copias de seguridad completas, diferenciales, o copias del registro de transacciones. Si un tipo de backup en particular se encuentra deshabilitado, significa que no podemos realizar este tipo de backup con la base de datos seleccionada. Por ejemplo, slo podremos realizar copias de seguridad completas de la base de datos Master, y no podremos realizar copias del registro de transacciones si la base de datos se encuentra en modo de recuperacin simple.

FAGDUT

CCI

Curso SQL Server 2000 Captulo 4

Nota: No podremos realizar copias de seguridad diferenciales antes de realizar una copia de seguridad completa. A continuacin, en la pgina Seleccione el destino y la accin de copia de seguridad, seleccionaremos el dispositivo de backup que queremos usar para este conjunto de copias de seguridad. Podemos seleccionar Cinta, un archivo en disco, o un dispositivo de backup ya creado con anterioridad. Notemos que la ubicacin por defecto de un archivo es la carpeta Backup del rbol de directorios de nuestra instancia de SQL Server 2000 (como ser: c:\Archivos de Programa\Microsoft SQL Server\MSSQL\Backups). Podemos elegir apendizar el conjunto de backup a un conjunto de backups existente en el medio seleccionado, o sobreescribir cualquier conjunto de backup en el medio correspondiente. Podemos tambin establecer que SQL Server 2000 lea y verifique la integridad de un backup luego de completar la operacin. Esta opcin no verifica la estructura de los datos en s, pero s verifica que los archivos de backup hayan sido escritos y se pueden leer con normalidad.

FAGDUT

CCI

Curso SQL Server 2000 Captulo 4

Si seleccionamos la opcin Sobreescribir el medio de copia de seguridad, nos aparecer a continuacin la ventana Inicializar el medio. En esta ventana, podemos elegir inicializar el medio (escribir una cabecera para el mismo), proporcionando un nombre para el conjunto de medios y una descripcin. Un nombre para el conjunto de medios puede sernos til para identificar medios de backup. Por ejemplo, si tenemos una cinta de backup y no sabemos qu hay en dicha cinta, podremos usar el Administrador Corporativo o T-SQL para recuperar la cabecera del medio de la cinta y as ayudarnos a identificarlos.

FAGDUT

CCI

Curso SQL Server 2000 Captulo 4

A continuacin, en la pgina de Comprobacin y programacin de copia de seguridad, podremos verificar que estemos escribiendo al conjunto de medios correcto y que la fecha de expiracin del conjunto de backups (si la hubiera) ya ha pasado. Podemos usar esta caracterstica para prevenir la sobreescritura de un conjunto de backups que an no haya expirado, o que se seleccione un dispositivo incorrecto en la interfase grfica del Administrador Corporativo. Nota: SQL Server 2000 slo usa la fecha de expiracin del primer conjunto de backups en el medio de backup para determinar si todo el medio de backup puede ser sobreescrito. Tambin en esta ventana, tendremos la posibilidad de agendar las copias de seguridad haciendo click en el botn de comando Cambiar en la seccin Programacin:

FAGDUT

10

CCI

Curso SQL Server 2000 Captulo 4

Finalmente, terminaremos el asistente con la siguiente ventana que nos dice los pasos a seguir a continuacin. Cuando hagamos click en Finalizar, se realizar la copia de seguridad con los parmetros ingresados anteriormente.

Backups usando el Administrador Corporativo directamente Para crear un backup usando el Administrador Corporativo directamente, podemos hacer click en el contenedor Bases de Datos y dentro del men Herramientas hacer click en Copia de seguridad de la base de datos, o sino podemos hacer click derecho en el contenedor Bases de datos, click en Todas las Tareas, y click en Copia de seguridad de la base de datos. Podemos usar el Administrador Corporativo para realizar cualquier tipo de backups. Cuando abrimos la ventana de Copia de seguridad de SQL Server, se nos muestran dos pestaas para seleccionar: General y Opciones. En la primera podemos especificar la base de datos a copiar, el tipo de copia de seguridad (completo, diferencial, del registro de transacciones, etc), y el dispositivo de destino donde se guardar el backup que realicemos. En la segunda pestaa, podemos especificar si se realizar una verificacin de la copia de seguridad al concluir, si vamos a quitar las entradas inactivas del registro de transacciones (truncar el log), etc. Tambin podemos asignar una etiqueta al conjunto de medios en el que se hace el backup. La siguiente figura nos muestra las dos pestaas de esta caja de dilogo:

FAGDUT

11

CCI

Curso SQL Server 2000 Captulo 4

Nota: Notemos la casilla de seleccin en la segunda figura, que nos permite elegir si remover las entradas inactivas del registro de transacciones. Esta casilla aparece en gris si no estamos haciendo un backup del registro de transacciones. Si estamos haciendo un backup del log, el valor por defecto es truncar el registro de transacciones luego del backup. En la pestaa General, si estamos realizando un backup de archivo o grupo de archivos, deberemos hacer click en el botn con los tres puntos para seleccionar el archivo o grupo de archivos a copiar. Podemos seleccionar ya sea un solo archivo de datos o un grupo entero en la caja de dilogo Especificar grupos de archivos y archivos.
FAGDUT 12 CCI

Curso SQL Server 2000 Captulo 4

Luego de seleccionar un medio de backup (cinta o disco), hacemos click en el botn Agregar para seleccionar un destino para el backup. En esta caja de dilogo, podemos especificar ya sea un archivo de backup (si seleccionamos disco), un drive de cinta (si seleccionamos cinta), o un dispositivo de backup existente.

Luego de seleccionar el dispositivo de backup, podemos hacer click en el botn Contenido del dispositivo de backup seleccionado (para determinar si deseamos sobreescribir estos conjuntos de backup en el dispositivo de backup). Si el dispositivo ya contiene conjuntos de backup, podemos ver los contenidos de cada conjunto de backup en la ventana Ver contenido del medio de copia de seguridad. En la siguiente figura, vemos el contenido de un dispositivo de backup que contiene un backup completo:

FAGDUT

13

CCI

Curso SQL Server 2000 Captulo 4

PRCTICA 4.2 BACKUP DE LA BASE DE DATOS MSDB USANDO EL ADMINISTRADOR CORPORATIVO En esta prctica, usaremos el Administrador Corporativo para hacer un backup de la base de datos MSDB. 1. En el Administrador Corporativo de SQL Server, expandir el nodo del servidor, y expandir el nodo Bases de datos. 2. Hacemos click derecho en Msdb y seleccionamos Todas las tareas, y Copia de seguridad de base de datos. 3. En la pestaa General, en la caja de texto Nombre, tipearemos Copia de seguridad completa de MSDB #1. 4. En la caja de texto Descripcin, ingresaremos Conjunto de backup #1. 5. En la seccin Destino, hacemos click en el botn de comando Agregar. 6. Seleccionaremos el dispositivo de backup creado el prcticas anteriores, el llamado MSDBFullBackup. 7. Haremos click para seleccionar Sobreescribir medio existente. 8. En la pestaa Opciones, seleccionaremos Comprobar la copia de seguridad al concluir. 9. Seleccionaremos la casilla Inicializar y etiquetar el medio. 10. En la caja de texto Nombre del conjunto de medios, ingresaremos msdbBackups. 11. En la caja de texto Descripcin, ingresaremos Medio para backups de la base de datos MSDB. 12. Hacemos click en Aceptar. 13. Finalmente, cerraremos el Administrador Corporativo.

Copias de seguridad usando Transact-SQL Tambin podemos realizar backups usando los comandos BACKUP DATABASE y BACKUP LOG de Transact-SQL. Para ver la sintaxis completa, ver los Libros en Pantalla de SQL Server 2000. Estos comando requieren la misma informacin discutida anteriormente cuando usamos el Administrador Corporativo para realizar backups, pero la sintaxis requiere un poco de paciencia. A su vez, T-SQL proporciona algunos parmetros adicionales para controlar las copias de seguridad. Usando T-SQL para realizar nuestras copias de seguridad, tenemos las siguientes posibilidades: Podemos asegurar un conjunto de backups con una password. Deberemos especificar la password para restaurar el backup. Podemos asegurar un conjunto de medios con una password. Deberemos especificar la password para restaurar backups del conjunto de medios. Podemos reiniciar un backup interrumpido. Esto es particularmente til para grandes bases de datos.

Aunque la sintaxis de T-SQL para backups pueda parecer intimidante, veremos en la prctica que no es tan as. A continuacin, veremos algunos ejemplos: Realizar un backup completo de Base de Datos El comando BACKUP DATABASE puede ser muy simple o muy complejo, dependiendo de las opciones que especifiquemos. Por ejemplo, para hacer un backup completo de la base de datos CURSOSQL, tipearemos: BACKUP DATABASE CURSOSQL TO DISK = 'C:\SQLBackups\Temp.bak' El ejemplo precedente realizar un backup completo de la base de datos CURSOSQL hacia un archivo de disco llamado Temp.bak.

FAGDUT

14

CCI

Curso SQL Server 2000 Captulo 4

BACKUP DATABASE Northwind TO NorthwindFullBackup RESTORE VERIFYONLY FROM NorthwindFullBackup El ejemplo anterior realiza un backup completo de la base de datos Northwind hacia el dispositivo de backup NorthwindFullBackup, y luego verifica la consistencia del backup. BACKUP DATABASE Northwind TO NorthwindFullBackup WITH FORMAT , MEDIANAME = 'NorthwindBackups' , MEDIADESCRIPTION = 'Media para Backups de Northwind' , NAME = 'Backup completo de Northwind #1' , DESCRIPTION = Conjunto de backups #1' , STATS = 25 El ejemplo precedente realiza un backup completo de la base de datos Northwind al dispositivo NorthwindFullBackup. Inicializa el medio, crea el conjunto de medios NorthwindBackups con una descripcin en la clusula MEDIADESCRIPTION, y crea el conjunto de backups llamado Backup completo de Northwind #1. Finalmente, reporta el progreso del backup en incrementos del 25 %. Realizando Backups Diferenciales de Bases de Datos Para realizar backups diferenciales usando BACKUP DATABASE, debemos simplemente usar el argumento WITH DIFFERENTIAL en alguno de los ejemplos precedentes (siempre y cuando hayamos hecho un backup completo de base de datos antes): BACKUP DATABASE CURSOSQL TO CURSOSQLDiffBackup WITH DIFFERENTIAL El comando precedente realiza un backup diferencial de la base de datos CURSOSQL en el dispositivo de backup CURSOSQLDiffBackup. Copias del Registro de Transacciones Para hacer copias de seguridad del Registro de Transacciones, utilizaremos el comando BACKUP LOG, usando una sintaxis casi idntica a BACKUP DATABASE: BACKUP LOG CURSOSQL TO CURSOSQLTLogBackup El ejemplo precedente realiza un backup del registro de transacciones de la base de datos CURSOSQL hacia el dispositivo de backup CURSOSQLTLogBackup. BACKUP LOG CURSOSQL TO CURSOSQLTLogBackup WITH NO_TRUNCATE El ejemplo precedente realiza un backup del registro de transacciones de la base de datos CURSOSQL al dispositivo de backup CURSOSQLTLogBackup, pero no trunca el registro de transacciones (usaremos este comando cuando un disco conteniendo un archivo de datos falla).

PRCTICA 4.3 REALIZACIN DE BACKUPS USANDO T-SQL En esta prctica, usamos T-SQL para realizar un backup completo de base de datos, uno diferencial, y dos backups del registro de transacciones: 1. Iniciamos el Analizador de Consultas de SQL Server 2000. 2. Ingresar el siguiente script para realizar una copia de seguridad completa de la base de datos CURSOSQL:

FAGDUT

15

CCI

Curso SQL Server 2000 Captulo 4

USE CURSOSQL GO INSERT INTO AUTORES ( APELLIDO, NOMBRE, ANIONAC, ANIOMUERTE, DESCRIPCION ) VALUES ( 'Perez', 'Juan', '1970', '1999', 'Descripcin' ) INSERT INTO AUTORES ( APELLIDO, NOMBRE, ANIONAC, ANIOMUERTE, DESCRIPCION ) VALUES ( 'Rodriguez', 'Jose', '1935', '1984', 'Descripcin' ) INSERT INTO AUTORES ( APELLIDO, NOMBRE, ANIONAC, ANIOMUERTE, DESCRIPCION ) VALUES ( 'Juarez', 'Ruben', '1945', 'N/A', 'Descripcin' ) INSERT INTO AUTORES ( APELLIDO, NOMBRE, ANIONAC, ANIOMUERTE, DESCRIPCION ) VALUES ( 'Dominguez', 'Pedro', '1973', 'N/A', 'Descripcin' ) INSERT INTO AUTORES ( APELLIDO, NOMBRE, ANIONAC, ANIOMUERTE, DESCRIPCION ) VALUES ( 'Magallanes', 'Jorge', '1962', 'N/A', 'Descripcin' ) GO BACKUP DATABASE CURSOSQL TO CURSOSQLFullBackup WITH FORMAT , MEDIANAME = 'CURSOSQLFullBackup', MEDIADESCRIPTION = 'Medio para Backups Completos de CURSOSQL', NAME = 'Backup Completo de CURSOSQL #1', DESCRIPTION = 'Conjunto de Backups #1' GO 3. Para realizar un backup Diferencial, ejecutaremos el siguiente script: USE CURSOSQL GO INSERT INTO AUTORES ( APELLIDO, NOMBRE, ANIONAC, ANIOMUERTE, DESCRIPCION ) VALUES ( 'Orozco', 'Pepe', '1970', '1999', 'Descripcin' ) INSERT INTO AUTORES ( APELLIDO, NOMBRE, ANIONAC, ANIOMUERTE, DESCRIPCION ) VALUES ( 'Camino', 'Juan', '1935', '1984', 'Descripcin' ) INSERT INTO AUTORES ( APELLIDO, NOMBRE, ANIONAC, ANIOMUERTE, DESCRIPCION ) VALUES ( 'Carpentier', 'Alejo', '1945', 'N/A', 'Descripcin' ) GO BACKUP DATABASE CURSOSQL TO CURSOSQLDiffBackup WITH DIFFERENTIAL, FORMAT , MEDIANAME = 'CURSOSQLDiffBackup' , MEDIADESCRIPTION = 'Medio para Backups Diferenciales de CURSOSQL' ,
FAGDUT 16 CCI

Curso SQL Server 2000 Captulo 4

NAME = 'Backup Diferencial de CURSOSQL #1' , DESCRIPTION = 'Conjunto de backups #1' 4. Ahora, vamos a realizar una copia de seguridad del registro de transacciones: USE CURSOSQL GO INSERT INTO AUTORES ( APELLIDO, NOMBRE, ANIONAC, ANIOMUERTE, DESCRIPCION ) VALUES ( 'Perez', 'Ricardo', '1970', 'N/A', 'Descripcin' ) INSERT INTO AUTORES ( APELLIDO, NOMBRE, ANIONAC, ANIOMUERTE, DESCRIPCION ) VALUES ( 'San Martn', 'Jose', '1935', 'N/A', 'Descripcin' ) GO BACKUP LOG CURSOSQL TO CURSOSQLTLogBackup WITH MEDIANAME = 'CURSOSQLTLogBackup' , MEDIADESCRIPTION = 'Medio para Backups de Log de CURSOSQL', NAME = 'Backup del Log de CURSOSQL #1' , DESCRIPTION = 'Conjunto de backups #1' GO 5. Finalmente, hacemos otro backup del registro de transacciones, esta vez espaciado en tiempo del anterior: INSERT INTO AUTORES ( APELLIDO, NOMBRE, ANIONAC, ANIOMUERTE, DESCRIPCION ) VALUES ( 'Dominguez', 'Pedro', '1922', '1998', 'Descripcin' ) GO BACKUP LOG CURSOSQL TO CURSOSQLTLogBackup WITH MEDIANAME = 'CURSOSQLTLogBackup' , MEDIADESCRIPTION = 'Medio para Backups de Log de CURSOSQL', NAME = 'Backup del Log de CURSOSQL #2' , DESCRIPTION = 'Conjunto de backups #2' GO 6. Si observamos el contenido de cada uno de los dispositivos de backup, podremos ver los resultados usando el Administrador Corporativo.

4.3 RESTAURAR COPIAS DE SEGURIDAD Ahora que ya hemos aprendido a realizar copias de seguridad usando el Administrador Corporativo y T-SQL, estamos listos para usar estos backups para realizar restauraciones de datos. En este apartado, aprenderemos a ver las copias de seguridad de una base de datos para determinar la secuencia de restauracin. Aprenderemos cmo restaurar bases de datos completas, as como restaurar una base de datos en un punto especfico del tiempo.

FAGDUT

17

CCI

Curso SQL Server 2000 Captulo 4

Realizar restauraciones usando el Administrador Corporativo Si descubrimos que nuestra base de datos est corrupta, lo que debemos hacer primero antes que nada es una copia de seguridad del Registro de Transacciones antes de tratar de restaurar los datos de un backup (o de otro modo, perderemos todos los ltimos cambios desde el ltimo backup). Los backups del registro de transacciones (usando la opcin Without Truncation) nos permiten recuperar una base de datos en un punto especfico del tiempo. A continuacin, debemos reemplazar el disco que fall. Si estamos usando RAID para tolerancia a fallos, todo lo que tenemos que hacer es simplemente agregar un nuevo drive al RAID. SI no tenemos RAID, debemos restaurar nuestros datos en el nuevo disco antes de que los usuarios puedan acceder a las bases de datos daadas. Podemos realizar una restauracin de base de datos completa o una restauracin de archivos o grupo de archivos. En cada caso, para comenzar la restauracin, expandiremos el contenedor Bases de Datos, hacemos click derecho en la base de datos que fall, click en Todas las Tareas, y click en Restaurar base de datos. El Administrador Corporativo de SQL Server 2000 determinar la secuencia ms eficiente de restauracin usando la informacin de backup guardada en la base de datos MSDB. Si deseamos ver informacin concerniente al contenido de un conjunto de backup en particular, seleccionaremos el conjunto de backup de la lista y hacemos click en Propiedades. Las propiedades del conjunto de backup aparecern en una caja de dilogo como la que vemos a continuacin:

FAGDUT

18

CCI

Curso SQL Server 2000 Captulo 4

Si la ubicacin del archivo de backup ha sido movida desde la ubicacin original registrada en la base de datos Msdb, podemos hacer click en el botn Cambiar en las propiedades del conjunto de backup y especificar una nueva ubicacin. Una vez que hayamos determinado cules conjuntos de backup vamos a restaurar, haremos click en la pestaa Opciones en el cuadro de dilogo Restaurar base de datos, como vemos en la siguiente figura:

Dentro de la pestaa Opciones bajo la columna Restaurar como, podemos cambiar la ubicacin fsica de cada archivo de datos que est siendo restaurado. Por defecto, los archivos de datos son restaurados en su ubicacin original (sobreescribiendo los archivos con los mismos nombres que hubiera en esa carpeta). Aqu tambin podemos seleccionar el estado de recuperacin al concluir la restauracin. Por defecto, SQL Server 2000 restaurar cada backup que seleccionemos, y luego de que el ltimo backup haya sido aplicado, recuperar la base de datos. Esto es equivalente a la opcin With Recovery de T-SQL. Si no estamos aplicando todos los backups que debemos aplicar, debemos cambiar esta propiedad para poder aplicar los backups del registro de transacciones. Aqu tenemos dos caminos: Podemos elegir dejar la base de datos no operacional pero que se puedan restaurar backups del registro de transacciones. Esto es equivalente a la opcin No Recovery de T-SQL. Podemos elegir dejar la base de datos como de slo lectura y poder restaurar backups adicionales del registro de transacciones. Esto es equivalente al modo No Operativa de T-SQL. Seleccionando la opcin slo lectura requiere la especificacin de un archivo para deshacer que ser creado durante la restauracin. Este archivo de para deshacer es creado por defecto en la carpeta de Backup y llamado UNDO_BaseDeDatos.DAT.

FAGDUT

19

CCI

Curso SQL Server 2000 Captulo 4

Cuando hacemos click en Aceptar, finalmente se realiza la operacin de restauracin y la base de datos o es recuperado o queda en estado No Operativa, permitiendo la restauracin de backups del registro de transacciones.

PRCTICA 4.4 RESTAURAR USANDO EL ADMINISTRADOR CORPORATIVO En esta prctica, realizaremos una restauracin completa de la base de datos CURSOSQL usando el Administrador Corporativo: 1. Abrimos el Analizador de Consultas, y tipearemos la siguiente sentencia errnea que causa la prdida de todos los datos en la tabla Autores: USE CURSOSQL GO TRUNCATE TABLE AUTORES GO SELECT * FROM AUTORES GO 2. Iniciaremos el Administrador Corporativo. Vamos a restaurar una copia completa de nuestra base de datos que tenemos en el dispositivo CURSOSQLFullBackup. 3. Seleccionamos la base de datos CURSOSQL, hacemos click derecho, click en Todas las Tareas, y click en Restaurar base de datos. 4. En la opcin Restaurar, hacemos click en Desde dispositivos. 5. Hacemos click en el botn Dispositivos, y hacemos click en Agregar. 6. Seleccionamos el dispositivo de copia llamado CURSOSQLFullBackup y hacemos click en Aceptar. 7. Hacemos click en Aceptar. 8. Haciendo click en el botn de comando Ver Contenido, podemos ver el contenido del conjunto de backup seleccionado. 9. Finalmente, hacemos click en Aceptar para comenzar el proceso de restauracin. 10. Para concluir esta prctica, desde el Analizador de Consultas tipeamos lo siguiente: USE CURSOSQL GO SELECT * FROM AUTORES GO Recuperacin de una Base de datos en un punto especfico del tiempo Si determinamos que necesitamos restaurar una base de datos en un punto especfico del tiempo, podramos tener que restaura uno o ms conjuntos de backup y dejar la base de datos en modo de no-operativa o slo-lectura. El modo no-operativa nos permite ver la condicin de la base de datos al final de cada restauracin antes de aplicar los backups de registro de transacciones adicionales. Una vez determinado el punto en el tiempo en el cual se quiere restaurar la base de datos, seleccionamos la opcin Restauracin en un momento dado en la pestaa General de la caja de dilogo Restaurar base de datos, y seleccionaremos la fecha y hora exacta hasta donde deseamos que la restauracin de la base de datos se detenga. Ver la siguiente figura:

FAGDUT

20

CCI

Curso SQL Server 2000 Captulo 4

No podemos seleccionar una hora anterior a la del primer registro de transacciones que seleccionemos. A su vez, no podemos elegir dejar la base de datos no operacional y permitir as restaurar registros de transacciones adicionales cuando elegimos una restauracin a un momento dado.

4.4 RESTAURAR USANDO TRANSACT-SQL Tambin podemos hacer restauraciones usando los comandos RESTORE DATABASE y RESTORE LOG. Podemos ver la sintaxis completa de estos dos comandos en los Libros en Pantalla de SQL Server. Los comandos T-SQL requieren la misma informacin discutida en el apartado del Administrador Corporativo, pero su sintaxis requiere un poco de prctica. Transact-SQL proporciona asimismo algunos parmetros adicionales, tiles sobre todo cuando hacemos backups directamente en cinta. Podemos restringir el acceso a la nueva base de datos restaurada slo a los administradores del sistema. Podemos mover una base de datos a otra ubicacin, usando la opcin MOVE. Podemos especificar una Password. Podemos reiniciar una restauracin interrumpida.

Restaurar una base de datos completa Los comandos RESTORE DATABASE o RESTORE LOG pueden ser muy simples o muy complejos: RESTORE DATABASE Northwind FROM DISK = 'C:\SQLBackups\Temp.bak' El comando precedente restaura una base de datos completa desde el archivo TEMP.BAK. RESTORE DATABASE Northwind RESTORE DATABASE Northwind NORECOVERY RESTORE LOG Northwind FROM NORECOVERY RESTORE LOG Northwind FROM FROM NorthwindFullBackup WITH NORECOVERY FROM NorthwindDiffBackup WITH FILE = 2, NorthwindTLogBackup WITH FILE = 4, NorthwindTLogBackup2 WITH FILE = 5

El ejemplo precedente restaura una copia de seguridad completa de la base de datos Northwind desde el dispositivo NorthwindFullBackup, seguido de una restauracin de un backup diferencial, y finalmente la restauracin de dos backups del registro de transacciones (conjuntos 4 y 5 del dispositivo de backup). La recuperacin de la base de datos ocurre luego de que el segundo backup del registro de transacciones es efectuado.

FAGDUT

21

CCI

Curso SQL Server 2000 Captulo 4

Restaurar usando la opcin MOVE RESTORE DATABASE Northwind FROM NorthwindFullBackup WITH NORECOVERY , MEDIANAME = 'NorthwindBackups' , MEDIAPASSWORD = 'my_password' , MOVE = 'Northwind' TO 'D:\SQLDATA\NwindNew.mdf' , MOVE = 'NorthwindLog' TO 'E:\SQLLogs\NwindNewLog.ldf' , RESTORE LOG Northwind FROM NorthwindTLogBackup El ejemplo precedente restaura un backup completo de la base de datos Northwind, seguido por la restauracin del registro de transacciones. Se especifica que el archivo de datos sea movido a D:\SQLDATA\NwindNew.mdf y el log es movido a E:\SQLLogs\NwindNewLog.ldf. Finalmente, tambin especifica que en nombre del conjunto de medios, NorthwindBackups, deba aparecer en el medio de backup que est siendo restaurado. Restaurando en modo STANDBY RESTORE DATABASE Northwind FROM NorthwindFullBackup WITH NORECOVERY RESTORE LOG Northwind FROM NorthwindTLogBackup WITH FILE = 4 , NORECOVERY RESTORE LOG Northwind FROM NorthwindTLogBackup WITH FILE = 5 , STANDBY = TO 'D:\SQL\UNDO.tmp' El ejemplo precedente restaura un backup completo de una base de datos de Northwind desde el dispositivo NorthwindFullBackup, seguido de una restauracin de dos registros de transacciones. El modo STANDBY es aplicado luego de que se restaura el ltimo backup del registro de transacciones. Restaurando a un punto especfico de tiempo RESTORE DATABASE Northwind FROM NorthwindFullBackup WITH NORECOVERY RESTORE LOG Northwind FROM NorthwindTLogBackup WITH FILE = 4 , NORECOVERY RESTORE LOG Northwind FROM NorthwindTLogBackup WITH FILE = 5 , RECOVERY, STOPAT = 'Oct 2, 2000 5:08:32 PM' El ejemplo precedente restaura un backup completo de una base de datos de la base de datos Northwind desde el dispositivo NorthwindFullBackup, y contina con la restauracin de dos registros de transacciones. Cuando el segundo log es restaurado, se realiza la restauracin al 2 de Octubre del 2000.

FAGDUT

22

CCI

You might also like