メンテナンスプランを1つのSQL Server 2012から別のSQL Server 2012にコピーする方法はありますか?Management Studioの同じコピーを介して両方のサーバーに同時にアクセスすることはできません(異なるネットワーク上)。
メンテナンスプランを1つのSQL Server 2012から別のSQL Server 2012にコピーする方法はありますか?Management Studioの同じコピーを介して両方のサーバーに同時にアクセスすることはできません(異なるネットワーク上)。
回答:
ジョブが存在するサーバーに移動し、Management Studioのオブジェクトエクスプローラーで[管理]> [SQL Serverエージェント]に移動し、[ジョブ]フォルダーを強調表示します。ヒットF7(または[表示]> [オブジェクトエクスプローラーの詳細])。右側のペインに複数のジョブが表示されます。コピーするものを強調表示し、右クリックして、[ジョブのスクリプト]> [作成先]> [クリップボード]を選択します。次に、他のサーバーに接続し、新しいクエリウィンドウを開いて貼り付け、F5キーを押します。SSISをいじるよりもずっと簡単です。
計画の実行内容によっては、追加の手順が必要になる場合があります。データベースインスタンスではなくIntegration Servicesインスタンスに接続し、[保存パッケージ]> [MSDB]> [メンテナンスプラン]を展開し、プランを右クリックして[パッケージのエクスポート]を選択します。他のサーバーで同じ手順に従いますが、[メンテナンスプラン]を右クリックして[パッケージのインポート]を選択します。これは計画ごとに行う必要があります。
もっとハッキングする方法を見つけました。
すべての実行計画は、msdb.sysssispackages
テーブル内の1つのレコードです。
msdb.sysssispackages
移行元サーバーのmsdb.sysssispackages
テーブルから移行先サーバーのテーブルにレコードをコピーできます。
ソースサーバー上にリンクサーバーを作成し、ソースサーバーからこのInsertを使用するだけです。
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')
情報:サーバー名の置換は、メンテナンスプランデザイナで宛先接続を処理するために重要です。
重要:記録のコピーは、保守計画の構造のみをコピーします。ジョブを再作成するには、コピーが完了したら、すべての管理計画を編集し、スケジュールをリセットして保存する必要があります。