「マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次 †
概要 †
SQL Serverには以下のレプリケーション機構がある。
- ログ配布
トランザクションログの転送をベースに利用している。
詳細 †
用語(パブリッシング モデル) †
レプリケーション トポロジ内のコンポーネントを出版業界に例えて表す。
レプリケーションのパブリッシング モデルの概要
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
アーティクル †
サブスクライブ †
パブリケーションのサブスクライブ
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