Deja un comentario

Como migrar un plan de mantenimiento de un servidor SQL Server


Como migramos un plan de mantenimiento, te has hecho esta pregunta, has tenido alguna vez este problema, ? si lo has hecho de habras dado cuenta que no es una tarea sencilla de dar click con el boton secundario y decir donde lo quieres guardar, bueno aqui te dejo un post traducido de un articulo de Gregory A.Larsen donde te muestro como realizar la migración en SQL Server sin perder la chabeta.

La mayoria de los DBA’s optan por reahacer el plan de mantenimiento completo antes de tener que pensar como hacer la migración de otra manera, en este post les voy a mostar como realizar la migración de un plan de mantenimiento de un servidor a otro.

No es un simple punto donde haces un click y listo,  tenemos que realizar una serie de pasos , pero ten en mente que esto solo funcionara si requieres hacer la migración de un solo plan si requieres migrar varios planes de mantenimietno vas a tener que realizar estos pasos mas de una vez.

PASO 1 – DETERMINAR LOS PLANES DE MANTENIMIENTOS DE NUESTRO SERVIDOR ORIGEN

SQL Server nos provee el stored procedure :  sp_help_maintenance_plan el cual nos mostrara la informacion de un plan de mantenimiento si especificamos el planid, si no especificamos nada nos mostrara la info de todos los planes, la sintaxis es la siguiente:

  • sp_help_maintenance_plan [ [ @plan_id = ] ‘plan_id‘ ]

recuerda que los planes de mantenimiento estan guardados en la base de datos del sistema MSDB. y el stored procedure de igual forma esta guardado en dicha base, para regresar la info de todos los planes tu tendrias que ejecutar lo siguiente:

  • exec msdb.dbo.sp_help_maintenance_plan

 

La ejecución te regresara las siguientes columnas:

plan_id plan_name date_created owner max_history_rows remote_history_server max_remote_history_rows user_defined_1 user_defined_2 user_defined_3 user_defined_4 log_shipping

 de aqui los importante es determinar el plan_id para el siguiente paso

PASO 2- DETERMINAR EL SQL SERVER AGENT JOB ID PARA UN PLAN DE MANTENIMIENTO ESPECIFICO

De la ejecución del job pudiste obtener los plan_id’s de cada plan que tienes en tu servidor fuente, ahora vamos a determinar cual es el plan que vas a migrar, entonces  ejecuta el stored con la siguiente sintaxis:

  • exec msdb.dbo.sp_help_maintenance_plan ‘<plan_id>’

esta vez la ejecución te regresara tres resultados diferentes en uno de ellos podras determinar   cual es el job_id que esta asociado con el plan_id

PASO -3 DETERMINAR EL NOMBRE DEL SQL SERVER AGENT JOB

En el paso anterio logramos identificar cual o cuales son los job_id’s que estan vinculados con nuestro plan a migrar ahora si le vamos a requerir de otro stored procedure para averiguar cual es nombre del job mediante su ID (sp_help_job) con la siguiente expresion:

  • exec msdb.dbo.sp_help_job ‘job_id’

Esta ejecución nos proporciona toda la información acerca del job incluyendo su nombre.

PASO -4 GENERAR TSQL_SCRIPT PARA LOS JOBS DEL SERVIDOR FUENTE

Como ya conocemos los nombres de los jobs ligados con nuestro plan de mantenimiento ahora podemos simplemente respaldarlos como mas te acomode, en lo personal yo lo hago con boton izquierdo sobre el objeto y luego le dice generar script.

PASO -5 CREAR LOS JOBS EN EL SERVIDOR DESTINO

Usando los scripts que respaldamos en el paso 4 vamos a crear el o los jobs respaldados en el servidor donde destino, simplemente tienes que ejecutar los scripts generados en una nueva ventana de query.

PASO -6  CREAR LOS PLANES DE MANTENIMIENTO EN EL SERVIDOR DESTINO

Para crear el plan de mantenimietno en el servidor destino puedes usar el stored procedure:  sp_add_maintenance_plan  a continuacion un ejemplo:

  • declare @myplan_id uniqueidentifier

    exec msdb.dbo.sp_add_maintenance_plann‘nombre_plan’,

    @plan_id=@myplan_id output

    print @myplan_id

Nota: Hacemos la impresion del plan_id por que lo necesitaremos en el proximo paso

 

PASO -7 AÑADIR BASE DE DATOS AL PLAN DE MANTENIMIENTO

En este paso modificaremos el plan creado en el paso anterior, vamos a añadir la base de datos que esta involucrada en nuestro plan de mantenimiento suponiendo que es un plan para todas nuestra bases de datos del sistema tendriamos que añadir una por una con el stored:  sp_add_maintenance_plan_db como acontinuacion se muestra:

  • exec msdb.dbo.sp_add_maintenance_plan_db‘E219D922-9B4F-4C15-BC16-35E0C93CB3EA’,N’master’
  • exec msdb.dbo.sp_add_maintenance_plan_db‘E219D922-9B4F-4C15-BC16-35E0C93CB3EA’,N’model’
  • exec msdb.dbo.sp_add_maintenance_plan_db‘E219D922-9B4F-4C15-BC16-35E0C93CB3EA’,N’msdb’
  • exec msdb.dbo.sp_add_maintenance_plan_db‘E219D922-9B4F-4C15-BC16-35E0C93CB3EA’,N’pubs’

PASO -8

Hasta este punto tenemos creado el job y el plan de mantenimiento asociado con su base de datos en el servidor destino, lo que nos quedari por hacer es asociar el job con el plan de mantenimiento. Para lograr esto utilizaremos el sp: sp_add_mainetenance_plan_job el cual tiene la siguiente sintaxis:

  • sp_add_maintenance_plan_job ‘plan_id’,‘job_id’

en el paso 6 obtuvimos el plan_id pero no conocemos el job_id asociado con el plan de mantenimiento, para obtenerlo utilizaremos nuevamente sp_help_job como el ejemplo:

  • exec msdb.dbo.sp_help_job@job_name=‘nombre job ”nombre plan”’

Ahora podemos ejecutar el sp para asociar job y plan

  • exec msdb.dbo.sp_add_maintenance_plan_job        ‘plan_id’,        ‘job_id’

 

y listoooo, ya tenemos un plan migrado exitosamente

 

Espero les sirva.

 

 

Fuente en ingles: http://www.databasejournal.com/features/mssql/article.php/10894_3066351_2/Migrating-a-Maintenance-Plan-from-One-SQL-Server-to-Another.htm

 

 

 

 

 

 

Anuncios

Si te sirvio o te gusto el post, deja un comentario, o vota por el blog, esto nos ayuda a seguir creciendo, Gracias

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: