Las versiones Express de SQL Server carecen del servicio SQL Agent que nos permite programar una serie de tareas. En este apartado, veremos como se puede automatizar una tarea de backup de una base de datos SQL Express.
Primeramente se ha de definir un Dispositivo de Copia de Seguridad. Esta operación puede realizarse en el árbol del servidor, en el apartado «Objetos de servidor». El proceso es sencillo, definimos un dispositivo de copia de seguridad proporcionando la ruta y nombre del archivo donde vamos a almacenar las copias y le damos un nombre significativo que vamos a usar a posteriori. Para este ejemplo, supongamos que el nombre es BackupBD.
El proceso de realizar una copia de seguridad se realiza con el comando BACKUP DATABASE. Tendríamos entonces algo como esto:
BACKUP DATABASE miBD TO BackupBD
donde miBD es la base de datos a guardar y BackupBD el nombre del dispositivo de copia. Debemos tener en cuenta que la copia que se va a realizar es total (es la opción por defecto). Para consultar otras opciones, ver Libros en Pantalla, entrada Backup.
Bien, si dispusiéramos del servicio Agente de SQL Server, sería tan sencillo como definir un trabajo y darle este Backup, pero ese privilegio está reservado a las versiones comerciales de SQL Server. Dada la situación, podemos recurrir entonces a las Tareas Programadas que nos proporciona Windows.
Podemos ejecutar consultas SQL, procedimientos almacenados, etc. con el comando de sistema osql. Ésta va a ser la puerta que nos abra a poder automatizar esta tarea. Si nosotros lanzamos en una ventana de comando algo como esto:
osql –S SERVIDOR\SQLEXPRESS -U sa -P password -Q \” BACKUP DATABASE miBD TO BackupBD”
podremos ver que realiza perfectamente el backup.
Muy bien, pues la solución es tan sencilla como crear un archivo bat que ejecute este comando, o crear un ejecutable en cualquier lenguaje que haga el mismo trabajo (más que nada para que no pueda cualquiera con un simple editor de texto ver la contraseña de administrador).
Una vez hecho esto, creamos una nueva tarea en el sistema operativo que llame a este .bat o .exe con la frecuencia que decidamos (diariamente, solo laborales, semanalmente, etc) y tendremos de esta forma un backup automático de nuestra BD con esa frecuencia.