同一にする必要がある 2 つの SQL サーバーがあります。同期は、おそらく 1 日に数回、自動的に行われるはずです。2つのサーバー間には「直接」接続がないため、リンクされたデータベースなどはありません(それらは完全に異なるマシン、ネットワーク、ドメイン上にあり、その間にファイアウォールがあります)ただし、Webサービス、FTPなどのインターネットを使用できます...
CopyFromDB は多くのテーブルを保持しますが、約 20 個のテーブル (データのみ、現時点ではスキーマの変更はありません) のみを CopyToDB に同期する必要があります。毎日新しい行または更新された行があるのは、テーブルの約半分だけです。それ以外は年に数回。現在、1 日あたり数千行程度しかないと推測しています。ただし、これは将来的には 1 日あたり約 100,000 行まで増加する可能性があります。ですから、あまり多くのデータはないと思います。
また (現時点では変更される可能性があります)、データは CopyFromDB から CopyToDB への一方向のみで同期する必要があります。誰かが CopyFromDB のテーブルに余分な列を追加したという理由だけで「壊れ」ないのもいいですが、その新しい列は自動的に CopyToDB に同期されるべきではありません。(同期する必要がある列のみが CopyToDB に存在します。同期する必要のない他の列が存在する可能性があります)
挿入、更新、または挿入を行う必要があります。最悪の場合、完全に削除して挿入することもできると思いますが、私はこれが好きではありません。(もちろんFKなどもあるので正しい順番でデータを挿入する必要があります)
今のところ「CopyToDB」は 1 つだけですが、これは増える可能性があります。ソリューションも非常に簡単で、複雑すぎないようにする必要があります。:-)
私の質問は; これを達成するための最良の方法は何ですか?以下にいくつかのアイデアがあります。
- CopyToDB 側の WS は、サービスなどによって CopyFromDB 側から呼び出されますか? データをプッシュします。最後の同期以降の変更のみです。
- 変更を含む「sql」ファイルを取得する CopyToDB 側の FTP。挿入/更新/削除のように。これは CopyFromDB によってそこにプッシュされます。
- 他の何か?すでにこれを行う組み込みツールですか? それとも 3D パーツ ツールですか? Red Gate SQL Data Compare のようなもので、自動的にのみです。
ご意見やご回答ありがとうございます。
フォーラムで質問を検索しました。しかし、2 つのサーバー間に何らかの「直接」接続があるか、バックアップ/復元を行うという質問しか見つかりません。しかし、質問がすでに回答されている場合は、申し訳ありませんが、場所を教えていただけますか? :)