マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

SQL Serverには以下のレプリケーション機構がある。

  • スケールアウト
  • 高可用性ソリューション
  • 災害対策
  • ログ配布
    トランザクションログの転送をベースに利用している。
  • 耐障害
  • AlwaysOn
    データベースミラーリングをベースに利用している。

詳細

用語(パブリッシング モデル)

レプリケーション トポロジ内のコンポーネントを出版業界に例えて表す。

レプリケーションのパブリッシング モデルの概要
http://technet.microsoft.com/ja-jp/library/ms152567.aspx

パブリッシャー (出版社)

  • レプリケーションを介して他の場所でデータを使用できるようにするデータベース インスタンス。
  • パブリッシャーは、
    • 1 つ以上のパブリケーションを持つことができ、
    • 各パブリケーションには、論理的に関連する
      • レプリケート対象のオブジェクトと
      • データのセットが定義される。

ディストリビューター (流通業者)

  • 1 つ以上のパブリッシャーに関連付けられた
    レプリケーション固有のデータの保存場所として機能するデータベース インスタンス
  • 各パブリッシャーは、ディストリビューターの単一のディストリビューション データベースと関連付けられる。
  • ディストリビューション データベース
    • レプリケーション状態データ、パブリケーションに関するメタデータが保存される。
    • 場合によっては、パブリッシャーからサブスクライバーへ移動するデータのキューとしても機能する。
  • モデル
    • ローカル ディストリビューター
      単一のデータベース サーバー インスタンスが、パブリッシャーとディストリビューター両方の役割を果たす場合。
    • リモート ディストリビューター
      パブリッシャーとディストリビューターが別のデータベース サーバー インスタンス上で構成される場合。

サブスクライバー (購読者)

  • レプリケートされたデータを受信するデータベース インスタンス。
  • サブスクライバーは、複数のパブリッシャーおよびパブリケーションからデータを受信できる。
  • 選択したレプリケーションの種類に応じて、サブスクライバーは
    • パブリッシャーにデータの変更を戻したり、
    • データを他のサブスクライバーに再パブリッシュしたりできる。

パブリケーション (出版物)

データベースからの1つないし複数のアーティクルの集合。

アーティクル (記事)

  • テーブルやレプリケーション用に指定されたデータベース・オブジェクト。
  • パブリケーションには、さまざまな種類のアーティクルを含めることができる。
    • テーブル
    • ビュー
    • ストアド プロシージャ
    • その他のオブジェクト
  • テーブルがアーティクルとしてパブリッシュされている場合は、
    フィルターを使用してサブスクライバーに送信するデータの列と行を制限することができる。

サブスクリプション (定期購読物)

パブリケーションのコピーを要求すること。

  • パブリケーションをいつ、どこで受信するのかが定義される。
  • サブスクリプションには、プッシュとプルの 2 つの種類がある。

レプリケーションの種類

主にスケールアウトで利用されるレプリケーションの種類。

http://technet.microsoft.com/ja-jp/library/ms152531.aspx

スナップショット レプリケーション

データの変更は追跡されず、
スナップショットが適用されるたびに、レプリケートされる。

http://technet.microsoft.com/ja-jp/library/ms151832.aspx

スナップショット レプリケーションでは、

  • 特定の時間のデータを配信する。
  • データに対する更新は監視されない。
  • 同期が発生すると
    • データ全体のスナップショットが作成され、
    • サブスクライバーに送信される。

VSSのスナップショットでファイルの変更点を配布している。

トランザクション レプリケーション

SQL Server トランザクション ログを使用して変更が追跡される。

http://technet.microsoft.com/ja-jp/library/ms151176.aspx

  • 開始
    パブリケーションのデータベース オブジェクトとデータのスナップショットで開始される。
  • 配信
    • 最初のスナップショットが取得されるとすぐに配信される。
    • それ以後パブリッシャーでデータやスキーマが変更されると、
      通常はその都度 (ほぼリアルタイムで) サブスクライバーに配信される。
  • データの変更
    • パブリッシャーで発生したのと同じ順序で、
      同じトランザクションの中で、サブスクライバーに適用される。
    • したがって、パブリケーション内では、トランザクションの一貫性が保証される。

マージ レプリケーション

トリガーとメタデータ テーブルを使用して変更が追跡される。

http://technet.microsoft.com/ja-jp/library/ms152746.aspx

  • 追跡
    その後にパブリッシャーとサブスクライバーで行われた
    データおよびスキーマの変更は、トリガーを使って追跡される。
  • 同期
    サブスクライバーは、ネットワークに接続されたときにパブリッシャーと同期して、
    前回の同期以降にパブリッシャーとサブスクライバーの間で変更されたすべての行を交換する。

エージェント

レプリケーションでは、
エージェントと呼ばれる多数のスタンドアロン プログラムを使用して、
変更の監視やデータの配信に関連するタスクを実行する。

スナップショット エージェント

http://technet.microsoft.com/ja-jp/library/ms146939.aspx

  • 一般的にすべての種類のレプリケーションで使用される。
  • ディストリビューター側で実行される。
  • スナップショット エージェントは、
    • パブリッシュされたテーブルやその他のオブジェクトの
      • スキーマと初期データ ファイルを作成、
      • スナップショット ファイルを格納して、
    • 同期に関する情報をディストリビューション データベースに記録する。

ログ リーダー エージェント

http://technet.microsoft.com/ja-jp/library/ms146878.aspx

  • レプリケーションとしてマークが付けられたトランザクションを、
    • パブリッシャーのトランザクション ログから、
    • ディストリビューション データベースに移動する。
  • トランザクション レプリケーションを使用してパブリッシュされた各データベースには、
    ディストリビューター上で実行され、パブリッシャーに接続する独自のログ リーダー エージェントがある
    (ディストリビューターはパブリッシャーと同じコンピューター上に存在していてもイイ)。

ディストリビューション エージェント

http://technet.microsoft.com/ja-jp/library/ms147328.aspx

  • ディストリビューション エージェントは、
  • 初期スナップショットをサブスクライバーに適用し、
    ディストリビューション データベースに保持されている
    トランザクションをサブスクライバーに移動する。
  • プッシュ or プル
    • プッシュ サブスクリプションの場合はディストリビューターで実行され、
    • プル サブスクリプションの場合はサブスクライバーで実行される。

マージ エージェント [

http://technet.microsoft.com/ja-jp/library/ms147839.aspx

  • マージ サブスクリプションごとにマージ エージェントがあり、
    パブリッシャーとサブスクライバーの両方に接続し、両方を更新する。
  • マージ エージェントは、
    • 初期スナップショットをサブスクライバーに適用し、
    • データの増分変更を移動および調整する。
    • 既定では、
      • サブスクライバーからパブリッシャーに変更をアップロードし、
      • パブリッシャーからサブスクライバーに変更をダウンロードする。
  • プッシュ or プル
    • プッシュ サブスクリプションの場合はディストリビューターで実行され、
    • プル サブスクリプションの場合はサブスクライバーで実行される。

キュー リーダー エージェント

http://technet.microsoft.com/ja-jp/library/ms147378.aspx

定義

レプリケーションの定義

パブリケーション作成

アーティクル定義

サブスクリプション作成

レプリケーション メンテナンス ジョブ

レプリケーションには、

  • 定期的なメンテナンスや
  • 要求時メンテナンスを

実行する多数のメンテナンス ジョブがある。

参考

パブリッシュ

データとデータベース オブジェクトのパブリッシュ
http://msdn.microsoft.com/ja-jp/library/ms152559.aspx

アーティクル

  • アーティクルの種類の指定 (レプリケーション Transact-SQL プログラミング)
    https://msdn.microsoft.com/ja-jp/library/ms147873.aspx
    • レプリケーションにおける既定の種類のアーティクルはテーブル アーティクル
    • ビュー、ストアド プロシージャ、ユーザー定義関数、ストアド プロシージャ実行など、他のデータベース オブジェクトもパブリッシュできる。

サブスクライブ

パブリケーションのサブスクライブ
http://msdn.microsoft.com/ja-jp/library/ms151170.aspx

  • プッシュ サブスクリプションの作成
  • プル サブスクリプションのプロパティの表示または変更
  • プッシュ サブスクリプションのプロパティの表示または変更
  • プル サブスクリプションの削除
  • プッシュ サブスクリプションの削除

自習書

高可用性ソリューション

高可用性ソリューションとして利用されるレプリケーション関連機能。

災害対策

ログ配布

ログ配布は、トランザクションログのバックアップ&リストアの
テクノロジを使用してデータベースのレプリケーションを実現しているもよう。

「トランザクション ログ バックアップを、
"プライマリ サーバー" インスタンスの "プライマリ データベース" から、
別の "セカンダリ サーバー" インスタンスの 1 つ以上の "セカンダリ データベース" に
自動的に送信」

耐障害

データベース・ミラーリング

データベース ミラーリングは、可用性向上のための冗長化の仕組みです。
(ミラーリングもトランザクションログの転送によって実現されているようです)。

AlwaysOn?

(可用性グループ用のレプリケーションの構成)

こちらも、可用性向上のための冗長化の仕組み。
こちらもミラーリング(トランザクションログの転送)をベースに利用している。

  • AlwaysOn?可用性グループ
    旧バージョンでは、ミラーリング機能に相当する
    • データ同期モード
      オリジナルデータベースと複製するデータベースとの同期方法の選択
    • フェールオーバーモード
      オリジナルデータベースで障害発生時に、複製先データベースへフェールオーバーする方法の選択
    • アクティブセカンダリ
      複製したデータベースを参照専用データベースとして使用できる機能
    • セカンダリバックアップ
      複製したデータベース上でバックアップを取得できる機能
  • AlwaysOn?フェールオーバークラスタインスタンス
    旧バージョンでは、フェールオーバー機能に相当する。

    フェールオーバー クラスタリング (WSFC)の共有ディスクに変わって、
    データベース ミラーリングされたデータを使用することで、共有ディスクを使用せず
    地理的に離れた2つのノードのフェールオーバー クラスタリングを実現する。

参考

MSDN

レプリケーション

http://technet.microsoft.com/ja-jp/library/ms151198.aspx

レプリケーション機能とタスク

http://technet.microsoft.com/ja-jp/library/bb677158.aspx

高可用性ソリューション


Tags: :データアクセス, :SQL Server


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-10-22 (月) 14:35:13 (331d)