Вы находитесь на странице: 1из 2

Backups automticos en SQL Server 2005

Cmo realizar backups automticos con lnea de comandos en SQL Server 2005.
Hasta el da de hoy, no haba tenido jams la necesidad de acceder a SQL Server por lnea de comando, aunque haba trabajado accediendo a bases de datos de esta forma en varias oportunidades con MySQL y Oracle. Supuse que una herramienta as debera existir, y as es: para los que no lo conocen, el programa SQLCMD se instala con SQL Server en la carpeta C:\Archivos de programa\Microsoft SQL Server\90\Tools\Binn. La necesidad de esta herramiento surgi porque necesitaba implementar la realizacin de copias de seguridad para un cliente y es el tip que voy a compartir hoy con ustedes. Para configurar este proceso se necesita lo siguiente: 1. Crear un script SQL que realice la copia de seguridad. 2. Crear un archivo batch que ejecute el SQLCMD y el script SQL. 3. Crear una tarea programada en Windows para que llame al archivo batch con la regularidad deseada.

El script backup.SQL
Este script realiza un backup de la base de datos de una forma muy sencilla: 1. Setea la base de datos en modo SINGLE_USER. 2. Realiza la copia de seguridad. 3. Vuelve a setear la base de datos en modo MULTI_USER. Sin ms preambulos, los dejo con el script:
DECLARE @fecha VARCHAR(50) DECLARE @archivo VARCHAR(50) SET @fecha = CONVERT(VARCHAR(4), YEAR(GETDATE()))+'-'+ CONVERT(VARCHAR(2), MONTH(GETDATE()))+'-'+CONVERT(VARCHAR(2), DAY(GETDATE())) SET @archivo = 'C:\tmp\BD_'+ @fecha +'.bak' ALTER DATABASE BD SET SINGLE_USER WITH ROLLBACK IMMEDIATE BACKUP DATABASE BD TO DISK = @archivo ALTER DATABASE BD SET MULTI_USER GO EXIT

Lo nico que debern tener en cuenta es crear la carpeta C:\tmp con permisos de escritura para el usuario Servicio de Red y reemplazar BD por el nombre de la base de datos que desean resguardar.

El archivo batch backup.bat


Este archivo se encarga de llamar al SQLCMD y pasarle el script que vimos anteriormente: SQLCMD -S(local)\SQLEXPRESS -E -i"C:\backup.sql" "C:\Archivos de programa\WinRAR\rar" a BACKUP.rar c:\TMP*.* ECHO S | DEL c:\TMP Observen que la forma de conectarse al servidor, en la primera lnea se especifica con el flag -S, seguido del nombre del Servidor, en mi caso (local)\SQLEXPRESS. Luego, el flag -E indica conexin con autenticacin de Windows. Finalmente con el flag -i se especifica el archivo SQL a ejecutar. Pueden obtener ms informacin sobre SQLCMD en este artculo de Database Journal. En la segunda lnea procedemos a comprimir los archivos del backup, que se encuentran en la carpeta C:\TMP. Para esto utilizamos WinRAR (que deberan descargar si quieren utilizar esto). Finalmente borramos todo el contenido del directorio C:\tmp. Tengan en cuenta que si no quieren comprimir, tambin deben eliminar esta lnea. Configuracin de la tarea programada Programar tareas para su ejecucin en Windows es muy sencillo, por lo que no me voy a explayar mucho. Simplemente vayan a: Panel de Control/Tareas Programadas/Agregar tarea programada y sigan los pasos del asistente. El archivo que deberan seleccionar para ejecutarse es backup.bat y la frecuencia es a su gusto y necesidad.

Вам также может понравиться