Backup de bases de datos Microsoft SQL Express mediante Transact-SQL

Vamos a realizar un backup de tres bases de datos que residen en un MS SQL Express mediante linea de comandos y con la ayuda de las tareas programadas de MS Windows para programar su ejecución.



En primer lugar crearemos un archivo .sql con las instrucciones Transact-SQL para realizar un backup, a grosso modo la línea sería:
 
BACKUP DATABASE [Nombre_DB] TO  DISK = N'PathDestino' WITH  INIT ,  NOUNLOAD ,  NAME = N'Nombre_conjunto_Backup',  NOSKIP ,  STATS = 10,  NOFORMAT


La nomenclatura completa de la instruccion BACKUP de T-SQL se puede consultar en http://msdn.microsoft.com/es-es/library/ms186865.aspx

El contenido de nuestro archivo .sql quedaría de la siguiente forma:


BACKUP DATABASE [DB1] TO  DISK = N'C:\Backup_DB\DB1.bak' WITH  INIT ,  NOUNLOAD ,  NAME = N'Backup_DB1',  NOSKIP ,  STATS = 10,  NOFORMAT 
BACKUP DATABASE [DB2] TO  DISK = N'C:\Backup_DB\DB2.bak' WITH  INIT ,  NOUNLOAD ,  NAME = N'Backup_DB2',  NOSKIP ,  STATS = 10,  NOFORMAT 
BACKUP DATABASE [DB3] TO  DISK = N'C:\Backup_DB\DB3.bak' WITH  INIT ,  NOUNLOAD ,  NAME = N'Backup_DB3',  NOSKIP ,  STATS = 10,  NOFORMAT 

Ahora debemos crear un lanzador con un archivo .cmd. Usaremos el comando SQLCMD, el contenido del archivo sería:

rem El Foso del Sarlacc
rem Lanzador de backup DB 

SQLCMD -S SERVIDOR -E -i"C:\Script\Backup_DB.sql" > C:\Backup_DB\Backup_DB.log

Advertir que se redirecciona la salida (con el operador >) a un archivo de log para comprobar el resultado de la copia y después si precisa y se desea enviarlo por correo mediante, por ejmeplo, blat.

Ahora solo falta programar una tarea de Microsoft Windows para que ejecute el lanzador .cmd

Es necesario que el usuario que ejecuta la tarea programada de MS Windows tenga derechos (mínimo db_backupoperator) sobre las bases de datos de las que tiene que realizarel backup.



No hay comentarios:

Publicar un comentario