0

私は、過去数か月間取り組んできたクライアントのシステム、基本的には一般向けの Web サイト、イントラネット Web サイト、レガシーからの時間単位のエクスポーターを含むいくつかの自律型サービスの「稼働開始」と言う段階に近づいています。変更されたフラグ/トリガーなどに基づく OLTP DB およびシステムを構成する他のいくつかのサービスは、それぞれ独自の専用データベースなどを持ち、メッセージ (NServiceBus) を介して相互に通信します。

私が始めたとき、私はすべてのローカル レプリケーションを維持しようとしましたが、それはますます困難であることが判明し、振り返ってみると、おそらく過去数週間の主要な摩擦点でした。レガシー データベースが成長し、何百ものデータベースが生成されているため、定期的に最新の状態に保つことを好みます。毎日のイベント。RDP、SQL ツール、リモート接続文字列などでは、遅延が大きく、帯域幅が平凡である (私とクライアントのサイトの間で、帯域幅が一般的にひどい東南アジアにいます) ことも問題です。統合のバグを追跡し、シナリオを理解する私のデータはクライアントのDBの現在の状態を反映していないため、フィードバック/統合/ QA中に存在することも困難です(クライアントのスタッフは作業​​を行い、データを進化させてきました)、別の休憩、コーヒー、長い同期を再び意味します.

私は、環境間で 1 日 2 回同期を行うのが良いと考えていました (それらの DB から私の DB へ)。私は、レガシー SQL サーバー データベース以外のすべての設計をいくらか制御できます。

SOユーザーにとって最良のオプションは何ですか?

開発ボックスに Windows 2003 ライト VM をセットアップすることを考えていました。そして、このインストールでは、クライアント サイトの同じセットアップをインストールします (ただし、明らかに複数のサーバーに分散していません)。そして、データベースを同期するために、SQL Server のレプリケーションについて考えていましたか? またはバッチスクリプト?または、高速で優れた圧縮ツールなど、より優れたツールはありますか? 変更を本番環境に戻したくありません (別の CI と展開手順があります)。データベースを毎晩または 1 日に 2 回更新したいだけです (必要だと思います.. より良いアイデアがあれば教えてください)。 (たぶん、帯域幅が許す限り、私は昼食をとっています)。

誰もがこれにどのようにアプローチしますか?

4

1 に答える 1

1

これを行うには、次の 2 つの方法をお勧めします。

  • スナップショット レプリケーション
  • トランザクション ログのバックアップと手動 (またはバッチ) の適用

スナップショット レプリケーションを機能させるのは難しい場合がありますが、スナップショットを物理的に別の場所に移動するなど、オフラインの状況でも可能です。

トランザクション ログ方式は、標準のバックアップ手順の一部として使用できます。つまり、週に 2 回のフル バックアップと、より定期的なトランザクション ログ バックアップ。

ベスト プラクティスは、テスト環境で使用する前にデータをクレンジングすることです。少なくとも、これはすべての個人データ、特にメールアドレス、パスワード、およびデータベース内のユーザーとの連絡を行う自動化されたプロセスにつながる可能性のあるその他の方法を変更する必要があります.

于 2009-11-09T09:09:44.343 に答える