Gre*_*icz 21 sql-server-2012 maintenance-plans
有没有办法将维护计划从一个 SQL Server 2012 复制到另一个?无法同时(在不同网络上)通过相同的 Management Studio 副本访问两台服务器。
Aar*_*and 23
转到作业所在的服务器,在 Management Studio 的对象资源管理器中,转到管理 > SQL Server 代理并突出显示作业文件夹。点击F7(或查看 > 对象资源管理器详细信息)。您应该会在右侧窗格中看到多个作业。突出显示要复制的那些,右键单击,脚本作业为 > 创建到 > 剪贴板。现在连接到另一台服务器,打开一个新的查询窗口,粘贴,然后按 F5。比使用 SSIS 搞砸要容易得多。
您可能需要采取额外的步骤,具体取决于计划的内容。连接到 Integration Services 实例,而不是数据库实例,展开存储包 > MSDB > 维护计划,然后右键单击任何计划并选择导出包。在另一台服务器上,执行相同的步骤,但右键单击维护计划并选择导入包。您必须为每个计划执行此操作。
Ric*_*chi 13
我找到了一种更黑客的方式。
每个执行计划都是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')
Run Code Online (Sandbox Code Playgroud)
信息:替换服务器名称对于在维护计划设计器上处理目标连接至关重要。
重要提示:应对记录仅复制维护计划的结构。要重新创建作业,完成副本后,您必须编辑每个维护计划,重置计划并保存。
归档时间: |
|
查看次数: |
53042 次 |
最近记录: |