M_dulo 04 Curso SQL server

22
Curso SQL Server 2000 Capítulo 4 CURSO SQL SERVER 2000 Dictado por Horacio Peñafiel Módulo 4: Copias de Seguridad FAGDUT 1 CCI

Transcript of M_dulo 04 Curso SQL server

Page 1: M_dulo 04 Curso SQL server

Curso SQL Server 2000 Capítulo 4

CURSO SQL SERVER 2000

Dictado por Horacio Peñafiel

Módulo 4: Copias de Seguridad

FAGDUT 1 CCI

Page 2: M_dulo 04 Curso SQL server

Curso SQL Server 2000 Capítulo 4

MÓDULO 4 – COPIAS DE SEGURIDAD La administración de los backups de un servidor de Bases de Datos es una tarea que se debe comprender en profundidad para el trabajo del día a día. Luego de completar este módulo, el alumno podrá:

• Comprender la terminología 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 restauración de copias de seguridad, tanto utilizando el

Administrador Corporativo de SQL Server como el lenguaje Transact-SQL. 4.1 – INTRODUCCIÓN Antes de aprender a realizar copias de seguridad de nuestras bases de datos, deberemos hacernos familiar con algunos términos que son usados con los backups y restauraciones de SQL Server 2000. A continuación, veremos los diferentes tipos de medios de backup en los cuales podemos guardar nuestros backups, incluyendo cómo 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 rígidos locales, discos en red, y canalizaciones con nombre. Las canalizaciones con nombre proporcionan una interfase para uso de soluciones de backup de terceras partes. Terminología de backup Término Descripción Backup 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 físico en disco).

Dispositivo de backup El archivo físico (como ser c:\Backups\Full.bkp) o una unidad de cinta específica (como ser \\.\Tape0) que podemos usar para registrar un backup en un medio de backup.

Archivo de backup Un archivo que almacena un conjunto de backup. Medio de backup El medio físico (disco o cinta) usado para guardar un conjunto de

backup usando un archivo de backup. Los medios de backup pueden guardar múltiples conjuntos de backup (como ser múltiples backups de SQL Server y Windows 2000).

Conjunto de backup El backup de una operación 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.

Familia de medios Todos los medios (archivos físicos o cintas) en un conjunto de medios escritas en un solo dispositivo de backup por un conjunto de backup simple.

Cabecera de medios Proporciona información 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 sóla vez y permanece en el medio de backup durante toda la vida de este medio.

Conjunto de medios Todo medio involucrado en una operación 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

FAGDUT 2 CCI

Page 3: M_dulo 04 Curso SQL server

Curso SQL Server 2000 Capítulo 4

conjunto de cintas escritas por más de un dispositivo de backup. Creación de Dispositivos de Backup permanentes Podemos crear uno o más 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 automatización de backups de bases de datos. Habiendo hecho backups en dispositivos permanentes nos permite referenciar los mismos en los comandos de backup y restauración usando sólo su nombre lógico, en lugar del nombre físico 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 Administración, hacemos click derecho en Copia de seguridad, y hacemos click en Nuevo dispositivo de copia de seguridad. En el cuadro de diálogo Propiedades del dispositivo de copia de seguridad: Nuevo dispositivo, especificaremos un nombre lógico para el dispositivo y definiremos la dirección 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 específicos 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 3 CCI

Page 4: M_dulo 04 Curso SQL server

Curso SQL Server 2000 Capítulo 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 físico subyacente. Para eliminarlo, usaremos la siguiente sentencia T-SQL: sp_dropdevice ‘FullBackupDevice’, ‘DELFILE’ PRÁCTICA 4.1 – CREACIÓN 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 máquina 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 Nótese que debemos tipear un GO luego de cada sentencia de creación de dispositivo.

3. Ejecutaremos el lote con el botón Ejecutar. 4. A continuación, en el panel de consulta, tipearemos lo siguiente:

sp_helpdevice

5. Ejecutaremos este procedimiento almacenado. Notemos que aparecerán cinco

dispositivos de copia de seguridad, así como información de las bases de datos Master, Model y Tempdb.

FAGDUT 4 CCI

Page 5: M_dulo 04 Curso SQL server

Curso SQL Server 2000 Capítulo 4

6. Finalmente, cerraremos el Analizador de Consultas y terminaremos la práctica. 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 gráfica simple para realizar backups interactivamente. Usar el Administrador Corporativo es una buena manera de comenzar a realizar copias de seguridad, permitiéndonos familiarizarnos con la terminología de los backups y sus opciones. El comprender las opciones de backup a través del Administrador Corporativo nos ayudará a comprender las sintaxis de Transact-SQL para backups. Podemos realizar backups directamente con el Administrador Corporativo, o también usar el Asistente para creación de Copias de Seguridad. Usando el Asistente El Asistente para creación de Copias de Seguridad se encuentra disponible en el menú Herramientas. A continuación veremos la ventana donde podemos seleccionar este asistente:

FAGDUT 5 CCI

Page 6: M_dulo 04 Curso SQL server

Curso SQL Server 2000 Capítulo 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, ingresándolo en la casilla Nombre de la caja de diálogo. También podemos especificar una descripción para al conjunto de backup. Esta descripción es opcional, pero es muy útil para distinguir entre múltiples backups.

FAGDUT 6 CCI

Page 7: M_dulo 04 Curso SQL server

Curso SQL Server 2000 Capítulo 4

A continuación, 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, sólo 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 recuperación simple.

FAGDUT 7 CCI

Page 8: M_dulo 04 Curso SQL server

Curso SQL Server 2000 Capítulo 4

Nota: No podremos realizar copias de seguridad diferenciales antes de realizar una copia de seguridad completa.

A continuación, en la página Seleccione el destino y la acción 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 ubicación 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 también establecer que SQL Server 2000 lea y verifique la integridad de un backup luego de completar la operación. Esta opción 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 8 CCI

Page 9: M_dulo 04 Curso SQL server

Curso SQL Server 2000 Capítulo 4

Si seleccionamos la opción Sobreescribir el medio de copia de seguridad, nos aparecerá a continuación 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 descripción. 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 9 CCI

Page 10: M_dulo 04 Curso SQL server

Curso SQL Server 2000 Capítulo 4

A continuación, en la página de Comprobación y programación de copia de seguridad, podremos verificar que estemos escribiendo al conjunto de medios correcto y que la fecha de expiración del conjunto de backups (si la hubiera) ya ha pasado. Podemos usar esta característica para prevenir la sobreescritura de un conjunto de backups que aún no haya expirado, o que se seleccione un dispositivo incorrecto en la interfase gráfica del Administrador Corporativo. Nota: SQL Server 2000 sólo usa la fecha de expiración del primer conjunto de backups en el medio de backup para determinar si todo el medio de backup puede ser sobreescrito. También en esta ventana, tendremos la posibilidad de agendar las copias de seguridad haciendo click en el botón de comando Cambiar en la sección Programación:

FAGDUT 10 CCI

Page 11: M_dulo 04 Curso SQL server

Curso SQL Server 2000 Capítulo 4

Finalmente, terminaremos el asistente con la siguiente ventana que nos dice los pasos a seguir a continuación. Cuando hagamos click en Finalizar, se realizará la copia de seguridad con los parámetros 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 pestañas 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 pestaña, podemos especificar si se realizará una verificación de la copia de seguridad al concluir, si vamos a quitar las entradas inactivas del registro de transacciones (truncar el log), etc. También podemos asignar una etiqueta al conjunto de medios en el que se hace el backup. La siguiente figura nos muestra las dos pestañas de esta caja de diálogo:

FAGDUT 11 CCI

Page 12: M_dulo 04 Curso SQL server

Curso SQL Server 2000 Capítulo 4

Nota: Notemos la casilla de selección 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 pestaña General, si estamos realizando un backup de archivo o grupo de archivos, deberemos hacer click en el botón 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 diálogo Especificar grupos de archivos y archivos.

FAGDUT 12 CCI

Page 13: M_dulo 04 Curso SQL server

Curso SQL Server 2000 Capítulo 4

Luego de seleccionar un medio de backup (cinta o disco), hacemos click en el botón Agregar para seleccionar un destino para el backup. En esta caja de diálogo, 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 botón 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

Page 14: M_dulo 04 Curso SQL server

Curso SQL Server 2000 Capítulo 4

PRÁCTICA 4.2 – BACKUP DE LA BASE DE DATOS MSDB USANDO EL ADMINISTRADOR CORPORATIVO En esta práctica, 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 pestaña General, en la caja de texto Nombre, tipearemos Copia de seguridad completa de MSDB #1.

4. En la caja de texto Descripción, ingresaremos Conjunto de backup #1. 5. En la sección Destino, hacemos click en el botón de comando Agregar. 6. Seleccionaremos el dispositivo de backup creado el prácticas anteriores, el llamado

MSDBFullBackup. 7. Haremos click para seleccionar Sobreescribir medio existente. 8. En la pestaña 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 Descripción, 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 También 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 información 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 parámetros 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

práctica que no es tan así. A continuación, 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

Page 15: M_dulo 04 Curso SQL server

Curso SQL Server 2000 Capítulo 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 descripción en la cláusula 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 idéntica 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). PRÁCTICA 4.3 – REALIZACIÓN DE BACKUPS USANDO T-SQL En esta práctica, 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

Page 16: M_dulo 04 Curso SQL server

Curso SQL Server 2000 Capítulo 4

USE CURSOSQL GO INSERT INTO AUTORES (

APELLIDO, NOMBRE, ANIONAC, ANIOMUERTE, DESCRIPCION ) VALUES (

'Perez', 'Juan', '1970', '1999', 'Descripción' ) INSERT INTO AUTORES (

APELLIDO, NOMBRE, ANIONAC, ANIOMUERTE, DESCRIPCION ) VALUES (

'Rodriguez', 'Jose', '1935', '1984', 'Descripción' ) INSERT INTO AUTORES (

APELLIDO, NOMBRE, ANIONAC, ANIOMUERTE, DESCRIPCION ) VALUES (

'Juarez', 'Ruben', '1945', 'N/A', 'Descripción' ) INSERT INTO AUTORES (

APELLIDO, NOMBRE, ANIONAC, ANIOMUERTE, DESCRIPCION ) VALUES (

'Dominguez', 'Pedro', '1973', 'N/A', 'Descripción' ) INSERT INTO AUTORES (

APELLIDO, NOMBRE, ANIONAC, ANIOMUERTE, DESCRIPCION ) VALUES (

'Magallanes', 'Jorge', '1962', 'N/A', 'Descripción' ) 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', 'Descripción' ) INSERT INTO AUTORES (

APELLIDO, NOMBRE, ANIONAC, ANIOMUERTE, DESCRIPCION ) VALUES (

'Camino', 'Juan', '1935', '1984', 'Descripción' ) INSERT INTO AUTORES (

APELLIDO, NOMBRE, ANIONAC, ANIOMUERTE, DESCRIPCION ) VALUES (

'Carpentier', 'Alejo', '1945', 'N/A', 'Descripción' ) GO BACKUP DATABASE CURSOSQL TO CURSOSQLDiffBackup WITH DIFFERENTIAL, FORMAT , MEDIANAME = 'CURSOSQLDiffBackup' , MEDIADESCRIPTION =

'Medio para Backups Diferenciales de CURSOSQL' ,

FAGDUT 16 CCI

Page 17: M_dulo 04 Curso SQL server

Curso SQL Server 2000 Capítulo 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', 'Descripción' ) INSERT INTO AUTORES (

APELLIDO, NOMBRE, ANIONAC, ANIOMUERTE, DESCRIPCION ) VALUES (

'San Martín', 'Jose', '1935', 'N/A', 'Descripción' ) 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', 'Descripción' ) 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 restauración. Aprenderemos cómo restaurar bases de datos completas, así como restaurar una base de datos en un punto específico del tiempo.

FAGDUT 17 CCI

Page 18: M_dulo 04 Curso SQL server

Curso SQL Server 2000 Capítulo 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 opción Without Truncation) nos permiten recuperar una base de datos en un punto específico del tiempo. A continuación, 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 dañadas. Podemos realizar una restauración de base de datos completa o una restauración de archivos o grupo de archivos. En cada caso, para comenzar la restauración, 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 más eficiente de restauración usando la información de backup guardada en la base de datos MSDB. Si deseamos ver información 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 aparecerán en una caja de diálogo como la que vemos a continuación:

FAGDUT 18 CCI

Page 19: M_dulo 04 Curso SQL server

Curso SQL Server 2000 Capítulo 4

Si la ubicación del archivo de backup ha sido movida desde la ubicación original registrada en la base de datos Msdb, podemos hacer click en el botón Cambiar en las propiedades del conjunto de backup y especificar una nueva ubicación. Una vez que hayamos determinado cuáles conjuntos de backup vamos a restaurar, haremos click en la pestaña Opciones en el cuadro de diálogo Restaurar base de datos, como vemos en la siguiente figura:

Dentro de la pestaña Opciones bajo la columna Restaurar como, podemos cambiar la ubicación física de cada archivo de datos que está siendo restaurado. Por defecto, los archivos de datos son restaurados en su ubicación original (sobreescribiendo los archivos con los mismos nombres que hubiera en esa carpeta). Aquí también podemos seleccionar el estado de recuperación al concluir la restauración. 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 opción 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 opción No Recovery de T-SQL.

• Podemos elegir dejar la base de datos como de sólo lectura y poder restaurar backups adicionales del registro de transacciones. Esto es equivalente al modo No Operativa de T-SQL. Seleccionando la opción sólo lectura requiere la especificación de un archivo para deshacer que será creado durante la restauración. Este archivo de para deshacer es creado por defecto en la carpeta de Backup y llamado UNDO_BaseDeDatos.DAT.

FAGDUT 19 CCI

Page 20: M_dulo 04 Curso SQL server

Curso SQL Server 2000 Capítulo 4

Cuando hacemos click en Aceptar, finalmente se realiza la operación de restauración y la base de datos o es recuperado o queda en estado No Operativa, permitiendo la restauración de backups del registro de transacciones. PRÁCTICA 4.4 – RESTAURAR USANDO EL ADMINISTRADOR CORPORATIVO En esta práctica, realizaremos una restauración completa de la base de datos CURSOSQL usando el Administrador Corporativo:

1. Abrimos el Analizador de Consultas, y tipearemos la siguiente sentencia errónea que causa la pérdida 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 opción Restaurar, hacemos click en Desde dispositivos. 5. Hacemos click en el botón 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 botón de comando Ver Contenido, podemos ver el contenido del

conjunto de backup seleccionado. 9. Finalmente, hacemos click en Aceptar para comenzar el proceso de restauración. 10. Para concluir esta práctica, desde el Analizador de Consultas tipeamos lo siguiente:

USE CURSOSQL GO SELECT * FROM AUTORES GO

Recuperación de una Base de datos en un punto específico del tiempo Si determinamos que necesitamos restaurar una base de datos en un punto específico del tiempo, podríamos tener que restaura uno o más conjuntos de backup y dejar la base de datos en modo de no-operativa o sólo-lectura. El modo no-operativa nos permite ver la condición de la base de datos al final de cada restauración 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 opción Restauración en un momento dado en la pestaña General de la caja de diálogo Restaurar base de datos, y seleccionaremos la fecha y hora exacta hasta donde deseamos que la restauración de la base de datos se detenga. Ver la siguiente figura:

FAGDUT 20 CCI

Page 21: M_dulo 04 Curso SQL server

Curso SQL Server 2000 Capítulo 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 restauración a un momento dado. 4.4 – RESTAURAR USANDO TRANSACT-SQL También 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 información discutida en el apartado del Administrador Corporativo, pero su sintaxis requiere un poco de práctica. Transact-SQL proporciona asimismo algunos parámetros adicionales, útiles sobre todo cuando hacemos backups directamente en cinta.

• Podemos restringir el acceso a la nueva base de datos restaurada sólo a los administradores del sistema.

• Podemos mover una base de datos a otra ubicación, usando la opción MOVE. • Podemos especificar una Password. • Podemos reiniciar una restauración 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 FROM NorthwindFullBackup WITH NORECOVERY RESTORE DATABASE Northwind FROM NorthwindDiffBackup WITH FILE = 2, NORECOVERY RESTORE LOG Northwind FROM NorthwindTLogBackup WITH FILE = 4, NORECOVERY RESTORE LOG Northwind FROM 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 restauración de un backup diferencial, y finalmente la restauración de dos backups del registro de transacciones (conjuntos 4 y 5 del dispositivo de backup). La recuperaciòn de la base de datos ocurre luego de que el segundo backup del registro de transacciones es efectuado.

FAGDUT 21 CCI

Page 22: M_dulo 04 Curso SQL server

Curso SQL Server 2000 Capítulo 4

Restaurar usando la opción 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 restauración 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, también 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 restauración 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 específico 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 continúa con la restauración de dos registros de transacciones. Cuando el segundo log es restaurado, se realiza la restauración al 2 de Octubre del 2000.

FAGDUT 22 CCI