データベース・ミラーリングでサポートされているシステム・イベントは次のとおりです。
MirrorFailover このイベントは、データベース・サーバがミラーリングされたデータベースの所有権を取得するたびに起動します。たとえば、初めてサーバが起動され、データベースを所有する必要があると判断した場合に起動します。また、前回ミラーとして動作していたサーバが、プライマリ・サーバがダウンしており、監視サーバに確認した結果、所有権を取得する必要があると判断した場合にも起動します。
MirrorServerDisconnect プライマリ・サーバとミラー・サーバまたは監視サーバとの接続が失われると、MirrorServerDisconnect イベントが起動します。このイベントのハンドラ内部で、EVENT_PARAMETER ('MirrorServerName') の値は接続が失われたサーバの名前です。
イベントは、現在ミラー・サーバとして動作しているサーバでは起動しません。また、ミラーリング・イベントを監視サーバ上で実行するよう定義することはできません。これは、イベントは定義されているデータベースのコンテキストでのみ実行されますが、監視サーバはミラーリングされているデータベースのコピーを使用しないからです。
上記のイベントは、ミラー・データベースに対するアクションの必要性を電子メールで通知するためのメカニズムとして使用できます。ただし、プライマリ・サーバ上で実行されているデータベースが使用できなくなるあらゆる状況でこれらのイベントが起動するわけではありません。たとえば、プライマリ・サーバとミラー・サーバの両方に影響する停電があった場合、どちらのイベントも起動しません。このような監視が必要な場合は、別のコンピュータでスクリプト言語を使用することで実装できます。たとえば、dbping を定期的に呼び出してミラー・データベースに接続します。Ping ユーティリティ (dbping)を参照してください。
次の例は、フェールオーバの発生を管理者に通知するイベントを作成しています。
CREATE EVENT mirror_server_unavailable TYPE MirrorServerDisconnect HANDLER BEGIN CALL xp_startmail ( mail_user ='George Smith', mail_password ='mypwd' ); CALL xp_sendmail( recipient='DBAdmin', subject='Database failover occurred', "message"='The following server is unavailable in the mirroring system: ' || event_parameter( 'MirrorServerName' ) ); CALL xp_stopmail ( ); END; |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |