MS SQL Serverデータベースを同期するにはどうすればよいですか?ツール、できればオープンソースはありますか?
スケジュールされたアドホックデータベース同期の場合、 ApexSQL Diff (オブジェクトスキーマ同期の場合)および ApexSQL Data Diff (レコード同期の場合)を使用できます。
リアルタイム同期には使用できません。 IMO、データベースミラーリングをリアルタイムで使用するのが最善です
他の人が言っているように、SQL Server 2008には、2つのサーバーをリアルタイムまたはスケジュールに従って同期させるための組み込みの方法がたくさんあります。
考慮すべきいくつかのポイント:
答えに応じて、ニーズに最も適した方法を選択できます。すでに説明したもの(レプリケーションとミラーリング)以外に、他のこともできることを忘れないでください。
組み込みのミラーリング機能を見たことがありますか? Technetには簡単な説明があります ここ 。プライマリサーバーはトランザクションログレコードをセカンダリサーバーに送信し、セカンダリサーバーはトランザクションログを再生します。
ミラーリングは、同期的または非同期的に設定できます。
私があなたの言うことを正しく理解しているなら、あなたはあなたのローカルマシン上のウェブサーバーからデータベースのコピーを持ちたいと思うでしょう。 Webサーバー上のデータベースの変更は、定期的にローカルサーバーにコピーする必要があります。
レプリケーションでそれを行うことができると思いますが、Webサーバーには少なくともWorkgroupエディションのSQLサーバーが必要です。
データベースが大きくないか、頻繁に変更されない場合は、スナップショットレプリケーションを使用できます。 SQL Serverは定期的にデータベースのスナップショットを取得し、ローカルサーバーに複製します。
大規模なデータベースや頻繁に変更されるデータベースの場合は、マージレプリケーションを使用することをお勧めします。時間とリソースをあまり消費しません。
Books Onlineで、レプリケーションに関する詳細情報を入手できます。 データ移動パターン もご覧ください。
ブログ投稿 非ドメインサーバーのデータベースミラーリングを設定する方法を説明しています。ただし、これでは両方のSQL Serverを同時にアクティブにすることはできません。そのためには、何らかの形式のレプリケーションを実行する必要があります。データへのアクセス方法にもよりますが、すべてが読み取られた場合はそれほど悪くはありません。一方のサーバーで読み取られ、もう一方のサーバーで読み取り/書き込みが行われた場合も、書き込み/書き込みの場合はそれほど悪くはありません。いくつかの「興味深い」時間。