Sun Cluster HA for Oracle 的两个故障监视器分别是服务器监视器和侦听程序监视器。
用于 Oracle 服务器的故障监视器使用对服务器的请求来查询服务器的健康状况。
服务器故障监视器通过 pmfadm 启动,以使监视器具有高可用性。 如果监视器由于任何原因而终止,进程监视器工具 (PMF) 将自动重新启动该监视器。
主故障监视器进程,用于执行错误查找和 scha_control 操作
数据库客户机故障探测,用于执行数据库事务
如果数据库处于联机状态,并且在事务处理过程中没有返回错误,则主故障监视器确定操作是成功的。
数据库客户机故障探测将查询动态性能视图 v$sysstat 以获得数据库性能统计信息。 这些统计信息发生变化表示数据库运行正常。 如果这些统计信息在连续查询之间保持不变,故障探测将执行数据库事务以确定数据库是否运行正常。 这些事务包括在用户表空间中对表的创建、更新和拖放。
数据库客户机故障探测以 Oracle 用户身份执行其所有事务。 此用户的 ID 在准备节点的过程中进行指定,如如何准备节点 中所述。
探测使用在资源特性 Probe_timeout 中设置的超时值,来确定用于成功探测 Oracle 所分配的时间。
如果数据库事务失败,服务器故障监视器将执行一项由导致失败的错误所确定的操作。 要更改服务器故障监视器执行的操作,请按定制 Sun Cluster HA for Oracle 服务器故障监视器 中的说明定制服务器故障监视器。
如果操作需要运行外部程序,该程序将作为单独的进程在后台运行。
可能的操作如下所示:
忽略。服务器故障监视器将忽略错误。
停止监视。服务器故障监视器将停止,不关闭数据库。
重新启动。服务器故障监视器将停止,并重新启动由 Restart_type 扩展特性的值所指定的实体:
如果将 Restart_type 扩展特性设置为 RESOURCE_GROUP_RESTART,服务器故障监视器将重新启动数据库服务器资源组。 缺省情况下,服务器故障监视器将重新启动数据库服务器资源组。
如果将 Restart_type 扩展特性设置为 RESOURCE_RESTART,服务器故障监视器将重新启动数据库服务器资源。
在 Retry_interval 资源特性指定的时间内,尝试重新启动的次数可能会超过 Retry_count 资源特性的值。 如果发生这种情况,服务器故障监视器将尝试将资源组切换到另一个节点。
切换。服务器故障监视器将数据库资源组切换到另一个节点。 如果没有可用的节点,切换资源组的尝试将失败。 如果切换资源组的尝试失败,数据库服务器将重新启动。
Oracle 软件在警报日志文件中记录警报。 此文件的绝对路径由 SUNW.oracle_server 资源的 alert_log_file 扩展特性所指定。 服务器故障监视器于以下时间在警报日志文件中扫描新的警报:
在服务器故障监视器启动时
每次服务器故障监视器查询服务器的健康状况时
如果为服务器故障监视器检测到的日志警报定义一个操作,服务器故障监视器将执行响应警报的操作。
日志警报的预设操作在表 A–2 中列出。 要更改服务器故障监视器执行的操作,请按定制 Sun Cluster HA for Oracle 服务器故障监视器 中的说明定制服务器故障监视器。
Oracle 侦听程序故障监视器将检查 Oracle 侦听程序的状态。
如果正在运行侦听程序,Oracle 侦听程序故障监视器将认为探测成功。 如果故障监视器检测到一个错误,侦听程序将重新启动。
侦听程序探测通过 pmfadm 启动,以使探测具有高可用性。 如果探测被终止,PMF 将自动重新启动探测。
如果在探测过程中侦听程序出现问题,探测将尝试重新启动侦听程序。 在资源特性 Retry_count 中设置的值确定了探测尝试重新启动的最大次数。 如果在尝试了最大次数后,探测仍不成功,探测将停止故障监视器,并且不切换资源组。