jueves, 17 de enero de 2013

REALIZAR RESPALDOS (BACKUP) AUTOMATICOS EN SQL SERVER 2000 Y GUARDARLOS EN UN REPOSITORIO POR FECHAS



La actividad de generar respaldos automáticos se los divide en dos partes:

1. Programar una tarea (En SQL Server) que permita obtener automáticamente un respaldo de la base de datos.

2. Programar una tarea (En el Sistema Operativo) que permita renombrar el respaldo obtenido, especificando un formato con fecha-hora y moverlo a un directorio o repositorio de respaldos ya sea en el propio servidor o en otro equipo (Carpeta Compartida).

PARTE I. PROGRAMAR LA OBTENCIÓN DE UN RESPALDO AUTOMÁTICO EN LA BASE DE DATOS 

a) Iniciar sesión como usuario Administrador

b) Abrir el programa SQL Server Enterprise Manager: Inicio --> Todos los Programas --> Microsoft SQL Server --> Enterprise Manager
 


c) Verificar que el Servicio SQL Server Agent se encuentre Iniciado


 

d) Como se puede apreciar, el programa SQL Server Agent, es el que permite crear una tarea programada o trabajo (Job), en este caso la obtención de un respaldo automático de la Base de Datos. Al hacer clic derecho sobre el Item Jobs, se muestra la opción New Job, seleccionamos y aparece una ventana en la que se parametrizará la tarea que queremos.

En la casilla Name, se define el nombre del trabajo (Job).



e) La pestaña Steps, permite seleccionar la base de datos de la cual se desea obtener un Backup. Para establecer la Base de Datos, se debe dar clic en el botón New

 

f) En esta opción, se define un nombre de Paso (Step), en este caso se lo va a llamar PASO 1, se define el Tipo de Transacción (Dejamos la opción predeterminada),  se selecciona la Base de Datos y se establece el comando que se va a ejecutar, en este caso definimos el comando que va a permitir obtener un respaldo de la base de datos y la ubicación en la que se va a almacenar


En el caso de nuestro ejemplo el comando es:

BACKUP DATABASE [acad_db] TO  DISK = N'C:\2013\acad_db' WITH  INIT ,  NOUNLOAD ,  NAME = N'acad_db backup',  NOSKIP ,  STATS = 10,  NOFORMAT

g) En la pestaña Schedules (Programas), hacemos clic en el botón New Schedule para crear la nueva tarea.

 

h) Al crear la nueva tarea o programa, se tiene que especificar un nombre, de manera predeterminada aparece seleccionada la opción Recurring. Para establecer los días y hora en que queramos que se ejecute automáticamente la tarea, presionamos el botón Change


i) En esta sección, el usuario establece los días, horas y periodicidad de la ejecución de la tarea, en este caso, se va a definir semanalmente los días Lunes, Martes, Miércoles, Jueves y Viernes a las 16H15 cuyo inicio será el 18 de Enero de 2013. (Si queremos que la tarea se ejecute indefinidamente cada semana, se debe seleccionar No end date, por el contrario, si queremos que la tarea se ejecute hasta determinada fecha, se debe seleccionar End Date y establecer la fecha de finalización)
 


j) Finalmente damos clic en Aplicar y luego Aceptar, con lo cual quedará creada nuestra tarea programada de respaldo de la base de datos que iniciará su ejecución a partir del 18 de enero de 2013, de lunes a viernes a las 16h15, el respaldo lo realizará en un directorio ubicado en C:\2013 con el nombre acad_db



PARTE II. PROGRAMAR LA DEFINICION DEL NOMBRE DEL RESPALDO CON FORMATO FECHA Y HORA Y REALIZAR UNA COPIA DE SEGURIDAD A UN DIRECTORIO REMOTO
 

a) Como se pudo apreciar en la Parte I, solo se definió un respaldo con un nombre simple en una ubicación dada. Para complementar el proceso de Respaldos automáticos, se debe crear una tarea programada a nivel de Sistema Operativo. Como recordarán el Job de Base de Datos crea el respaldo a las 16h15, asumiendo que la generación del respaldo tarde 30 minutos, la tarea programada se deberá definir para que se ejecute a las 16h45 (una vez que haya finalizado la creacion del archivo de respaldo o backup), para lo cual primero, debemos crear una unidad de red al directorio remoto, que en nuestro ejemplo lo definimos como la Unidad R:



b) El siguiente paso es crear un archivo .bat que renombre el archivo de respaldo obtenido en el punto anterior, le dé un formato con fecha y hora y que una vez hecho esto, realice una copia de seguridad al Directorio Remoto (Unidad de red R:\)

Para crear un archivo .bat, se puede utilizar un editor de textos como el bloc de notas, simplemente que al grabarlo (Guardad como…), se debe establecer la extensión .bat y en tipo establecer Todos los archivos.

Para este ejemplo, se ha definido el nombre del archivo .bat como RESPALDAR_ACAD_DB y se encuentra ubicado en el directorio raíz C:\

El archivo en mención va a tener la siguiente información:


@ECHO OFF

@ECHO RESPALDO DE ARCHIVOS

REM creamos una variable conteniendo la fecha actual con el formato año-mes-dia

REM SET FECHA=%date:~6,4%%date:~3,2%%date:~0,2%
SET FECHA=%date:~0,2%%date:~3,2%%date:~6,4%
SET HORA=%time:~0,2%H%time:~3,2%
SET ORIGEN="C:\2013\"
SET DESTINO="R:\"

REM Ejecutamos la instrucción

CD %ORIGEN%
REN acad_db acad_db_%FECHA%_%HORA%
COPY %ORIGEN%acad_db_%FECHA%_%HORA% %DESTINO%acad_db_%FECHA%_%HORA%

REM PAUSE

c) Una vez hecho esto, se crea una tarea programada desde Inicio --> Panel de Control --> Tareas programadas --> Agregar tarea programada




d) En esta parte, se abre una ventana con un asistente que nos guiará para la creación de la tarea programada. En este punto, simplemente presionamos Siguiente.

e) El asistente nos da la opción de seleccionar un programa o archivo ejecutable, el cual se va a ejecutar automáticamente, en este caso vamos a seleccionar el archivo .bat que creamos llamado RESPALDAR_ACAD_DB.bat
 


f) Después de seleccionar el archivo .bat, se debe especificar la periodicidad de la ejecución de la tarea programada, el este caso semanalmente de Lunes a Viernes a las 16h45
 




g) Posteriormente se debe seleccionar el usuario del Sistema Operativo y la contraseña; debido a que estas son tareas de Administración, se recomienda realizar la tarea con el usuario Administrador
  


h) En la última ventana presionar Finalizar y Listo