数据库镜像支持以下系统事件:
这两个事件不会在当前正在充当镜像服务器的服务器上触发。同样,不能将镜像事件定义为在仲裁服务器上执行,因为事件仅在定义它们的数据库环境中运行,并且仲裁服务器也不会使用要被镜像的数据库副本。
您可将这两个事件用作通知机制,以电子邮件的形式将可能需要对镜像数据库采取行动的通知发送出去。在所有会导致在主服务器上运行的数据库变为不可用的情况下都不会触发这两个事件。例如,同时影响主服务器和镜像服务器的断电情况便不会触发这两个事件中的任何一个事件。如果需要这种类型的监控,可以通过脚本编写语言在单独的计算机上加以实现,方法是通过调用 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 |