Buen día en este último día de marzo de 2022 queridos lectores, el día de hoy les traigo un post acerca de como respaldar y restaurar los jobs de una instancia, y dicho sea de paso, también como respaldar y restaurar la base de datos msdb.
¿Qué es la base de datos msdb?
¿Como crear un job?
¿Como respaldar los jobs?
BACKUP DATABASE [msdb] TO
DISK = N'D:\msdb_bak.bak' WITH NOFORMAT,
NOINIT, NAME = N'msdb-Full Database Backup', SKIP, NOREWIND, NOUNLOAD,
STATS = 10
GO
Eliminar job
USE msdb ;
GO
EXEC sp_delete_job
@job_name = N'Job de Prueba' ;
GO
Ahora procedemos a restaurar los jobs restaurando la base de datos msdb
¿Como restaurar los jobs?
USE [master]
RESTORE DATABASE [msdb] FROM
DISK = N'D:\msdb_bak.bak'
WITH FILE = 1,
NOUNLOAD, STATS = 5
GO
Al ejecutar este query obtendremos el siguiente resultado:
Msg 3101, Level 16, State 1, Line 2
Exclusive access could not be obtained
because the database is in use.
Msg 3013, Level 16, State 1, Line 2
RESTORE DATABASE is terminating
abnormally.
Completion time:
2022-03-31T13:23:21.3588502-06:00
El resultado de este query nos muestra un error, que nos indica que la base de datos está en uso, esto es correcto, debido a que el Agente SQL esta en ejecución, por lo cual procedemos a detener el agente.
Ahora volvemos a ejecutar el query del restore y obtendremos el siguiente resultado:
Una ves restaurada la base de datos procedemos a iniciar el servicio del agente y a corroborar que los jobs se han restaurado:
También veremos que la historia de ejecución de JOB se conserva:
Como podemos observar la historia de ejecución también se restauró debido a que esta almacenada dentro de la misma base de datos.
Hasta aquí el post queridos lectores, espero haya sido de su agrado y de utilidad, espero compartan, comenten y cualquier duda estamos a la orden.
Les dejo un video para mayor claridad
Saludos