高可用性は低コストなデータベースミラーリングでSQL Server 2005を使いこなそう(8)(2/3 ページ)

» 2006年09月21日 00時00分 公開
[石橋潤一株式会社システムインテグレータ]

データベースミラーリングの動作モード

 データベースミラーリングは、サーバの構成に合わせて複数の動作モードを持っています。

高可用性モード

 プリンシパルとミラーが同期転送モードで動作します。プリンシパルはトランザクションログを書き込むと同時にミラーへデータを送信し、ミラーでのトランザクションログ記録の完了通知を待ってトランザクションをコミットします。

 ミラーリング監視サーバによって、プリンシパルとミラーの状態は常時監視され、プリンシパルに障害が発生した場合は自動でフェールオーバーが実施されます。ミラーは常にプリンシパルと同期しているため、このフェールオーバーは数秒で完了し、非常に高速な動作を実現します。

 常時サーバ間で通信が行われるため、高速で信頼性の高い通信環境が求められます。また、プリンシパルはミラーからの応答を待つ必要があるため、ミラーのパフォーマンスにプリンシパルが影響を受ける可能性があります。

高度な保護モード

 プリンシパルとミラーは同期転送モードで動作しますが、ミラーリング監視サーバは利用しません。ミラーリング監視サーバを利用しないため、障害発生時の自動フェールオーバーは行われず、手動でのフェールオーバーが必要となります。「高可用性モード」から次に説明する「高パフォーマンスモード」へ移行する際などに利用するモードであり、データベースミラーリングの本来の目的を考えると常時利用は推奨されていません。

高パフォーマンスモード

 プリンシパルとミラーは非同期で動作し、プリンシパルはミラーのトランザクションログ記録の完了通知を待ちません。また、ミラーリング監視サーバを利用しないため自動フェールオーバーは実施されません。フェールオーバーを実施するには「強制フェールオーバー」を行う必要があります。障害の発生やフェールオーバー時、プリンシパルからトランザクションブロックが転送中であった場合は、データ損失が発生してしまう可能性があります。データの多少の紛失は許されるパフォーマンス優先のシステムに適しています。

動作モード 同期/非同期 ミラーリング監視サーバ フェールオーバータイプ
高可用性モード 同期 あり 自動または手動
高度な保護モード なし 手動
高パフォーマンスモード 非同期 なし 強制
表2 データベースミラーリングの動作モード

 プリンシパルとミラーが同期モードで動作する場合、各処理は次のような流れで行われます(図2)。

図2 同期モードでの処理の流れ 図2 同期モードでの処理の流れ

(1)〜(2)
プリンシパルはクライアントからトランザクションを受け取り、そのトランザクションをトランザクションログに書き込む。ログの書き込みと同時に、ミラーへログレコードの送信を行う。

(3)〜(4)
ミラーは受け取ったログレコードをトランザクションログへ書き込み、処理が完了するとプリンシパルへ通知する。この通知によってプリンシパルとミラーの同期が保証される。

(5)
クライアントへ処理結果を送信。

(6)
プリンシパル、ミラーそれぞれでデータの書き込み処理を実施。

 非同期モードでは、(3)〜(4)のミラーでの処理を待たないため、高速に動作します。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。