Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SAP Sybase SQL Anywhere 16.0 » SQL Anywhere サーバ データベース管理 » 高可用性と読み込み専用のスケールアウトシステム » データベースミラーリング » データベースミラーリングシステムの管理

 

データベースミラーリングでのロールの切り替え (フェイルオーバ)

プライマリサーバがハードウェアやソフトウェアの障害により使用できなくなった場合、ミラーサーバが監視サーバとネゴシエートしてデータベースの所有権を取得し、プライマリサーバのロールを引き受けます。所有権の譲渡、すなわち「ロールの切り替え」を実施するには、ダウンしていないパートナサーバと監視サーバは、ロールの切り替えを行おうとする時点で、ミラーが最新で同期された状態にあることを合意する必要があります。

  • それまで元のプライマリサーバに接続されていたクライアントはすべて切断され、コミットされていないトランザクションはすべて失われます。クライアントがデータベースへのアクセスを続行するには、新しいプライマリサーバ上のデータベースに接続し直す必要があります。元のプライマリサーバは、再び使用可能になると、ミラーサーバのロールを引き受けます。

  • 元のミラーデータベースに接続していたクライアントは、フェイルオーバが発生し、ミラーサーバがプライマリサーバになったときにも維持されます。フェイルオーバ後は、これらのクライアント接続によってデータベースに変更を加えることができます。

データベースサーバのデータベースサーバメッセージウィンドウには、起動時に、そのサーバが引き受けているロールと起動プロセスの進捗状況を示すステータスメッセージが表示されます。また、ミラーリングシステムを構成する他の 1 つ以上のサーバが失われたことが原因でデータベースの再起動が必要になった場合、またはロールがミラーからプライマリに変更された場合に、メッセージが表示されます。

ミラーリングシステムを構成するいずれかのサーバでアサーションが失敗すると、そのサーバはデータベースサーバメッセージログにエラーを出力して終了します。これにより、他のサーバに障害発生が通知され、適切なアクションが実行されます。

高可用性環境のデータベースで、互換性がない、トランザクションログが一致しないなどの問題が発生すると、データベースは停止します。問題が発生したデータベースを実行していたデータベースサーバも、他に実行中のデータベースがないかぎりシャットダウンします。

データベースミラーリングシステムの各データベースのステータスの詳細は、ステータス情報ファイルに格納されます。

  • 監視サーバが存在する場合、プライマリからミラーへのフェイルオーバは自動で実行される。同期モードで実行している場合、コミットされたトランザクションがフェイルオーバ中に失われることはありません。

  • ミラーサーバにトランザクションログが適用済みなので、フェイルオーバが非常に高速になる。ミラーがプライマリの障害を検知すると、コミットされていないトランザクションをすべてロールバックし、データベースを使用可能にします。

プライマリが同期ステータスでありながら利用できなくなった場合、ミラーはプライマリとして引き継ぐことができません。ミラーリングシステムは、プライマリが利用できるようになるまで待機します。

SQL Anywhere では、データベースミラーリングシステムでフェイルオーバが発生したときに、使用しているモードに関係なく起動するシステムイベントをサポートしています。これらのイベントを使用することで、フェイルオーバの発生時に管理者に通知することなどができます。

 参照

ユーザが開始したロールの切り替え (フェイルオーバ)
データベースミラーリングシステムイベントを使用してフェイルオーバ発生時に通知を送信する