web-dev-qa-db-ja.com

SQL Serverスナップショットレプリケーションは毎回完全にデータをコピーしますか、それともデルタを発行しますか?

2台のサーバー間のスナップショットレプリケーションを見ています。ここに私が持っているものがあります:

  • 500GBデータベース
  • 〜500MBの夜間bcpロード
  • 1日あたり最大50MBのトランザクション

使用するレプリケーションの種類について、社内の他のDBAに尋ねていました。スナップショットレプリケーションを使用するように言われました。ただし、私が理解して読んでいることから、ロード後の毎晩、スナップショットはデータベースをディストリビューターに完全にコピーし、他のサーバーを完全に上書きします。

スナップショットはデルタで動作しますか、それとも毎回完全なコピーですか?

11
grid

オンラインの書籍から:

スナップショットレプリケーションは、特定の時点で表示されるとおりにデータを分散し、データの更新を監視しません。同期が発生すると、スナップショット全体が生成され、サブスクライバーに送信されます。

次の条件が1つ以上当てはまる場合は、スナップショットレプリケーションを単独で使用するのが最適です。

  1. データの変更はまれです。

  2. 一定期間パブリッシャーに関して古くなったデータのコピーを保持することは許容されます。

  3. 少量のデータの複製。

  4. 大量の変更が短期間に発生します。

スナップショットレプリケーションは、データの変更が大きいが頻度が少ない場合に最適です。たとえば、販売組織が製品の価格表を管理していて、価格がすべて毎年1回または2回同時に更新される場合、変更後のデータのスナップショット全体を複製することをお勧めします。特定のタイプのデータを前提として、より頻繁なスナップショットも適切な場合があります。たとえば、比較的小さなテーブルがパブリッシャーで日中に更新されても、ある程度の待機時間は許容できる場合、変更をスナップショットとして毎晩配信できます。

スナップショットレプリケーションでは、増分変更が追跡されないため、トランザクションレプリケーションよりもパブリッシャーでの継続的なオーバーヘッドが低くなります。ただし、複製されるデータセットが非常に大きい場合は、スナップショットを生成して適用するために大量のリソースが必要になります。スナップショットレプリケーションを使用するかどうかを評価するときは、データセット全体のサイズとデータの変更頻度を考慮してください。

したがって、デルタは生成されず、データベース全体がスナップショットおよび複製されます。

8
Max Vernon