miércoles, 20 de julio de 2011

Alternativa a SQL Agent

Es bastante común en las versiones Express de SQL Server que se busque una alternativa a SQL Server Agent para programar JOBS tan necesarios como actualizar algunas tablas o crear respaldos.

La alternativa es similar a lo que se hace con MYSQL, usando la herramienta OSQL para efectuar los comandos y creando una Tarea Programada en Windows.

El proceso consta de tres sencillos pasos:
1) Crear un archivo *.sql con las instrucciones deseadas (actualizaciones, respaldos, restauraciones, etc)
2) Crear un archivo *.bat que ejecute OSQL llamando al scritp *.sql creado.
3) Crear una tarea programada en Windows que ejecute el archivo *.bat (ó *.cmd).

Ejemplo:
Supongamos que deseamos respaldar una base de datos.
Abrimos el bloc de notas (o el Notepad++ ó Sql Server Management Studio ó el editor SQL que usen) y tecleamos:

USE Master
GO
BACKUP DATABASE [MiBaseDeDatos] TO DISK = N'C:\MisRespaldos\MiBaseDeDatos.BAK' WITH INIT;
GO

Guardamos el archivo ("Miscript.sql", por ejemplo).
Volvemos a abrir el editor y tecleamos:

OSQL -E -i C:\Ruta_A_Mi_archivo\Miscript.sql -o C:\Ruta_Deseada\Salida.rpt -n

Guardamos el archivo como "RespaldoMiBase.bat".
Creamos la tarea programada en Windows, configurandola para ejecute el archivo: "RespaldoMiBase.bat"
Y listo.

El parámetro -E en OSQL significa que se usa una conexión de confianza. Si deseas configurar usuario y contraseña debes usuar los parámetros adecuados:
-U [Nombre de Usuario o Login] y -P [Contraseña]
El parámetro -n significa "no headers", con ello los encabezados (carácteres < y > y conteo de lineas) no se escribirán.
El parámetro -o significa archivo de salida. Especificando el archivo de salida provocará que lo resultados se impriman a este, pero no a pantalla.
Si utilizas una conexión de confianza no se te olvide incluir "USE [DATABASE]" o referir con ruta completa (BaseDeDatos.schema.Tabla) a las tablas de las base de datos.

No se les olvide probar antes el script SQL, la llamada a OSQL desde la línea de comandos y por último la ejecución del archivo *.bat.

Además, deben recordar que las tareas programadas en Windows dependen de la cuenta de usuario que les asignan, asi que si cambian la contraseña y no actualizan la tarea, esta no se ejecutará.

No hay comentarios:

Publicar un comentario