Greg Bala Asked: 2014-04-29 06:56:38 +0800 CST2014-04-29 06:56:38 +0800 CST 2014-04-29 06:56:38 +0800 CST 将维护计划复制到不同的服务器 772 有没有办法将维护计划从一个 SQL Server 2012 复制到另一个?两台服务器不能同时通过同一版本的 Management Studio 访问(在不同的网络上)。 sql-server-2012 maintenance-plans 3 个回答 Voted Best Answer Aaron Bertrand 2014-04-29T07:06:34+08:002014-04-29T07:06:34+08:00 转到存在作业的服务器,在 Management Studio 的对象资源管理器中转到 Management > SQL Server Agent 并突出显示 Jobs 文件夹。点击F7(或查看 > 对象资源管理器详细信息)。您应该在右侧窗格中看到多个作业。突出显示您要复制的那些,右键单击,将作业编写为 > 创建到 > 剪贴板。现在连接到另一台服务器,打开一个新的查询窗口,粘贴,然后按 F5。比使用 SSIS 更容易。 您可能需要采取其他步骤,具体取决于计划的用途。连接到 Integration Services 实例,而不是数据库实例,展开 Stored Packages > MSDB > Maintenance Plans,然后右键单击任何计划并选择 Export package。在另一台服务器上,执行相同的步骤,但右键单击维护计划并选择导入包。您必须为每个计划执行此操作。 Riccardo Bassilichi 2015-08-28T06:57:26+08:002015-08-28T06:57:26+08:00 我找到了一种更黑客的方式。 每个执行计划都是msdb.sysssispackages表中的一条记录。 msdb.sysssispackages您可以将记录从源服务器的表复制到msdb.sysssispackages目标服务器的表。 只需在源服务器上创建链接服务器并使用源服务器中的此插入: INSERT INTO YOUR-DEST-SERVER-NAME.msdb.dbo.sysssispackages SELECT name, id, description, createdate, folderid, ownersid, cast( cast( replace( cast( CAST(packagedata AS VARBINARY(MAX)) AS varchar(max) ), 'YOUR-SOURCE-SERVER-NAME', 'YOUR-DEST-SERVER-NAME') as XML) as VARBINARY(MAX)) as packagedata, packageformat, packagetype, vermajor, verminor, verbuild, vercomments, verid, isencrypted, readrolesid, writerolesid FROM msdb.dbo.sysssispackages AS sysssispackages_1 WHERE (name = 'YourMaintenancePlanName') 信息:替换服务器名称对于在维护计划设计器上处理目标连接至关重要。 重要提示:应对记录仅复制维护计划的结构。要重新创建工作,完成复制后,您必须编辑每个维护计划,重置计划并保存。 ingconti 2018-03-03T02:47:36+08:002018-03-03T02:47:36+08:00 登录为“sa”,否则不会显示。 快速查看:
转到存在作业的服务器,在 Management Studio 的对象资源管理器中转到 Management > SQL Server Agent 并突出显示 Jobs 文件夹。点击F7(或查看 > 对象资源管理器详细信息)。您应该在右侧窗格中看到多个作业。突出显示您要复制的那些,右键单击,将作业编写为 > 创建到 > 剪贴板。现在连接到另一台服务器,打开一个新的查询窗口,粘贴,然后按 F5。比使用 SSIS 更容易。
您可能需要采取其他步骤,具体取决于计划的用途。连接到 Integration Services 实例,而不是数据库实例,展开 Stored Packages > MSDB > Maintenance Plans,然后右键单击任何计划并选择 Export package。在另一台服务器上,执行相同的步骤,但右键单击维护计划并选择导入包。您必须为每个计划执行此操作。
我找到了一种更黑客的方式。
每个执行计划都是
msdb.sysssispackages
表中的一条记录。msdb.sysssispackages
您可以将记录从源服务器的表复制到msdb.sysssispackages
目标服务器的表。只需在源服务器上创建链接服务器并使用源服务器中的此插入:
重要提示:应对记录仅复制维护计划的结构。要重新创建工作,完成复制后,您必须编辑每个维护计划,重置计划并保存。
登录为“sa”,否则不会显示。
快速查看: