すべてのスキーマ、データ、DTS パッケージ、およびスケジュールされたジョブを含む、ID の異なる場所にあるサーバーから別のサーバーにデータベースをコピーしようとしています。Redgates SQL Packager を使用してスキーマとデータをパックしましたが、DTS パッケージ (非常に複雑なパッケージ) をより簡単な方法でパックするのに問題があります。アドバイスをお願いします!
5 に答える
現在、SQL2000 は手元にありませんが、DTS を開いて [ファイル] → [名前を付けて保存...] をクリックし、DTS ファイルとして保存すると、別のサーバーに DTS をアップロードできることを覚えています。 .
SQLDTSの「管理と管理」ページには、msdb に保存されているパッケージを転送するためのリンクがあります。
また、 DTS パッケージを転送するためのツールDTSBackup 2000およびその他のDTS パッケージへのリンクもあります。
基本的に、このサイトにない場合は、DTS とは何の関係もありません...
少しハックですが、msdb.dbo.sysdtspackages
BCP を使用して直接 DTS パッケージをスクリプト化することができます。現在、テストするシステムはありませんが、out コマンドは次のようなものです。
bcp "select top 1 from msdb.dbo.sysdtspackages where name = '~your_package_name~' order by createdate desc" queryout c:\temp\dts.bak -n -S ~source_server_name~ -E
このコマンドは、DTS 定義の最新バージョンを取得し、それをネイティブ形式の BCP ファイルにスクリプト化します ( SQL 認証を使用する場合は、-P ~password~ -U ~username~
代わりに使用する必要があります)。-E
次に、2 番目のサーバーにインポートします。
bcp msdb.dbo.sysdtspackages in c:\temp\dts.bak -S ~target_server~ -E
これにより、両方のサーバーでパッケージを編集すると問題が発生する可能性があります。これは、一意の識別子が必ずしも一致するとは限らず、同じ名前の 2 つのパッケージが作成されるためです。ただし、1 つのサーバーでのみ編集する場合は、これで問題なく動作します。
私の知る限り、簡単な方法はありません。それを行うには多くの回り道があります。DTS パッケージを定期的に移動する必要があったため、個人的には DTS パッケージを作成してコピーすることにしました。ファイルの保存と読み込みの方法は、1 回限りの状況に適しています。
このリンクでは、2000 DTS パッケージを新しいサーバーに移動する方法について説明していますが、DTS パッケージを別の 2000 サーバーにコピーする方法はすべて適用されます。
DTSは、VBスクリプトを使用して簡単に展開できます。個人的には3〜4年前に使っています。これをチェックしてください:
http://cyrilbeschi.blogspot.com/2012/03/deploying-dts-packages-in-sql-server.html
サンプルコードも含まれています。