web-dev-qa-db-ja.com

MS SQL Serverデータベースを同期するにはどうすればよいですか?

MS SQL Serverデータベースを同期するにはどうすればよいですか?ツール、できればオープンソースはありますか?

2
Rajesh

スケジュールされたアドホックデータベース同期の場合、 ApexSQL Diff (オブジェクトスキーマ同期の場合)および ApexSQL Data Diff (レコード同期の場合)を使用できます。

リアルタイム同期には使用できません。 IMO、データベースミラーリングをリアルタイムで使用するのが最善です

6

他の人が言っているように、SQL Server 2008には、2つのサーバーをリアルタイムまたはスケジュールに従って同期させるための組み込みの方法がたくさんあります。

考慮すべきいくつかのポイント:

  • 2つのサーバーはどのくらい「離れている」(つまり、サーバー間の帯域幅と遅延)?
  • 2つのデータベースの大きさはどれくらいですか?
  • データはどのくらいの頻度でどのくらい変更されますか?
  • データは実際に変更されますか、それとも新しいデータのみが既存のデータに追加されますか?

答えに応じて、ニーズに最も適した方法を選択できます。すでに説明したもの(レプリケーションとミラーリング)以外に、他のこともできることを忘れないでください。

  • L og Shipping
  • IntegrationServicesを使用してデータをエクスポート/インポートします。
  • 復元する。
  • 取り外し、物理的なコピーを作成し、添付します。
5
Massimo

組み込みのミラーリング機能を見たことがありますか? Technetには簡単な説明があります ここ 。プライマリサーバーはトランザクションログレコードをセカンダリサーバーに送信し、セカンダリサーバーはトランザクションログを再生します。

ミラーリングは、同期的または非同期的に設定できます。

3
dsolimano

私があなたの言うことを正しく理解しているなら、あなたはあなたのローカルマシン上のウェブサーバーからデータベースのコピーを持ちたいと思うでしょう。 Webサーバー上のデータベースの変更は、定期的にローカルサーバーにコピーする必要があります。

レプリケーションでそれを行うことができると思いますが、Webサーバーには少なくともWorkgroupエディションのSQLサーバーが必要です。

データベースが大きくないか、頻繁に変更されない場合は、スナップショットレプリケーションを使用できます。 SQL Serverは定期的にデータベースのスナップショットを取得し、ローカルサーバーに複製します。

大規模なデータベースや頻繁に変更されるデータベースの場合は、マージレプリケーションを使用することをお勧めします。時間とリソースをあまり消費しません。

Books Onlineで、レプリケーションに関する詳細情報を入手できます。 データ移動パターン もご覧ください。

2
Branko

ブログ投稿 非ドメインサーバーのデータベースミラーリングを設定する方法を説明しています。ただし、これでは両方のSQL Serverを同時にアクティブにすることはできません。そのためには、何らかの形式のレプリケーションを実行する必要があります。データへのアクセス方法にもよりますが、すべてが読み取られた場合はそれほど悪くはありません。一方のサーバーで読み取られ、もう一方のサーバーで読み取り/書き込みが行われた場合も、書き込み/書き込みの場合はそれほど悪くはありません。いくつかの「興味深い」時間。

1
Dan