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

SQL Anywhere 12.0.1 » SQL Anywhere サーバー データベース管理 » データベースのメンテナンス » SQL Anywhere の高可用性 » データベースミラーリングシステムの設定

 

データベースミラーリングにおけるシステムイベント

データベースミラーリングでサポートされているシステムイベントは次のとおりです。

  • 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='Mirror server disconnect occurred',
    "message"='The following server is unavailable in the mirroring system: '
    || event_parameter( 'MirrorServerName' ) );
 CALL xp_stopmail ( );
END;
 参照