viernes, 11 de febrero de 2011

Backup automáticos de bases de datos SQL Server 2008

Hace mucho tiempo que he tenido la necesidad de generar copias de seguridad (Backup) de las bases de datos que estoy utilizando, en muchos lugares han publicado opciones que son funcionales pero que no utilizan las herramientas que SQL Server tiene, gracias a todos los lugares que visite se me vino una idea a la mente!!! se las detallo a continuación:

Primero les comentare un poco acerca de lo que utilice para tener en el servidor la programado para la generación de copias de seguridad automáticas lo que se necesita es lo siguiente;

1.Script para la generación de los BACKUP.
2. Agente de SQL Server.

El primer paso es crear el script que genera el respaldo de la base de datos, les dejo el script para que ustedes remplacen las variables necesarias de manera que les sirva en su objetivo:
 
USE nombre_de_su_base;
GO
declare @fecha varchar(MAX)
declare @archivo varchar(MAX)
set @fecha = CONVERT(Varchar(max), GETDATE(),102)+'_'+SUBSTRING(CONVERT(varchar(10), getdate(),108),1,2)+SUBSTRING(CONVERT(varchar(10), getdate(),108),4,2)+'horas'
set @archivo ='C:\nombredelacarpetaBACKUP\nombre_de_su_base'+@fecha+'.bak'
BACKUP DATABASE nombre_de_su_base
TO DISK = @archivo
   WITH FORMAT,
      MEDIANAME = 'D_SQLServerBackups',
      NAME = 'Full Backup of nombre_de_su_base';
GO

Explico un poco el código:
Se han creado dos variables @fecha y @archivo, @fecha es la fecha en la que sea creado el respaldo, es una buena practica ponerle la fecha para identificar la antigüedad del respaldo. La otra variable es @archivo la cual contiene la ruta en la que se guardara el respaldo, si lo hacen directamente en la raíz de la unidad "C" es posible que tengan problemas de permiso de escrituras, por eso les recomiendo que coloquen el respaldo en una carpeta. Donde dice  "nombre_de_su_base" deben cambiarlo por nombre  de la base a la cual se le generara un respaldo de seguridad.
El resto del código es Transact-SQL, les dejo la siguiente URL para enriquezcan mas los conocimiento del mismo: http://msdn.microsoft.com/es-es/library/ms189826(v=SQL.90).aspx

Como segundo paso debemos configurar el Agente de SQL Server  para programar una tarea que será que encargada de ejecutar el Script que sea especificado en el paso uno,  para ello haremos lo siguiente:

1. Iniciar sesión en el SQL Server Management para poder tener acceso a la configuración del Agente de SQL Server.

2. Al entrar al SQL Server Management observaremos en el explorar de objetos que el agente de SQL Server que encuentra al final del arbol  del explorar


Al dar click en icono del + se desplegara un submenu y en el esta la opción de Trabajos que es lo que nos interesa.

3. Al desplegar el SubMenu del Agente de SQL Server se debe crear un nuevo trabajo, para ello debemos dar click derecho para que se desplique  lo siguiente:


Como pueden observar tenemos la opción de Nuevo trabajo, demos click ahí para dar inicio la configuración del nuevo trabajo o tarea. 

4. Cuando damos click en Nuevo trabajo aparecerá la siguiente ventana:


En la ventana llamada "Nuevo trabajo" se especificara el nombre que tendrá la tarea que ejecutara el script para generar los respaldos de la base, adicional al nombre es recomendable que se escriba una breve descripción de la funcionalidad.

5. Al haber especificado en nombre de la tarea, damos click en la opción "Pasos" que se encuentra ubicada en la parte superior izquierda de la ventana "Nuevo trabajo", para configurar esa opción se hace lo siguiente:


En la ventana "nuevo paso" especificamos el nombre, la base de datos a la cual se le hará el respaldo y en la parte donde dice "Comando" hay que copiar el Script ya modificado a su conveniencia y damos un click en el botón Aceptar.

6. Ahora es el momento de programar la frecuencia con la que se generar los respaldo de seguridad, para ello damos click en la opción "Programaciones", para configurar una programación hacemos lo siguiente:  


En la ventana "Nueva Programación de trabajo" especificamos un nombre para poder identificar la programación, en la sección "Frecuencia" especificamos con que frecuencia queremos que se ejecute la tarea, para los respaldos de la base es recomendable que se haga diario o según la necesidad, si seleccionan  con una frecuencia diaria  en la sección  "Frecuencia Diaria" pueden especificar la hora de inicio y fin y otros datos más que que puede ser de utilidad. una ves sea hecho todas las especificaciones de la programación damos aceptar y luego aceptar para terminar con la configuración del Agente de SQL Server.

Bueno es todo lo que hay que hacer para tener la generación  de copias de seguridad de las bases de datos... Espero le ayude.... 

Exitos y que Dios les bendiga...