跳过导航链接
退出打印视图
| 适用于 Oracle Real Application Clusters 的 Oracle Solaris Cluster 数据服务指南 Oracle Solaris Cluster 3.3 3/13 (简体中文)

搜索范围:

- 本文档
- 整个文档库

## 调优 Support for Oracle RAC 故障监视器

以下资源的故障监视器提供了对 Support for Oracle RAC 数据服务的故障监视：

- 可伸缩设备组资源

- 可伸缩文件系统挂载点资源

- Oracle 9i RAC 服务器资源

- Oracle 9i RAC 侦听器资源

每个故障监视器均包含在具有下表所显示资源类型的资源中。

表 5-4 Support for Oracle RAC 故障监视器的资源类型

故障监视器 | 资源类型
--- | ---
可伸缩设备组 | `SUNW.ScalDeviceGroup`
可伸缩文件系统挂载点 | `SUNW.ScalMountPoint`
Oracle 9i RAC 服务器 | `SUNW.scalable_rac_server`
Oracle 9iRAC 侦听器 | `SUNW.scalable_rac_listener`

这些资源的系统属性和扩展属性可控制故障监视器的行为。这些属性的默认值确定了故障监视器的预设行为。预设行为应适合大多数 Oracle Solaris Cluster 安装。因此，仅当需要修改此预设行为时，才应调优 Support for Oracle RAC 故障监视器。

调优 Support for Oracle RAC 故障监视器包括以下任务：

- 设置故障监视器探测间隔

- 设置故障监视器探测的超时

- 定义永久性故障的条件

- 指定资源的故障转移行为

有关更多信息，请参见《Oracle Solaris Cluster Data Services Planning and Administration Guide》中的"Tuning Fault Monitors for Oracle Solaris Cluster Data Services"。以下各小节提供了有关执行这些任务所需的 Support for Oracle RAC 故障监视器的信息：

- 可伸缩设备组故障监视器的操作

- 可伸缩文件系统挂载点故障监视器的操作

- Oracle 9i RAC 服务器故障监视器的操作

- Oracle 9i RAC 侦听器故障监视器的操作

- 获取用于 DBMS 超时故障排除的核心文件

### 可伸缩设备组故障监视器的操作

默认情况下，故障监视器监视资源所代表设备组中的所有逻辑卷。如果只需要监视设备组中逻辑卷的子集，则设置 `LogicalDeviceList` 扩展属性。

设备组的状态是从监视的各个逻辑卷的状态中得出的。如果所有监视逻辑卷的运行状况良好，则设备组的运行状况良好。如果任何监视的逻辑卷出现故障，则设备组出现故障。如果发现设备组出现故障，将停止监视代表该组的资源并且该资源将被置于禁用状态。

通过查询单个逻辑卷的卷管理器，可以获得该逻辑卷的状态。如果无法通过查询确定 Solaris Volume Manager for Sun Cluster 卷的状态，故障监视器将执行文件输入/输出 (input/output, I/O) 操作来确定状态。

注 - 对于镜像磁盘，如果一个子镜像出现故障，设备组仍被视为运行状况良好。

如果重新配置用户级群集成员导致 I/O 错误，则在进行用户级群集成员监视器 (userland cluster membership monitor, UCMM) 重新配置时，将暂停故障监视器对设备组资源的监视。

### 可伸缩文件系统挂载点故障监视器的操作

要确定已挂载的文件系统是否可用，故障监视器将对文件系统上的测试文件执行 I/O 操作，如打开、读取和写入该测试文件。如果在超时期限内 I/O 操作未完成，故障监视器将报告错误。要为 I/O 操作指定超时，请设置 `IOTimeout` 扩展属性。

对错误的响应取决于文件系统的类型，如下所示：

- 如果文件系统为合格 NAS 设备上的 NFS 文件系统，则响应如下所示：

  - 在当前节点上停止对资源的监视。

  - 在当前节点上，资源将置于禁用状态，从而使文件系统从该节点上卸载。

- 如果文件系统为 Sun QFS 共享文件系统，则响应如下所示：

  - 如果发生错误的节点正在托管元数据服务器资源，则元数据服务器资源会故障转移到另一个节点。

  - 卸载文件系统。

  如果故障转移尝试失败，则不会挂载文件系统并给出一条警告消息。

### Oracle 9i RAC 服务器故障监视器的操作

Oracle 9i RAC 服务器的故障监视器通过向服务器发出请求来查询服务器运行状况。

服务器故障监视器是通过 `pmfadm` 启动的，以便实现监视器的高可用性。如果因为任何原因导致监视器终止，进程监视器工具 (Process Monitor Facility, PMF) 将自动重新启动监视器。

服务器故障监视器包括以下进程。

- 主故障监视器进程

- 数据库客户机故障探测器

本节包含有关服务器故障监视器的以下信息：

- 主故障监视器操作

- 数据库客户机故障探测器的操作

- 服务器故障监视器响应数据库事务故障时的操作

- 扫描服务器故障监视器记录的警报

#### 主故障监视器操作

主故障监视器可确定如果数据库联机且在事务处理期间未返回任何错误则操作成功。

#### 数据库客户机故障探测器的操作

数据库客户机故障探测器执行以下操作：

1. 监视归档重做日志的分区。请参见监视归档重做日志分区的操作。

2. 如果分区运行正常，则确定数据库是否正常运行。请参见确定数据库是否正常运行的操作。

探测器使用在资源属性 `Probe_timeout` 中设置的超时值，确定需要为成功探测 Oracle 分配多少时间。

##### 监视归档重做日志分区的操作

数据库客户机故障探测器将查询动态性能视图 `v$archive_dest` 来确定归档重做日志的所有可能目标。对于每个活动目标，探测器将确定目标是否正常运行，是否有足够的空闲空间可供存储归档重做日志。

- 如果目标运行正常，探测器将确定目标文件系统中的空闲空间大小。如果空闲空间大小低于文件系统容量的 10%，并且少于 20 MB，则探测器会将消息输出到 `syslog`。

- 如果目标处于 `ERROR` 状态，则探测器将消息输出到 `syslog`，并禁用操作以确定数据库是否正常运行。在清除错误状态之前，将一直禁用操作。

##### 确定数据库是否正常运行的操作

如果归档重做日志分区运行正常，则数据库客户机故障探测器将查询动态性能视图 `v$sysstat` 以获取数据库性能统计信息。这些统计信息的变化表示数据库正常运行。如果这些统计信息在连续查询之间保持不变，则故障探测器将执行数据库事务以确定数据库是否正常运行。这些事务涉及在用户表空间中创建、更新和删除表。

数据库客户机故障探测器以 Oracle 用户身份执行其所有事务。该用户的 ID 在节点或区域准备期间指定，如如何创建 DBA 组和 DBA 用户帐户中所述。

#### 服务器故障监视器响应数据库事务故障时的操作

如果数据库事务发生故障，服务器故障监视器将执行按导致故障的错误确定的操作。要更改服务器故障监视器执行的操作，请按定制 Oracle 9i RAC 服务器故障监视器中的说明定制服务器故障监视器。

如果操作需要运行外部程序，该程序将在后台作为单独的进程运行。

可能的操作如下：

- 忽略。服务器故障监视器会忽略该错误。

- 停止监视。服务器故障监视器在不关闭数据库的情况下停止。

- 重新启动。服务器故障监视器停止并重新启动 Oracle 9i RAC 服务器资源。

#### 扫描服务器故障监视器记录的警报

Oracle 软件将警报记录在警报日志文件中。此文件的绝对路径由 `SUNW.scalable_rac_server` 资源的 `alert_log_file` 扩展属性指定。在以下情况下，服务器故障监视器将扫描警报日志文件以获取新警报：

- 启动服务器故障监视器时

- 每次服务器故障监视器查询服务器运行状况时

如果为服务器故障监视器检测到的已记录警报定义了操作，服务器故障监视器将执行此操作以响应警报。

表 B-2 中列出了有关已记录警报的预设操作。要更改服务器故障监视器执行的操作，请按定制 Oracle 9i RAC 服务器故障监视器中的说明定制服务器故障监视器。

### Oracle 9i RAC 侦听器故障监视器的操作

Oracle 9i RAC 侦听器故障监视器检查 Oracle 侦听器的状态。

如果侦听器正在运行，Oracle 9i RAC 侦听器故障监视器将认为探测成功。如果故障监视器检测到错误，将重新启动侦听器。

注 - 侦听器资源不提供侦听器密码设置机制。如果启用了 Oracle 侦听器安全设置，则侦听器故障监视器的探测可能会返回 Oracle 错误 TNS-01169。由于侦听器能够响应，因此侦听器故障监视器将认为探测成功。此操作不会导致漏检侦听器故障。侦听器故障会返回不同的错误或导致探测超时。

侦听器探测是通过 `pmfadm` 启动的，以便实现探测的高可用性。如果探测被终止，PMF 会自动重新启动探测器。

如果在探测期间侦听器出现问题，探测将尝试重新启动侦听器。为资源属性 `retry_count` 设置的值可确定探测器尝试重新启动的最大次数。在尝试了最大次数之后，如果探测仍不成功，探测将停止故障监视器。

### 获取用于 DBMS 超时故障排除的核心文件

为方便对情况不明的 DBMS 超时进行故障排除，可以让故障监视器在发生探测超时创建核心文件。核心文件的内容与故障监视器进程相关。故障监视器会在 `/` 目录下创建核心文件。要允许故障监视器创建核心文件，请使用 `coreadm` 命令启用 set-id 核心转储。有关更多信息，请参见 `coreadm`(1M) 手册页。

版权所有 © 2000, 2013, Oracle 和/或其附属公司。 保留所有权利。 法律声明 |