Windows Server 2008 R2に数十のMSSQL Servers 2012 R2があり、同様のセットアップ、構成(仮想マシンで)が本番環境で行われています。 SSISもインストールされていません。
数十台のサーバーすべてで同じメンテナンスプランを同様に維持(移行、復元)する必要があります
SQL Server Integration Service(SSIS)とData Tools(BIDS)をインストール(および実行)せずに、インポート、エクスポート、移行、保存、復元の保守計画を行う方法はありますか?個別のサーバーマシンをステージングすることはできますが
見た "SSISサービスをインストールせずにSSISパッケージを実行する"への答え しかし、それでも不確か
実際のSSISパッケージである作業保守計画がある場合、その.dtsxファイルをデータベースからエクスポートして、次のファイルに再展開できます。
2008/2012の場合、これらのパッケージはmsdb.dbo.sysssispackagesに保存され、 query で確認できます
;
WITH FOLDERS AS
(
-- Capture root node
SELECT
cast(PF.foldername AS varchar(max)) AS FolderPath
, PF.folderid
, PF.parentfolderid
, PF.foldername
FROM
msdb.dbo.sysssispackagefolders PF
WHERE
PF.parentfolderid IS NULL
-- build recursive hierarchy
UNION ALL
SELECT
cast(F.FolderPath + '\' + PF.foldername AS varchar(max)) AS FolderPath
, PF.folderid
, PF.parentfolderid
, PF.foldername
FROM
msdb.dbo.sysssispackagefolders PF
INNER JOIN
FOLDERS F
ON F.folderid = PF.parentfolderid
)
, PACKAGES AS
(
-- pull information about stored SSIS packages
SELECT
P.name AS PackageName
, P.id AS PackageId
, P.description as PackageDescription
, P.folderid
, P.packageFormat
, P.packageType
, P.vermajor
, P.verminor
, P.verbuild
, suser_sname(P.ownersid) AS ownername
FROM
msdb.dbo.sysssispackages P
)
SELECT
F.FolderPath
, P.PackageName
, F.FolderPath + '\' + P.PackageName AS PackagePath
, P.packageFormat
, P.packageType
, P.vermajor
, P.verminor
, P.verbuild
, P.ownername
, P.PackageId
FROM
FOLDERS F
INNER JOIN
PACKAGES P
ON P.folderid = F.folderid
-- uncomment this if you want to filter out the
-- native Data Collector packages
WHERE
F.FolderPath <> '\Data Collector';
次に、その情報を繰り返し説明するdtutil呼び出しにパイプします。これについては、これについて説明します SSIS Package Extract From msdb 。ただし、/file
の出力の代わりに、それを/destserver thatdatabase /copy SQL;PkgName
にしたい場合があります https://stackoverflow.com/questions/7603021/updating-deployed-ssis-パッケージ/ 7605044#7605044
コメントで述べたように、パッケージレベルの暗号化を使用した場合は、そのためのパラメーターも追加する必要があります/encrypt file;"foo.dtsx";3;<somepass>
これは、パッケージパスワードを推奨しておらず、テストもしていないため、このまま表示されます。