データベース全体をMicrosoftSQLからCouchDBやmySQLなどの別のWeb対応データベースに複製できるようにしたいと思います。
私は毎日レプリケーションを行う必要があり、それが可能かどうか、もしそうなら、最小限のコーディングでどのように行うのか疑問に思っていました。
ありがとう
データベース全体をMicrosoftSQLからCouchDBやmySQLなどの別のWeb対応データベースに複製できるようにしたいと思います。
私は毎日レプリケーションを行う必要があり、それが可能かどうか、もしそうなら、最小限のコーディングでどのように行うのか疑問に思っていました。
ありがとう
SymmetricDSは、SQL-Server や MySQL などの異なるデータベース間で変更をレプリケートできるオープン ソース ソリューションです。いくつかの機能は次のとおりです。
データベースを同期するための初期ロード機能があり、変更がキャプチャされると継続的に送信されます。多くの構成オプションがあるため、同期の頻度を設定できます。
使用できるアプローチがいくつかあります。2 つのまったく異なるデータベースに名前を付けたので、それぞれについて簡単なヒントを示します。
SQL サーバー -> MySQL。これは本当に簡単です。少なくとも、C# や Java など、単純に SQL Server からデータを読み取ってから MySQL にデータを書き込むアプリケーションを作成できます。そのアプリケーションをスケジュールに入れれば完了です。
SQL Server -> カウチ。例として C# を記述し、それを SQL Server にデプロイできます。記述したコードは、ストアド プロシージャとして公開されます。C# でクエリを記述し、オブジェクトを JSON にシリアル化し、ストアド プロシージャの結果としてそれらを返すことができます。私はこれを行いましたが、うまく機能し、非常に高速です。
どちらのアプローチでも、何が変更されたかを知る必要があります。宛先とソースの違いを管理するデータをプルできます。たとえば、特定の日付を過ぎて変更されたレコードのみを取得し、日付を更新して、次回は新しいレコードのみを取得するなどです。
データをプッシュすることもできます。トリガーを使用して、キュー (外部または内部) に書き込むストアド プロシージャを実行し、キューを監視して Couch/MySQL にプッシュする何かを実行できます。
たくさんのオプション。
私たちは職場で Mule ESB を使用して、異なるシステム (SQL Server->Mongo、SQL Server->Couch、MySQL->Mongo) 間でデータを移動していますが、うまく機能しています。