8

データベース全体をMicrosoftSQLからCouchDBやmySQLなどの別のWeb対応データベースに複製できるようにしたいと思います。

私は毎日レプリケーションを行う必要があり、それが可能かどうか、もしそうなら、最小限のコーディングでどのように行うのか疑問に思っていました。

ありがとう

4

2 に答える 2

12

SymmetricDSは、SQL-Server や MySQL などの異なるデータベース間で変更をレプリケートできるオープン ソース ソリューションです。いくつかの機能は次のとおりです。

  • 変更データ キャプチャと継続的な同期を使用
  • Web ベースのプロトコルによる低帯域幅転送
  • バックグラウンドでの非同期操作
  • ネットワークのダウンタイムから自動的に回復

データベースを同期するための初期ロード機能があり、変更がキャプチャされると継続的に送信されます。多くの構成オプションがあるため、同期の頻度を設定できます。

于 2013-02-20T14:25:06.527 に答える
3

使用できるアプローチがいくつかあります。2 つのまったく異なるデータベースに名前を付けたので、それぞれについて簡単なヒントを示します。

  1. SQL サーバー -> MySQL。これは本当に簡単です。少なくとも、C# や Java など、単純に SQL Server からデータを読み取ってから MySQL にデータを書き込むアプリケーションを作成できます。そのアプリケーションをスケジュールに入れれば完了です。

  2. SQL Server -> カウチ。例として C# を記述し、それを SQL Server にデプロイできます。記述したコードは、ストアド プロシージャとして公開されます。C# でクエリを記述し、オブジェクトを JSON にシリアル化し、ストアド プロシージャの結果としてそれらを返すことができます。私はこれを行いましたが、うまく機能し、非常に高速です。

どちらのアプローチでも、何が変更されたかを知る必要があります。宛先とソースの違いを管理するデータをプルできます。たとえば、特定の日付を過ぎて変更されたレコードのみを取得し、日付を更新して、次回は新しいレコードのみを取得するなどです。

データをプッシュすることもできます。トリガーを使用して、キュー (外部または内部) に書き込むストアド プロシージャを実行し、キューを監視して Couch/MySQL にプッシュする何かを実行できます。

たくさんのオプション。

私たちは職場で Mule ESB を使用して、異なるシステム (SQL Server->Mongo、SQL Server->Couch、MySQL->Mongo) 間でデータを移動していますが、うまく機能しています。

于 2013-02-16T05:01:09.573 に答える