Open棟梁Project - マイクロソフト系技術情報 Wiki
目次 †
概要 †
SQL Serverには以下のレプリケーション機構がある。
- スナップショット レプリケーション
データの変更は追跡されず、スナップショットが適用されるたびに、
既存のデータがすべて上書きされます。
- トランザクション レプリケーション
トランザクション ログを使用して変更が追跡されます。
- マージ レプリケーション
トリガーとメタデータ テーブルを使用して変更が追跡されます。
- ログ配布
トランザクションログの転送をベースに利用しているようです。
- データベースミラーリング
トランザクションログの転送をベースに利用しているようです。
- AlwaysOn?
データベースミラーリングをベースに利用しているようです。
レプリケーション †
レプリケーションでは、エージェントと呼ばれる多数のスタンドアロン プログラムを使用して、変更の監視やデータの配信に関連するタスクを実行します。
パブリッシング モデル †
レプリケーションのパブリッシング モデルの概要
http://technet.microsoft.com/ja-jp/library/ms152567.aspx
レプリケーションでは、レプリケーション トポロジ内のコンポーネントを出版業界に例えて表します。
- パブリッシャー (出版社)
- ディストリビューター (流通業者)
- サブスクライバー (購読者)
- パブリケーション (出版物)
データベースからの1つないし複数のアーティクルの集合。
- アーティクル (記事)
テーブルやレプリケーション用に指定されたデータベース・オブジェクト。
- サブスクリプション (定期購読物)
パブリケーションのコピーを要求すること。
エージェント †
- ログ リーダー エージェント
http://technet.microsoft.com/ja-jp/library/ms146878.aspx
- ログ リーダー エージェントは、トランザクション レプリケーションで使用されます。
- レプリケーションとしてマークが付けられたトランザクションを、パブリッシャーのトランザクション ログから、ディストリビューション データベースに移動します。
- トランザクション レプリケーションを使用してパブリッシュされた各データベースには、ディストリビューター上で実行され、パブリッシャーに接続する独自のログ リーダー エージェントがあります (ディストリビューターはパブリッシャーと同じコンピューター上に存在していてもかまいません)。
- ディストリビューション エージェント
http://technet.microsoft.com/ja-jp/library/ms147328.aspx
- ディストリビューション エージェントは、スナップショット レプリケーション、およびトランザクション レプリケーションで使用されます。
- ディストリビューション エージェントは初期スナップショットをサブスクライバーに適用し、ディストリビューション データベースに保持されているトランザクションをサブスクライバーに移動します。
- ディストリビューション エージェントは、プッシュ サブスクリプションの場合はディストリビューターで実行され、プル サブスクリプションの場合はサブスクライバーで実行されます。
- マージ エージェント
http://technet.microsoft.com/ja-jp/library/ms147839.aspx
- マージ エージェントは、マージ レプリケーションで使用されます。
- マージ エージェントは、初期スナップショットをサブスクライバーに適用し、データの増分変更を移動および調整します。
- マージ サブスクリプションごとにマージ エージェントがあり、パブリッシャーとサブスクライバーの両方に接続し、両方を更新します。
- マージ エージェントは、プッシュ サブスクリプションの場合はディストリビューターで実行され、プル サブスクリプションの場合はサブスクライバーで実行されます。
- 既定では、マージ エージェントはサブスクライバーからパブリッシャーに変更をアップロードし、パブリッシャーからサブスクライバーに変更をダウンロードします。
- キュー リーダー エージェント
http://technet.microsoft.com/ja-jp/library/ms147378.aspx
- キュー リーダー エージェントは、キュー更新オプションによるトランザクション レプリケーションで使用されます。
- このエージェントはディストリビューターで実行され、サブスクライバーで行われた変更をパブリッシャーに戻します。
- ディストリビューション エージェントやマージ エージェントとは異なり、キュー リーダー エージェントは 1 つのインスタンスだけで、ディストリビューション データベースのすべてのパブリッシャーおよびパブリケーションに対応します。
- レプリケーション メンテナンス ジョブ
- レプリケーションには、定期的なメンテナンスや要求時メンテナンスを実行する多数のメンテナンス ジョブがあります。
スナップショット レプリケーション †
http://technet.microsoft.com/ja-jp/library/ms151832.aspx
- スナップショット レプリケーションでは、特定の時間に表示されていた状態のデータを配信します。
- データに対する更新は監視されません。
- 同期が発生するとデータ全体のスナップショットが作成され、サブスクライバーに送信されます。
VSSのスナップショットでファイルの変更点を配布している。
トランザクション レプリケーション †
http://technet.microsoft.com/ja-jp/library/ms151176.aspx
- パブリケーションのデータベース オブジェクトとデータのスナップショットで開始されます。
- 最初のスナップショットが取得されるとすぐ、それ以後パブリッシャーでデータやスキーマが変更されると、通常はその都度 (ほぼリアルタイムで) サブスクライバーに配信されるようになります。
- データの変更は、パブリッシャーで発生したのと同じ順序で、同じトランザクションの中で、サブスクライバーに適用されます。したがって、パブリケーション内では、トランザクションの一貫性が保証されます。
マージ レプリケーション †
http://technet.microsoft.com/ja-jp/library/ms152746.aspx
- トランザクション レプリケーションと同様に、パブリケーションのデータベース オブジェクトとデータのスナップショットで開始されます。
- その後にパブリッシャーとサブスクライバーで行われたデータおよびスキーマの変更は、トリガーを使って追跡されます。
- サブスクライバーは、ネットワークに接続されたときにパブリッシャーと同期して、前回の同期以降にパブリッシャーとサブスクライバーの間で変更されたすべての行を交換します。
ログ配布 †
以下を参照すると明らかですが、ログ配布は、
トランザクションログのバックアップ&リストアのテクノロジを
使用してデータベースのレプリケーションを実現しているようです。
データベース・ミラーリング †
データベース ミラーリングは、可用性向上のための冗長化の仕組みです。
(ミラーリングもトランザクションログの転送によって実現されているようです)。
AlwaysOn? 可用性グループ用のレプリケーションの構成 †
こちらも、可用性向上のための冗長化の仕組みです。
こちらもミラーリング(トランザクションログの転送)をベースに利用しているようです。
- AlwaysOn?可用性グループ
旧バージョンでは、ミラーリング機能に相当する
- データ同期モード
オリジナルデータベースと複製するデータベースとの同期方法の選択
- フェールオーバーモード
オリジナルデータベースで障害発生時に、複製先データベースへフェールオーバーする方法の選択
- アクティブセカンダリ
複製したデータベースを参照専用データベースとして使用できる機能
- セカンダリバックアップ
複製したデータベース上でバックアップを取得できる機能
- AlwaysOn?フェールオーバークラスタインスタンス
旧バージョンでは、フェールオーバー機能に相当する。
フェールオーバー クラスタリング (WSFC)の共有ディスクに変わって、
データベース ミラーリングされたデータを使用することで、共有ディスクを使用せず
地理的に離れた2つのノードのフェールオーバー クラスタリングを実現します。
詳細 †
レプリケーションの定義 †
- パブリケーションを作成し、
- アーティクルを定義する。
- サブスクリプションの作成
パブリッシュ †
データとデータベース オブジェクトのパブリッシュ
http://msdn.microsoft.com/ja-jp/library/ms152559.aspx
サブスクライブ †
パブリケーションのサブスクライブ
http://msdn.microsoft.com/ja-jp/library/ms151170.aspx
- プッシュ サブスクリプションの作成
- プル サブスクリプションのプロパティの表示または変更
- プッシュ サブスクリプションのプロパティの表示または変更
- プル サブスクリプションの削除
- プッシュ サブスクリプションの削除
参考 †
参考情報 †
MSDN †
レプリケーション †
http://technet.microsoft.com/ja-jp/library/ms151198.aspx
レプリケーション機能とタスク †
http://technet.microsoft.com/ja-jp/library/bb677158.aspx
高可用性ソリューション †
- ログ配布
- ログ配布について
http://technet.microsoft.com/ja-jp/library/ms187103.aspx
SQL Server のログ配布を使用すると、トランザクション ログ バックアップを、プライマリ サーバー インスタンスのプライマリ データベースから、別のセカンダリ サーバー インスタンスの 1 つ以上のセカンダリ データベースに自動的に送信できます。トランザクション ログ バックアップはセカンダリ データベースごとに個別に適用されます。オプションで用意する 3 台目のサーバー インスタンス (監視サーバー) では、バックアップ操作と復元操作の履歴と状態が記録されます。また、これらの操作がスケジュールどおりに実行されなかった場合に警告を通知することもできます。