2005年10月06日

レプリケーションの種類

  → レプリケーション対象データのログエントリをディストリビューションデータベースにコピー
スナップショットレプリケーション
  テーブル単位でデータをレプリケート
  データの更新頻度が高くない環境
  サブスクライバで読み取り専用データが必要な環境
  長い遅延が許容できる環境
  サブスクライバでサイト自律性が必要な環境
  スナップショットエージェント → スナップショット実行
      スナップショット更新頻度を設定
  ディストリビューションエージェント → スナップショットをサブスクライバに適用
      スナップショットをサブスクライバに適用する頻度を設定
  即時更新とキュー更新をサポート
 
トランザクションレプリケーション
  トランザクションログ単位でデータをレプリケート
  ログリーダーエージェント
   
  ディストリビューションエージェント → レプリケートされたトランザクションをサブスクライバに適用
  データ変更を最小の遅延で受け取る必要がある環境
  即時更新とキュー更新をサポート
 
マージレプリケーション
  マージエージェント → 競合発生時に競合回避モジュールを起動
    既定の回避モジュールでは優先順位に基づいた解決を行う
    カスタム回避モジュールでは、競合解決のための特定データまたはビジネス上の意志決定ルールを実装
      ストアドプロシージャまたは COM オブジェクトとして構築
    Microsoft レプリケーション競合表示モジュールで競合の表示可
  サブスクライバが逐一更新したデータをパブリッシャ/他サブスクライバに伝達する必要のある環境
  サブスクライバがオフラインでデータ更新、同期を行う環境
 
 
データが複数のサイトで更新されても(フィルタリングやユーザーアプリケーションの使用を通して)競合は少ないと予想される環境

○ マージレプリケーション使用時の考慮事項
スキーマの変更
  レプリケートされるテーブル内の行ごとに識別用の一意な列を作成
  データ追跡、効率的同期、競合検出、解決、レポートのためにいくつかのシステムテーブルを作成
  各行の変更を追跡するトリガをパブリッシャおよびサブスクライバのテーブル上に作成
    テーブル上の変更をキャプチャ、変更をマージシステムテーブルに記録
    マージレプリケーショントリガはアプリケーション定義トリガに干渉しない
競合の解決
  行に対するすべての更新を追跡
    MSmerge_contents テーブルの lineage 列が行変更ヒストリを保持
    競合の検出は行レベルまたは列レベルで実行
 
 
受信データ値と現在のデータ値を評価、データ競合時は割り当てられた優先順位に基づいて競合解決を行う
  データ値は同期が発生したときだけ他のサイトにレプリケート
    同期は分単位/日単位/週単位で実行
  トリガをカスタマイズして独自競合解決方法も定義可

○ 即時更新とキュー更新
即時更新 … 変更をパブリッシャに即時反映
キュー更新 … 変更はキューに登録、パブリッシャに反映 → オフラインでもデータ更新可
  事前にパブリケーション(レプリケーションの単位)に対し以下のオプションを設定
    パブリッシャ側の変更を保持
    サブスクライバ側の変更を保持
    サブスクリプション(レプリケーション定義順序)を再初期化
posted by w@ko at 19:20|  ・SQL Server ノート | このブログの読者になる | 更新情報をチェックする
×

この広告は90日以上新しい記事の投稿がないブログに表示されております。