JavaScript is required to for searching.
跳过导航链接
退出打印视图
适用于 Oracle 的 Oracle Solaris Cluster 数据服务指南     Oracle Solaris Cluster 4.0 (简体中文)
search filter icon
search icon

文档信息

前言

1.  安装和配置 HA for Oracle

HA for Oracle 的安装和配置过程概述

规划 HA for Oracle 的安装和配置

配置要求

配置规划问题

准备节点和磁盘

如何准备节点

如何使用 Solaris Volume Manager 配置 Oracle 数据库访问

如何使用 Oracle ASM 配置 Oracle 数据库访问

如何配置 Oracle Grid Infrastructure for Clusters SCAN 侦听器

安装 Oracle ASM 软件

检验 Oracle ASM 软件安装

安装 Oracle 软件

如何安装 Oracle 软件

如何设置 Oracle 内核参数

检验 Oracle 安装和配置

如何检验 Oracle 安装

创建 Oracle 数据库

如何创建 Oracle 主数据库

设置 Oracle 数据库权限

如何设置 Oracle 数据库权限

安装 HA for Oracle 软件包

如何安装 HA for Oracle 软件包

注册和配置 HA for Oracle

用于注册和配置 HA for Oracle 的工具

设置 HA for Oracle 扩展属性

如何注册和配置 HA for Oracle (clsetup)

如何注册和配置不带有 Oracle ASM (CLI) 的 HA for Oracle

如何使用群集 Oracle ASM 磁盘组和第三方卷管理器 (CLI) 创建 Oracle Grid Infrastructure 资源

如何注册和配置带有群集 Oracle ASM 实例 (Clustered Instance, CLI) 的 HA for Oracle

此时应该执行的操作

检验 HA for Oracle 安装

如何检验 HA for Oracle 安装

Oracle 客户机

HA for Oracle 日志文件的位置

调优 HA for Oracle 故障监视器

Oracle 服务器故障监视器操作

主故障监视器操作

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

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

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

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

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

Oracle 侦听器故障监视器的操作

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

定制 HA for Oracle 服务器 故障监视器

为错误定义定制行为

定制操作文件格式

更改对 DBMS 错误的响应

响应影响严重的错误

忽略影响轻微的错误

更改对记录的警报的响应

更改连续超时探测的最大次数

将定制操作文件传播到群集中的所有节点

指定服务器故障监视器应使用的定制操作文件

如何指定服务器故障监视器应使用的定制操作文件

更改 Oracle Data Guard 实例的角色

如何更改 Oracle Data Guard 实例的角色

A.  HA for Oracle 扩展属性

B.  DBMS 错误和记录的警报的预设操作

C.  Oracle ASM 和 HA for Oracle 的样例配置

索引

准备节点和磁盘

本节包含准备节点和磁盘时需要执行的过程。

如何准备节点

执行此过程以准备安装和配置 Oracle 软件。


注意

注意 - 在所有节点上执行本节中的所有步骤。如果未对所有节点执行所有步骤,Oracle 安装将不完整。Oracle 安装不完整会导致 HA for Oracle 在启动期间出现故障。



注 - 执行此过程之前,请先查阅 Oracle 文档。


以下步骤用于准备节点和安装 Oracle 软件。

  1. 成为所有群集成员上的超级用户。
  2. 为 HA for Oracle 配置群集文件系统。

    注意

    注意 - 在非全局区域中,不支持 Oracle Solaris Cluster 设备组中的原始设备。


  3. 在本地磁盘或多主机磁盘上准备 $ORACLE_HOME 目录。

    注 - 如果在本地磁盘上安装 Oracle 二进制文件,请尽量使用单独的磁盘。在单独的磁盘上安装 Oracle 二进制文件,可防止在重新安装运行环境的过程中覆写这些二进制文件。使用 Oracle ASM 时,应创建两个 $ORACLE_HOME 目录,一个 $ORACLE_HOME 目录用于 Oracle 数据库,另一个 $ORACLE_HOME 目录用于 Oracle ASM。


  4. 在每个节点上,在 /etc/group 文件中为数据库管理员 (database administrator, DBA) 组创建条目,然后将潜在用户添加到该组。

    DBA 组通常命名为 dba。检验 oracle 用户是否为 dba 组的成员,然后根据需要为其他 DBA 用户添加条目。确保组 ID 在运行 HA for Oracle 的所有节点上均相同,如下例所示。

    dba:*:520:root,oracle

    如果使用 Oracle ASM,应在 Oracle ASM 的 /etc/group 文件中为 DBA 组添加附加条目。

    dba:*:520:root,oracle,oraasm
  5. 在每个节点上,为 Oracle 用户 ID (oracle) 创建一个条目。

    Oracle 用户 ID 通常命名为 oracle。以下命令使用 Oracle 用户 ID 的条目更新 /etc/passwd/etc/shadow 文件。

    # useradd -u 120 -g dba -d /Oracle_home oracle

    确保 oracle 用户条目在运行 HA for Oracle 的所有节点上均相同。

    如果使用 Oracle ASM,应为 Oracle ASM 创建一个附加 Oracle 用户 ID。

    # useradd -u 121 -g dba -d /asm-home oraasm
  6. 在全局群集和运行 HA for Oracle 的区域群集(如果使用)中配置内核参数。

    可能需要重新引导群集,才能使某些参数更改生效。有关调优 Oracle Solaris 内核参数的信息,请参见《Oracle Solaris 可调参数参考手册》中的"调优 Oracle Solaris 内核"

    有关共享内存要求的信息,请参见《Oracle Database Installation Guide 11g Release 2 (11.2) for Oracle Solaris》中的"Configuring Kernel Parameters in Oracle Solaris 10"(“在 Oracle Solaris 10 中配置内核参数”)。此信息对 Oracle Solaris 11 OS 上的 Oracle Solaris Cluster 4.0 软件有效。

  7. 如果在区域群集中运行 HA for Oracle,请配置 limitpriv 属性。

    limitpriv 属性是必需项。

    #clzonecluster configure zcname
    clzonecluster:zcname> set limitpriv="default,proc_priocntl,proc_clock_highres,sys_time"
    clzonecluster:zcname> commit
    clzonecluster:zcname> exit

如何使用 Solaris Volume Manager 配置 Oracle 数据库访问

通过执行此过程以使用 Solaris Volume Manager 配置 Oracle 数据库。


注 - 只能在全局区域中运行此过程。


  1. 配置 Solaris Volume Manager 软件使用的磁盘设备。

    有关如何配置 Solaris Volume Manager 软件的信息,请参见《Oracle Solaris Cluster 软件安装指南》

  2. 如果使用原始设备来包含数据库,请通过运行以下命令来更改每个原始镜像元设备的所有者、组和模式。

    如果不使用原始设备,则无需执行此步骤。

    1. 如果创建原始设备,请在可控制 Oracle 资源组的每个节点上针对每个设备运行以下命令。
      # chown oracle /dev/md/metaset/rdsk/dn
      # chgrp dba /dev/md/metaset/rdsk/dn
      # chmod 600 /dev/md/metaset/rdsk/dn
      metaset

      指定磁盘集的名称

      /rdsk/dn

      指定 metaset 磁盘集中的原始磁盘设备的名称

    2. 检验更改是否生效。
      # ls -lL /dev/md/metaset/rdsk/dn

如何使用 Oracle ASM 配置 Oracle 数据库访问

要使用 Oracle ASM 配置 Oracle 数据库访问权限,请执行此过程。您可以在 Solaris Volume Manager 上使用 Oracle ASM。

  1. 配置 Oracle ASM 软件使用的磁盘设备。

    有关如何配置 Oracle ASM 的信息,请参见《适用于 Oracle Real Application Clusters 的 Oracle Solaris Cluster 数据服务指南》中的"使用 Oracle ASM"

  2. 设置 Oracle ASM 磁盘组要使用的 Oracle ASM 磁盘的权限。
    1. 在可控制 Oracle 资源组的每个节点上针对每个设备运行以下命令。
      # chown oraasm:dba /dev/did/rdisk/dn
      # chmod 660 /dev/did/rdisk/dn
    2. 检验更改是否生效。
      # ls -lhL /dev/did/rdisk/dn

如何配置 Oracle Grid Infrastructure for Clusters SCAN 侦听器

使用 Grid Infrastructure for Clusters 部署 HA for Oracle 数据服务时,单实例数据库的首选侦听器是 Oracle Grid Infrastructure for Clusters 单客户机访问名称 (SCAN) 侦听器。要在 HA for Oracle 配置中利用 SCAN,必须修改单实例数据库 remote_listener 参数以反映 SCAN 名称和端口号。

如果配置 SCAN 侦听器,则可以忽略本手册中后面有关创建具有 SUNW.oracle_listener 资源类型的 Oracle 侦听器的说明。配置 SCAN 侦听器时不需要 Oracle 侦听器资源。

有关 SCAN 的更多信息,请参见《Oracle Grid Infrastructure Installation Guide 11g Release 2 (11.2) for Solaris Operating System》。

以下示例过程说明了配置 SCAN 名称和端口时的命令和示例输出。请在群集的各个节点上都执行此过程。

  1. 成为节点上的超级用户。
  2. 配置 SCAN 侦听器。
    # srvctl config scan
    SCAN name: scanname, Network: 1/ipaddress/netmask/adaptername
    SCAN VIP name: scanvip, IP: /ipalias/vipaddress
    
    # srvctl config scan_listener
    SCAN Listener LISTENER_SCAN1 exists. Port: TCP:portnumber
    #
    
    SQL> show parameters listener
    
    NAME                TYPE     VALUE
    ------------------- -------- ------------------------------
    listener_networks   string
    local_listener      string   (DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=nodename)
                                 (PORT=portnumber))))
    remote_listener     string
    
    
    SQL>
    SQL> alter system set remote_listener = 'scanname:portnumber' scope=both;
    
    System altered.
    SQL> show parameters listener
    
    NAME                TYPE     VALUE
    ------------------- -------- ------------------------------
    listener_networks   string
    local_listener      string   (DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=nodename)
                                 (PORT=portnumber))))
    remote_listener     string   scanname:portnumber
    SQL>