设为首页 收藏本站
查看: 723|回复: 0

[经验分享] SQL Server 2008 maintenance plan package (维护计划包) 迁移步骤

[复制链接]

尚未签到

发表于 2016-11-8 07:25:03 | 显示全部楼层 |阅读模式
通过management studio 连接到本地的integration service, 将maintenance package 导出成文件.

DSC0000.gif

  

DSC0001.gif
  用文本编辑器打开导出的包文件, 修改其中的'Server'的值为新的服务器地址, 然后保存.
  

DSC0002.gif


将修改后的package导入到新的服务器上, 也是用management studio连接到目的服务器的integration service导入.



DSC0003.gif


这样就完成了pakcage的导入.

由于package的调度一般使用SQL Agent的job, 所以,需要同时把package对应的job迁移过来.

对于job的迁移有两种办法, 一种是在目的服务器上修改package的界面中, 直接创建和源服务器上job一致的schedule,保存package后会生成一个调用package的job.

另一种就是把源服务器上的job导出, 导入到目的服务器中,并修改系统表,使之和目的服务器上的package相关联.

第一种可以用management studio的界面直接操作, 就不作介绍.

第二种方法麻烦一些, 这里只介绍一下手动的办法, 如果读者有精力,可以写成批量的脚本.

首先将源服务器上package对应的job, script out 出来, 然后在目的服务器上创建这个job.

如果这时执行job, 虽然job和package都迁移了过来, 但是执行会报以下的错误:


'The INSERT statement conflicted with the FOREIGN KEY constraint "FK_sysmaintplan_log_subplan_id". The conflict occurred in database "msdb", table "dbo.sysmaintplan_subplans", column 'subplan_id''

经过一番研究, 解决办法如下:

用文本编辑器打开package, 找到以下一段:


DSC0004.gif

将其中ObjectName, DTSID和 Description的值拷贝出来. 他们就是以下语句中@subplan_name,@subplan_id,@subplan_description三个变量的值

再找到以下一段

DSC0005.gif

将其中的DTSID也拷贝出来, 即是以下语句中@plan_id的值

执行以下的语句.


  DECLARE @Job_id UNIQUEIDENTIFIER, @subplan_id UNIQUEIDENTIFIER, @plan_id UNIQUEIDENTIFIER, @job_name VARCHAR(1000), @subplan_name VARCHAR(1000), @subplan_description VARCHAR(1000), @schedule_id INT set @job_name = 'your job name'set @subplan_id = '722AFED8-C5A6-4D19-88E9-E9936D456931'set @plan_id = '42E1FC8D-7183-49FB-933E-8B6A9C72507F'set @subplan_name = 'Subplan_1'set @subplan_description = 'Subplan_1'SELECT  @job_id = job_idFROM    msdb.dbo.sysjobsWHERE   name = @Job_name SELECT  @schedule_id = schedule_idFROM    dbo.sysjobschedulesWHERE   job_id = @job_id INSERT  INTO dbo.sysmaintplan_subplansSELECT  @subplan_id, @subplan_name, @subplan_description, @plan_id, @job_id, NULL, @schedule_id, 0
执行成功后, 再执行job, 就不会报上述的错误了.

其实package,就是一个xml文件, 如果读者对xml的处理比较熟悉, 可以将获得@subplan_id等的过程, 用sql语句写出来, 这样迁移就更方便了.



  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-297076-1-1.html 上篇帖子: 如何删除SQL SERVER 2000的日志文件空间? 选择自 softj 的 Blog 下篇帖子: 《Microsoft SQL Server 2008 MDX Step by Step》学习笔记二:理解元数组(Tuples)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表