Oracle 数据库服务器的故障监视器通过向服务器发出请求来查询服务器运行状况。
服务器故障监视器是通过 pmfadm 启动的,以便实现监视器的高可用性。如果因为任何原因导致监视器终止,进程监视器工具 (Process Monitor Facility, PMF) 将自动重新启动监视器。
服务器故障监视器包括以下进程。
主故障监视器进程
数据库客户机故障探测器
本节包含有关服务器故障监视器的以下信息:
主故障监视器可确定如果数据库联机且在事务处理期间未返回任何错误则操作成功。
数据库客户机故障探测器执行以下操作:
监视归档重做日志的分区。请参见监视归档重做日志分区的操作。
如果分区运行正常,则确定数据库是否正常运行。请参见确定数据库是否正常运行的操作。
探测器使用在资源属性 Probe_timeout 中设置的超时值,确定需要为成功探测 Oracle 数据库分配多少时间。
数据库客户机故障探测器将查询动态性能视图 v$archive_dest 来确定归档重做日志的所有可能目标。对于每个活动目标,探测器将确定目标是否正常运行,是否有足够的空闲空间可供存储归档重做日志。
如果目标运行正常,探测器将确定目标文件系统中的空闲空间大小。如果空闲空间大小低于文件系统容量的 10%,并且少于 20 MB,则探测器会将消息输出到 syslog。
如果目标处于 ERROR 状态,则探测器将消息输出到 syslog,并禁用操作以确定数据库是否正常运行。在清除错误状态之前,将一直禁用操作。
如果归档重做日志分区运行正常,则数据库客户机故障探测器将查询动态性能视图 v$sysstat 以获取数据库性能统计信息。这些统计信息的变化表示数据库正常运行。如果这些统计信息在连续查询之间保持不变,则故障探测器将执行数据库事务以确定数据库是否正常运行。这些事务涉及在用户表空间中创建、更新和删除表。
数据库客户机故障探测器以 Oracle 数据库用户身份执行其所有事务。该用户的 ID 在 Oracle Solaris Cluster 节点准备期间指定,如如何准备 Oracle Solaris Cluster 节点中所述。
如果数据库事务发生故障,服务器故障监视器将执行按导致故障的错误确定的操作。要更改服务器故障监视器执行的操作,请按定制 HA for Oracle Database 服务器故障监视器中的说明定制服务器故障监视器。
如果操作需要运行外部程序,该程序将在后台作为单独的进程运行。
可能的操作如下:
忽略。服务器故障监视器会忽略该错误。
停止监视。服务器故障监视器在不关闭数据库的情况下停止。
重新启动。服务器故障监视器停止和重新启动由 Restart_type 扩展属性的值指定的实体:
如果将 Restart_type 扩展属性设置为 RESOURCE_RESTART,则服务器故障监视器将重新启动数据库服务器资源。默认情况下,服务器故障监视器会重新启动数据库服务器资源。
如果 Restart_type 扩展属性设置为 RESOURCE_GROUP_RESTART,服务器故障监视器将重新启动数据库服务器资源组。
切换。服务器故障监视器将数据库服务器资源组切换到另一个群集节点。如果没有可用节点,尝试切换资源组将失败。如果尝试切换资源组失败,数据库服务器会重新启动。
Oracle 数据库将警报记录在警报日志文件中。此文件的绝对路径由 SUNW.oracle_server 资源的 alert_log_file 扩展属性指定。在以下情况下,服务器故障监视器将扫描警报日志文件以获取新警报:
启动服务器故障监视器时
每次服务器故障监视器查询服务器运行状况时
如果为服务器故障监视器检测到的已记录警报定义了操作,服务器故障监视器将执行此操作以响应警报。
Table B–2 中列出了有关已记录警报的预设操作。要更改服务器故障监视器执行的操作,请按定制 HA for Oracle Database 服务器故障监视器中的说明定制服务器故障监视器。