2017-04-05 1 views
0

あるサーバーから別のサーバーまたは別のサーバーに1つのDBを同期させる汎用スクリプトが必要です。SQL /バッチスクリプトを使用してサーバーを同期する

サーバー:MSSQL 2014 SP1

私の最初の考えはデータベースを介してサイクルであり、このようなすべてのテーブルをコピーします。

DECLARE @cnt INT = (SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE='BASE TABLE'); 
DECLARE @null INT = 1; 

WHILE @null <= @cnt 
BEGIN 
    SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE='BASE TABLE'; 
    SET @null = @null +1; 
END; 

しかし、この方法で私はいくつかの重要なデータを欠場すること、それがコピーされますすべてのデータが欠落しているだけでなく、ネットワークやサーバーに多大な負荷をかけることになります.DBは最大500GBです。

+0

これは一時的なタスクですか、継続中ですか?後者の場合、2 dbsは同期して思い出させる必要がありますか、または十分な定期的な更新ですか? –

+0

定期的な更新です。私はそれが必要なときにスクリプトを実行します。 –

+0

これは[タグ:バッチファイル]関連ではありません!次回にタグを適用する前に、タグ情報をお読みください。ありがとうございました! – aschipfl

答えて

0

使用できる方法はいくつかあります。

方法001:SSMSコピーDbウィザード
SQL Server Management Studioから。ソースデータベースを右クリックします。 タスク >>データベースをコピー...を選択してください。これにより、copy database wizardが起動します。ウィザード内では、コピーされていないオブジェクトを選択できます。

方法002:SSIS
Transfer Database Taskが含まれている可能パッケージを作成するにはSSISを使用してください。

固定スケジュールでタスクを繰り返す場合は、SQLエージェントを使用してSSISパッケージをスケジュールできます。

また、アドホックアップデートのために、スクリプトを使用してパッケージを実行することもできます。

関連する問題