用于 Oracle 的 Sun Cluster 数据服务指南(适用于 Solaris OS)

安装和配置 Sun Cluster HA for Oracle

本章说明如何安装和配置 Sun Cluster HA for Oracle。

本章包括以下各节。


注 –

可以使用 Sun Cluster Manager 来配置此数据服务。有关详细信息,请参见 Sun Cluster Manager 联机帮助。


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

下列各表总结了安装和配置 Sun Cluster HA for Oracle 的各种任务。第一张表总结了在不使用 ASM 的情况下安装和配置 Sun Cluster HA for Oracle 的各种任务。后续各表总结了使用 ASM 安装和配置 Sun Cluster HA for Oracle 的各种任务。这些表格还提供详细说明如何执行这些任务的交叉引用。请按照列出的顺序执行这些任务。如果使用 Sun Cluster HA for Oracle 与 Oracle DataGuard,则对运行 Oracle 数据库实例的每个群集执行这些任务。

表 1 任务图:安装和配置 HA for Oracle

任务 

交叉引用 

规划 Sun Cluster HA for Oracle 安装和配置 

规划 Sun Cluster HA for Oracle 安装和配置

准备节点和磁盘 

准备节点和磁盘

安装 Oracle 软件 

如何安装 Oracle 软件

检验 Oracle 安装 

如何检验 Oracle 安装

创建 Oracle 数据库 

如何创建主 Oracle 数据库

设置 Oracle 数据库权限 

如何设置 Oracle 数据库权限

安装 Sun Cluster HA for Oracle 软件包 

安装 Sun Cluster HA for Oracle 软件包

注册和配置 Sun Cluster HA for Oracle 

如何通过使用 Sun Cluster 维护命令而不使用 ASM 来注册和配置 Sun Cluster HA for Oracle

检验 Sun Cluster HA for Oracle 安装 

检验 Sun Cluster HA for Oracle 安装

调整 Sun Cluster HA for Oracle 故障监视器 

调整 Sun Cluster HA for Oracle 故障监视器

(可选)定制 Sun Cluster HA for Oracle 服务器故障监视器 

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

(可选)升级 Sun Cluster HA for Oracle 资源类型 

升级 Sun Cluster HA for Oracle 资源类型

(可选)更改 DataGuard 实例的角色 

更改 DataGuard 实例的角色

表 2 任务图:安装和配置 HA for Oracle 与单一实例 ASM

任务 

交叉引用 

规划 Sun Cluster HA for Oracle 安装和配置 

规划 Sun Cluster HA for Oracle 安装和配置

准备节点和磁盘 

准备节点和磁盘

安装 ASM 软件  

如何安装 ASM 软件

安装 Oracle 软件 

如何安装 Oracle 软件

检验 Oracle 安装 

如何检验 Oracle 安装

创建 Oracle 数据库 

如何创建主 Oracle 数据库

设置 Oracle 数据库权限 

如何设置 Oracle 数据库权限

安装 Sun Cluster HA for Oracle 软件包 

安装 Sun Cluster HA for Oracle 软件包

注册和配置 Sun Cluster HA for Oracle 

如何使用 Sun Cluster 维护命令注册和配置使用单一实例 ASM 的 Sun Cluster HA for Oracle

检验 Sun Cluster HA for Oracle 安装 

检验 Sun Cluster HA for Oracle 安装

调整 Sun Cluster HA for Oracle 故障监视器 

调整 Sun Cluster HA for Oracle 故障监视器

(可选)定制 Sun Cluster HA for Oracle 服务器故障监视器 

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

(可选)升级 Sun Cluster HA for Oracle 资源类型 

升级 Sun Cluster HA for Oracle 资源类型

(可选)更改 DataGuard 实例的角色 

更改 DataGuard 实例的角色

表 3 任务图:安装和配置 HA for Oracle 与群集 ASM

任务 

交叉引用 

规划 Sun Cluster HA for Oracle 安装和配置 

规划 Sun Cluster HA for Oracle 安装和配置

准备节点和磁盘 

准备节点和磁盘

安装 ASM 软件  

如何安装 ASM 软件

安装 Oracle 软件 

如何安装 Oracle 软件

检验 Oracle 安装 

如何检验 Oracle 安装

创建 Oracle 数据库 

如何创建主 Oracle 数据库

设置 Oracle 数据库权限 

如何设置 Oracle 数据库权限

安装 Sun Cluster HA for Oracle 软件包 

安装 Sun Cluster HA for Oracle 软件包

注册和配置 Sun Cluster HA for Oracle 

如何使用 Sun Cluster 维护命令注册和配置使用群集 ASM 实例的 Sun Cluster HA for Oracle

检验 Sun Cluster HA for Oracle 安装 

检验 Sun Cluster HA for Oracle 安装

调整 Sun Cluster HA for Oracle 故障监视器 

调整 Sun Cluster HA for Oracle 故障监视器

(可选)定制 Sun Cluster HA for Oracle 服务器故障监视器 

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

(可选)升级 Sun Cluster HA for Oracle 资源类型 

升级 Sun Cluster HA for Oracle 资源类型

(可选)更改 DataGuard 实例的角色 

更改 DataGuard 实例的角色

规划 Sun Cluster HA for Oracle 安装和配置

本节包含规划 Sun Cluster HA for Oracle 安装和配置时所需的信息。

配置要求


注意 – 注意 –

如果您没有遵循这些要求,系统可能会不支持您的数据服务配置。


使用本节中的要求来规划 Sun Cluster HA for Oracle 的安装和配置。这些要求仅适用于 Sun Cluster HA for Oracle。您必须先满足这些要求,然后才能继续进行 Sun Cluster HA for Oracle 安装和配置。如果需要,Sun Cluster HA for Oracle 可配置为在非全局区域中运行。如果将 Sun Cluster HA for Oracle 配置为在非全局区域中运行,您必须使用高可用性本地文件系统。您也可以在区域群集中配置 Sun Cluster HA for Oracle。


注意 – 注意 –

非全局区域不支持来自 Sun Cluster 设备组的原始设备。


有关适用于所有数据服务的要求,请参见《Sun Cluster Data Services Planning and Administration Guide for Solaris OS》中的“Configuration Guidelines for Sun Cluster Data Services”

配置规划问题

使用本节中的问题来规划 Sun Cluster HA for Oracle 的安装和配置。在《Sun Cluster Data Services Planning and Administration Guide for Solaris OS》中的“Configuration Worksheets”中的数据服务工作表空白的相应位置写下对这些问题的回答。

准备节点和磁盘

本节包含准备节点和磁盘所需的过程。

Procedure如何准备节点

使用此过程来准备 Oracle 软件的安装和配置。


注意 – 注意 –

请在所有节点上执行本节中的所有步骤。如果没有在所有节点上执行所有步骤,Oracle 安装将不完整。Oracle 安装不完整会导致 Sun Cluster HA for Oracle 在启动过程中失败。



注 –

执行此过程之前,请参考 Oracle 文档。


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

  1. 在所有群集成员中成为超级用户。

  2. 为 Sun Cluster HA for Oracle 配置群集文件系统。


    注意 – 注意 –

    非全局区域不支持来自 Sun Cluster 设备组的原始设备。


    如果原始设备包含数据库,配置用于原始设备访问的全局设备。有关如何配置全局设备的信息,请参见《Sun Cluster 软件安装指南(适用于 Solaris OS)》

    如果使用 Solaris Volume Manager 软件,请配置 Oracle 软件以使用已镜像元设备或原始镜像元设备的 UNIX 文件系统 (UFS) 日志功能。有关如何配置原始镜像的元设备的更多信息,请参见 Solaris Volume Manager 文档。

    如果对 Oracle 文件使用 Solaris Zettabyte 文件系统 (Zettabyte File System, ZFS),则请配置高可用性本地 ZFS。有关更多信息,请参见《Sun Cluster Data Services Planning and Administration Guide for Solaris OS》中的“How to Set Up the HAStoragePlus Resource Type to Make a Local Solaris ZFS Highly Available”

    如果使用 Sun QFS 文件系统,将配置 Sun QFS 文件系统以便与 Oracle 配合使用。有关配置 Sun QFS 文件系统的更多信息,请参见《Sun Cluster Data Service for Oracle RAC Guide for Solaris OS》中的“Using the Sun QFS Shared File System”

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


    注 –

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


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

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


    dba:*:520:root,oracle

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


    dba:*:520:root,oracle,oraasm

    您可以在网络名称服务(例如,NIS 或 NIS+)中创建组条目。如果您以此方式创建组条目,将您的条目添加到本地 /etc/inet/hosts 文件以消除对网络名称服务的依赖性。

  5. 在每个节点或区域中,为 Oracle 用户 ID (oracle) 创建条目。

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


    # useradd -u 120 -g dba -d /Oracle-home oracle
    

    确保 oracle 用户条目在运行 Sun Cluster HA for Oracle 的所有节点或区域中均相同。

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


    # useradd -u 121 -g dba -d /asm-home oraasm
    
  6. 如果使用 Oracle 数据库 10.2.0.3 或更高版本,应在每个 Solaris 区域中执行以下步骤。


    注 –

    必须在创建区域时执行这些步骤。如果未执行这些步骤,将会导致出现错误。要解决该错误,应设置必要的权限,然后运行 ORACLE_HOME /bin/localconfig reset ORACLE_HOME



    # zoneadm -Z zcname halt
    zonecfg -Z zcname info limitpriv
    zoneadm -Z zcname set limitpriv=default,proc_priocntl
    zoneadm -Z zcname info limitpriv
    zoneadm -Z zcname boot
    

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

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


注 –

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


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

    有关如何配置 Solaris Volume Manager 软件的信息,请参见《Sun Cluster 软件安装指南(适用于 Solaris OS)》

  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
      

Procedure如何使用 Veritas Volume Manager(Veritas 卷管理器) 配置 Oracle 数据库访问

通过此过程可使用 Veritas Volume Manager(Veritas 卷管理器) 软件配置 Oracle 数据库。


注 –

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


  1. 配置 VxVM 软件要使用的磁盘设备。

    有关如何配置 Veritas Volume Manager(Veritas 卷管理器) 的信息,请参见《Sun Cluster 软件安装指南(适用于 Solaris OS)》

  2. 如果使用原始设备来包含这些数据库,在当前磁盘组主节点中运行以下命令以更改每个设备的所有者、组和模式。

    如果没有使用原始设备,请勿执行此步骤。

    1. 如果您创建原始设备,对每个原始设备运行以下命令。


      # vxedit -g diskgroup set user=oracle group=dba mode=600 volume
      
      diskgroup

      指定磁盘组的名称

      volume

      指定磁盘组内原始设备的名称

    2. 检验更改是否有效。


      # ls -lL /dev/vx/rdsk/diskgroup/volume
      
    3. 同步设备组与群集,使 VxVM 名称空间在整个群集中保持一致。


      # cldevicegroup sync diskgroup
      

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

通过此过程可使用 ASM 配置 Oracle 数据库访问。您可以在 VxVM 或 SVM 之上使用 ASM。

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

    有关如何配置 ASM 的信息,请参见《Sun Cluster Data Service for Oracle RAC Guide for Solaris OS》中的“Using 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
      

如何安装 ASM 软件

ASM 安装包含安装和创建 ASM 实例以及配置所需的 ASM 磁盘组。ASM 磁盘组是用于存储数据文件的磁盘设备的集合,ASM 实例将其作为整体进行管理。ASM 实例挂载磁盘组以使 ASM 文件可用于数据库实例。

您应该确定要使用的 ASM 实例类型。您可以将 ASM 实例作为单一实例 ASM 使用,也可以将其作为使用 Oracle Clusterware 实例的群集 ASM 使用。有关如何选择相应 ASM 实例的信息,请参见选择适当的 ASM 实例

如果使用群集 ASM,应首先安装 Oracle CRS 软件,然后安装 ASM。如果在 SPARC 上使用群集 ASM,还应在安装 ASM 之前安装 ORCLudlm 软件包。

当您运行 Oracle Universal Installer 时,可以选择配置和安装 ASM 并创建磁盘组。有关安装和配置 ASM 的详细信息,请参见与您所使用的 Oracle 数据库版本对应的 Oracle 文档。

在不同的群集节点中使用 ASM 创建相同磁盘组时,必须一次在一个节点中创建磁盘组,而在另一个群集节点中创建相同的磁盘组之前应卸载该磁盘组。


注 –

应设置和配置文件系统,以供在执行 ASM 安装之前存放 ASM ORACLE_HOME


如何检验 ASM 软件安装

安装 ASM 软件后,您可以通过执行以下步骤,检验是否已安装 ASM 软件以及 ASM 磁盘组是否已挂载到群集节点中。


# sqlplus  "/ as sysdba"
sql>	select * from v$sga;
sql>	select name,state from v$asm_diskgroup;
sql>	exit;
#

注 –

如果使用 Oracle 数据库 11g,应使用 sqlplus "/ as sysasm" 而不是 sqlplus "/ as sysdba"


安装 Oracle 软件

本节包含安装 Oracle 软件所需的过程。

Procedure如何安装 Oracle 软件

  1. 成为群集成员的超级用户。

  2. 如果您计划在群集文件系统中安装 Oracle 软件,启动 Sun Cluster 软件并成为该设备组的所有者。

    如果您计划在其他位置安装 Oracle 软件,请忽略此步骤。

    有关安装位置的更多信息,请参见准备节点和磁盘

  3. 安装 Oracle 软件。

    开始 Oracle 安装之前,确保已配置 Oracle 所需的系统资源。执行此步骤之前,以 oracle 身份登录,从而确保整个目录的拥有权。有关如何安装 Oracle 软件的说明,请参见相应的 Oracle 安装和配置指南。

    • 如果使用 Solaris 9 OS,修改每个节点的 /etc/system 文件,如同在标准 Oracle 安装过程中一样。重新引导每个节点以使更改生效。

    • 如果使用 Solaris 10 OS,可使用 Solaris 资源管理 (Solaris Resource Management, SRM) 确保将内核参数至少设置为 Oracle 所需的最小值。有关设置 Oracle 内核参数的更多信息,请参见如何设置 Oracle 内核参数。为 Oracle 配置系统资源后,您可以启动安装本身。

  4. (可选的)如果使用 Sun Cluster HA for Oracle 与 Oracle 10g R1,请阻止启动 Oracle cssd 守护进程。如果使用 Sun Cluster HA for Oracle 与 Oracle 10g R2,请忽略此步骤。

    从安装 Oracle 软件的节点上的 /etc/inittab 文件中,删除 Oracle cssd 守护进程的条目。要删除此条目,从 /etc/inittab 文件中删除以下行:

    h1:23:respawn:/etc/init.d/init.cssd run >/dev/null 2>&1 > </dev/null

    Sun Cluster HA for Oracle 不需要 Oracle cssd 守护进程。因此,删除此条目不会影响使用 Sun Cluster HA for Oracle 的 Oracle 10g R1 的运行。如果您的 Oracle 安装发生更改以致需要该 Oracle cssd 守护进程,则将此守护进程的条目恢复到 /etc/inittab 文件。


    注意 – 注意 –

    如果使用 Oracle 10g R1Real Application Clusters,不要/etc/inittab 文件中删除 cssd 守护进程的条目。


    如果从 /etc/inittab 文件中删除了 Oracle cssd 守护进程的条目,则阻止显示不必要的错误消息。否则,init(1M) 命令尝试启动 Oracle cssd 守护进程时可能会导致显示这类错误消息。如果 Oracle 二进制文件安装在高可用性本地文件系统或群集文件系统中,则会显示这些错误消息。这些消息会反复显示,直到挂载用于安装 Oracle 二进制文件的文件系统。

    这些错误消息如下:


    INIT: Command is respawning too rapidly. Check for possible errors.
    id:  h1 "/etc/init.d/init.cssd run >/dev/null 2>&1 >/dev/null"

    Waiting for filesystem containing $CRSCTL.

    如果在 x86 平台上使用 Sun Cluster HA for Oracle,还可能显示关于 UNIX 分布式锁管理器 (Oracle UDLM) 不可用的不必要错误消息。

    这些消息在发生以下事件时显示:

    • 在非群集模式下运行节点。在这种情况下,Sun Cluster 控制的文件系统始终不会挂载。

    • 节点正在引导。在这种情况下,系统将反复显示这些消息,直到 Sun Cluster 挂载在其中安装 Oracle 二进制文件的文件系统。

    • Oracle 在原来运行 Oracle 安装的节点或区域中启动或故障转移到此节点或区域。在此配置中,Oracle 二进制文件系统安装在高可用性本地文件系统中。在这种情况下,在运行 Oracle 安装的节点或区域的控制台中显示消息。

Procedure如何设置 Oracle 内核参数

由于 RGM 使用 default 项目运行数据服务,因此 default 项目修改为包含 Oracle 所需的资源。如果要使用特定的 SRM 项目运行 Oracle,必须使用相同的过程创建该项目并配置该项目中的系统资源。指定除 default 之外的项目名称。配置 Oracle 服务器的资源组或资源时,在资源组或资源的对应属性中指定该项目名称。

  1. 显示 default 项目的设置。


    phys-X# prctl -i project default
    
  2. 如果未设置内核参数,或者未将内核参数设置为 Oracle 所要求的最小值(如下表所示),请设置该参数。


    phys-X# projmod -s -K "parameter=(priv,value,deny)" default
    

    Oracle 内核参数 

    要求的最小值 

    process.max-sem-nsems

    256 

    project.max-sem-ids

    100 

    project.max-shm-ids

    100 

    project.max-shm-memory

    4294967295 

    有关这些参数的更多信息,请参见 Oracle10g 安装指南

  3. 检验新设置。


    phys-X# prctl -i project default
    

检验 Oracle 安装和配置

本节包含检验 Oracle 安装和配置所需的过程。

Procedure如何检验 Oracle 安装

由于您尚未安装数据服务,因此本过程不检验您的应用程序是否具有高可用性。

  1. 确认 $ORACLE_HOME/bin/oracle 文件的所有者、组和模式如下:

    • 所有者:oracle

    • 组:dba

    • 模式:-rwsr-s--x


    # ls -l $ORACLE_HOME/bin/oracle
    
  2. 检验 $ORACLE_HOME/bin 目录中是否存在侦听器二进制文件。

接下来的操作

完成本节中的工作后,转至创建 Oracle 数据库

创建 Oracle 数据库

检验 Oracle 安装和配置之后,创建所需的 Oracle 数据库。如果使用的是不带备用数据库的 Oracle,执行过程如何创建主 Oracle 数据库。对于您可能创建和配置的任何附加数据库,此过程并非必要。如果使用 Oracle DataGuard,则创建以下数据库实例:

Procedure如何创建主 Oracle 数据库

  1. 准备数据库配置文件。

    将所有数据库相关文件(数据文件、恢复日志文件和控制文件)放在共享原始全局设备或群集文件系统中。有关安装位置的信息,请参见准备节点和磁盘


    注 –

    如果非全局区域中存在数据库,请勿将数据库相关文件放在共享原始设备中。


    init$ORACLE_SID.oraconfig$ORACLE_SID.ora 文件中,可能需要修改 control_filesbackground_dump_dest 的赋值以指定控制文件和警报文件的位置。


    注 –

    如果使用 Solaris 验证进行数据库登录,将 init$ORACLE_SID.ora 文件中的 remote_os_authent 变量设置为 True


  2. 使用以下列表中的实用程序之一开始创建数据库:

    • Oracle 安装程序

    • Oracle sqlplus(1M) 命令

    • Oracle Database Configuration Assistant

    创建过程中,确保所有数据库相关文件都放在共享全局设备、群集文件系统或高可用性本地文件系统上的相应的位置。

  3. 检验控制文件的文件名与配置文件中的文件名是否匹配。

  4. 创建 v$sysstat 视图。

    运行用于创建 v$sysstat 视图的目录脚本。Sun Cluster HA for Oracle 的故障监视器将使用此视图。

接下来的操作

完成本节中的工作后,转至设置 Oracle 数据库权限

设置 Oracle 数据库权限


注意 – 注意 –

请勿对 Oracle 物理备用数据库执行本节中的步骤。


执行本节中的过程以设置 Oracle 主数据库或 Oracle 逻辑备用数据库的数据库权限。

Procedure如何设置 Oracle 数据库权限

  1. 启用对用于故障监视功能的用户和密码的访问。

    • 要使用 Oracle 验证方法,授予此用户访问 v_$sysstat 视图和 v_$archive_dest 视图的权限。


      # sqlplus  "/ as sysdba"
      
      sql>	create user user identified by passwd;
      sql>	alter user user default tablespace system quota 1m on system;
      sql>	grant select on v_$sysstat to user;
      sql>	grant select on v_$archive_dest to user;
      sql>	grant select on v_$database to user;
      sql>	grant create session to user;
      sql>	grant create table to user;
      
      sql>	exit;
      #

      您可以对所有支持的 Oracle 发行版本使用此方法。

    • 要使用 Solaris 验证方法,执行以下步骤:

      1. 确认 remote_os_authent 参数已设置为 TRUE


        # sqlplus  "/ as sysdba"
        sql> show parameter remote_os_authent
        
        NAME                       TYPE        VALUE
        ---------------------- ----------- ---------------
        remote_os_authent         boolean     TRUE
      2. 确定 os_authent_prefix 参数的设置。


        # sql>  show parameter os_authent_prefix
        
        NAME                       TYPE        VALUE
        ---------------------- ----------- ---------------
        os_authent_prefix         string      ops$
      3. 授予数据库使用 Solaris 验证的权限。


        sql> create user prefix user identified by externally default 
        tablespace system quota 1m on system;
        sql> grant connect, resource to prefix user;
        sql> grant select on v_$sysstat to prefix user;
        sql> grant select on v_$archive_dest to prefix user;
        sql> grant create session to prefix user;
        sql> grant create table to prefix user;
        sql> exit;
        
        #

        这些命令中可替换的项目如下:

        • prefix os_authent_prefix 参数的设置。此参数的默认设置为 ops$

        • user 是您对其启用 Solaris 验证的用户。确保此用户拥有 $ORACLE_HOME 目录下的文件。


        注 –

        不要在 prefixuser 之间键入空格。


  2. 为 Sun Cluster 软件配置 NET8。

    listener.ora 文件必须可从群集中的所有节点或区域进行访问。请将这些文件放在可运行 Oracle 资源的每个节点或区域的群集文件系统下或本地文件系统中。


    注 –

    如果将 listener.ora 文件放在 /var/opt/oracle 目录或 $ORACLE_HOME/network/admin 目录以外的位置,必须在用户环境文件中指定 TNS_ADMIN 变量或同等 Oracle 变量。有关 Oracle 变量的信息,请参见 Oracle 文档。您还必须运行 clresource(1CL) 命令以设置资源扩展参数 User_env,该参数指定用户环境文件。有关格式的详细信息,请参见SUNW.oracle_listener 扩展属性SUNW.oracle_server 扩展属性


    Sun Cluster HA for Oracle 对侦听器名称未加任何限制—该名称可为任何有效的 Oracle 侦听器名称。

    以下代码样例识别 listener.ora 中更新的各行。


    LISTENER =
    	(ADDRESS_LIST =
    			(ADDRESS =
    				(PROTOCOL = TCP) 
    					(HOST = logical-hostname) <- use logical hostname
    				(PORT = 1527)
    			)
    	)
    .
    .
    SID_LIST_LISTENER =
    	.
    			.
    						(SID_NAME = SID) <- Database name, 
    default is ORCL	

    以下代码样例识别 tnsnames.ora 中在客户机上更新的各行。


    service_name =
    	.
    			.
    						(ADDRESS = 
    								(PROTOCOL = TCP)
    								(HOST = logicalhostname)	<- logical hostname
    								(PORT = 1527) <- must match port in LISTENER.ORA
    						)
    				)
    				(CONNECT_DATA =
    						(SID = <SID>)) <- database name, default is ORCL

    以下示例显示如何更新以下 Oracle 实例的 listener.oratnsnames.ora 文件。

    实例 

    逻辑主机 

    侦听器 

    ora8

    hadbms3

    LISTENER-ora8

    ora9

    hadbms4

    LISTENER-ora9

    对应的 listener.ora 条目为以下条目。


    LISTENER-ora9 =
    	(ADDRESS_LIST =
    			(ADDRESS =
    				(PROTOCOL = TCP)
    				(HOST = hadbms4)
    				(PORT = 1530)
    			)
    		)
    SID_LIST_LISTENER-ora9 =
    	(SID_LIST =
    			(SID_DESC =
    				(SID_NAME = ora9)
    			)
    		)
    LISTENER-ora8 =
      (ADDRESS_LIST =
        (ADDRESS= (PROTOCOL=TCP) (HOST=hadbms3)(PORT=1806))
      )
    SID_LIST_LISTENER-ora8 =
      (SID_LIST =
         (SID_DESC =
    			(SID_NAME = ora8)
    		 )	
      )

    对应的 tnsnames.ora 条目为以下条目。


    ora8 =
    (DESCRIPTION =
       (ADDRESS_LIST = 
    			(ADDRESS = (PROTOCOL = TCP) 
    			(HOST = hadbms3) 
    			(PORT = 1806))
       	)    
    	(CONNECT_DATA = (SID = ora8))
    )
    ora9 =
    (DESCRIPTION =
      (ADDRESS_LIST =
            (ADDRESS = 
    				(PROTOCOL = TCP) 
    				(HOST = hadbms4) 
    				(PORT = 1530))
      )
      	(CONNECT_DATA = (SID = ora9))
    )
  3. 检验是否已在所有节点上安装和运行 Sun Cluster 软件。


    # cluster status +
    
接下来的操作

转至安装 Sun Cluster HA for Oracle 软件包以安装 Sun Cluster HA for Oracle 软件包。

安装 Sun Cluster HA for Oracle 软件包

如果在第一次安装 Sun Cluster 过程中没有安装 Sun Cluster HA for Oracle 软件包,则需执行此过程安装该软件包。要安装该软件包,请使用 Sun Java Enterprise System Common Installer。


注 –

您需要在全局群集而不是区域群集中安装 Sun Cluster HA for Oracle 软件包。


Procedure如何安装 Sun Cluster HA for Oracle 软件包

在每个需要安装 Sun Cluster HA for Oracle 软件包的群集节点上执行此过程。

您可以使用命令行界面 (command-line interface, CLI) 或图形用户界面 (graphical user interface, GUI) 运行 Sun Java Enterprise System Common Installer。CLI 与 GUI 中指令的内容和顺序相似。


注 –

即使计划配置该数据服务在非全局区域中运行,也需要在全局区域中的此项数据服务安装该软件包。该软件包将传播至任何现有的非全局区域和任何在安装该软件包之后创建的非全局区域。


开始之前

请确保您已获得 Sun JavaTM Availability Suite DVD-ROM。

如果希望使用 GUI 运行 Sun Java Enterprise System Common Installer,请确保设置您的 DISPLAY 环境变量。

  1. 以超级用户权限登录需要安装该数据服务软件包的群集节点。

  2. 将 Sun Java Availability Suite DVD-ROM 放入 DVD-ROM 驱动器。

    如果 Volume Management 守护进程 vold(1M) 正在运行且配置为管理 DVD-ROM 驱动器,则该守护进程会自动将 DVD-ROM 装载到 /cdrom 目录。

  3. 更改到 DVD-ROM 的 Sun Java Enterprise System Common Installer 目录。

    • 如果在 SPARC® 平台上安装该数据服务软件包,则键入以下命令:


      # cd /cdrom/cdrom0/Solaris_sparc
      
    • 如果在 x86 平台上安装该数据服务软件包,则键入以下命令:


      # cd /cdrom/cdrom0/Solaris_x86
      
  4. 启动 Sun Java Enterprise System Common Installer。


    # ./installer
    
  5. 出现提示时,请接受许可协议。

    如果已安装任何 Sun Java Enterprise System 组件,则会提示您选择升级该组件或安装新软件。

  6. 从 Availability Services 下的 Sun Cluster 代理列表中,选择用于 Oracle 的数据服务。

  7. 如果需要非英语语言支持,请选择该选项安装多语言软件包。

    英语语言支持为必选安装。

  8. 当提示立即配置数据服务或稍后配置数据服务时,请选择“稍后配置”。

    选择“稍后配置”可在安装后进行配置。

  9. 按照屏幕指示在节点上安装数据服务软件包。

    Sun Java Enterprise System Common Installer 会显示安装状态。安装完成时,该向导会显示安装摘要和安装日志。

  10. (仅 GUI)如果不希望注册产品并接收产品更新,请取消选择“产品注册”选项。

    CLI 不提供“产品注册”选项。如果使用 CLI 运行 Sun Java Enterprise System Common Installer,请忽略此步骤。

  11. 退出 Sun Java Enterprise System Common Installer。

  12. 从 DVD-ROM 驱动器卸载 Sun Java Availability Suite DVD-ROM。

    1. 为了确保 DVD-ROM 未在使用,请转到在 DVD-ROM 上的目录。

    2. 弹出 DVD-ROM。


      # eject cdrom
      
接下来的操作

请参阅注册和配置 Sun Cluster HA for Oracle注册 Sun Cluster HA for Oracle 并为数据服务配置群集。

注册和配置 Sun Cluster HA for Oracle

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

Sun Cluster 提供以下用于注册和配置 Sun Cluster HA for Oracle 的工具:

clsetup 实用程序和 Sun Cluster Manager 分别提供用于配置 Sun Cluster HA for Oracle 的向导。这些向导可降低由于命令语法错误或疏忽而导致配置错误的可能性。这些向导还可确保创建需要的所有资源并设置资源之间需要的所有依赖性。

设置 Sun Cluster HA for Oracle 扩展属性

使用Sun Cluster HA for Oracle 扩展属性中的扩展属性创建您的资源。要设置资源的扩展属性,可在用于创建或修改该资源的 clresource(1CL) 命令中包括选项 -p property=value。如果您已创建资源,使用 《Sun Cluster Data Services Planning and Administration Guide for Solaris OS》中的第 2  章 “Administering Data Service Resources”以配置扩展属性。您可以动态更新某些扩展属性。不过,其他属性只能在创建或禁用资源时更新。可调的条目指示您何时可以更新每个属性。有关所有 Sun Cluster 属性的详细信息,请参见《Sun Cluster Data Services Planning and Administration Guide for Solaris OS》中的附录 B “Standard Properties”

SUNW.oracle_server 扩展属性介绍可为 Oracle 服务器设置的扩展属性。对于 Oracle 服务器,仅需要设置以下扩展属性:

Procedure如何通过使用 clsetup 实用程序注册和配置 Sun Cluster HA for Oracle

此过程提供了 Sun Cluster 维护命令的完整形式。此外,大多数命令还有简短格式。除了命令名称的形式以外,简写形式和完整形式的命令是相同的。有关命令及其简称的列表,参见《Sun Cluster 3.1 - 3.2 Hardware Administration Manual for Solaris OS》中的附录 A “Sun Cluster Geographic Edition Object-Oriented Commands”


注 –

clsetup 实用程序不支持使用 ZFS 的 Sun Cluster HA for Oracle 配置。


开始之前

确保满足以下先决条件:

确保拥有以下信息:

  1. 成为任何群集节点的超级用户。

  2. 启动 clsetup 实用程序。


    # clsetup
    

    屏幕上将显示 clsetup 主菜单。

  3. 键入与数据服务选项对应的编号,然后按 Return 键。

    此时会显示数据服务菜单。

  4. 键入与 configuringSun Cluster HA for Oracle 选项对应的编号,然后按 Return 键。

    clsetup 实用程序会显示执行此任务的先决条件列表。

  5. 检验是否满足先决条件,然后按 Return 键。

    clsetup 实用程序会显示群集节点的列表。

  6. 选择需要运行 Oracle 的节点或区域。

    • 要接受以任意顺序列出的所有节点或区域的默认选择,按 Return 键。

    • 要选择列出的节点或区域的子集,键入以逗号分隔或以空格分隔的编号列表(与节点或区域对应)。然后按 Return 键。

      确保节点或区域以其在资源组(Oracle 资源放入其中)节点列表中显示的顺序列出。列表中的第一个节点或区域是此资源组的主节点或区域。

    • 要以特定顺序选择所有节点或区域,键入以逗号分隔或以空格分隔的已排序编号列表(与节点或区域对应),然后按 Return 键。

      确保节点或区域以其在资源组(Oracle 资源放入其中)节点列表中显示的顺序列出。列表中的第一个节点或区域是此资源组的主节点或区域。

  7. 要确认节点或区域选择,键入 d,然后按 Return 键。

    clsetup 实用程序会显示要配置的 Oracle 组件的类型。

  8. 键入要配置的 Oracle 组件的编号,然后按 Return 键。

    clsetup 实用程序会列出 Oracle 主目录。

  9. 指定您的 Oracle 软件安装的 Oracle 主目录。

    • 如果已列出目录,按如下所述选择目录:

      1. 键入与要选择的目录对应的编号。

        clsetup 实用程序会显示群集中配置的 Oracle 系统标识符列表。此实用程序还会提示您指定 Oracle 安装的系统标识符。

    • 如果没有列出该目录,则明确指定该目录。

      1. 键入 e,然后按 Return 键。

        clsetup 实用程序会提示您输入 Oracle 主目录。

      2. 键入 Oracle 主目录的完整路径,然后按 Return 键。

        clsetup 实用程序会显示群集中配置的 Oracle 系统标识符列表。此实用程序还会提示您指定 Oracle 安装的系统标识符。

  10. 指定您要配置的 Oracle 数据库的 Oracle SID。

    • 如果已列出 SID,按如下所述选择 SID:

      1. 键入与要选择的 SID 对应的编号。

        clsetup 实用程序会显示该实用程序将创建的 Sun Cluster 资源的属性。

    • 如果没有列出该 SID,则明确指定该 SID。

      1. 键入 e,然后按 Return 键。

        clsetup 实用程序会提示您输入 SID。

      2. 键入 SID,然后按 Return 键。

        clsetup 实用程序会显示该实用程序将创建的 Sun Cluster 资源的属性。

    clsetup 实用程序会显示该实用程序将创建的 Sun Cluster 资源的属性。

  11. 如果任何 Sun Cluster 资源属性需要其他名称,则按如下方式更改各名称。

    1. 键入与您要更改的名称对应的编号,然后按 Return 键。

      clsetup 实用程序会显示一个屏幕,您可在此处指定新名称。

    2. 在“新值”提示下键入新名称,然后按 Return 键。

    clsetup 实用程序会返回到该实用程序将创建的 Sun Cluster 资源的属性列表。

  12. 要确认 Sun Cluster 资源属性选择,键入 d,然后按 Return 键。

    clsetup 实用程序会显示现有存储资源的列表。如果没有可用存储资源,clsetup 实用程序会显示用于存储数据的共享存储类型列表。

  13. 键入与要用于存储数据的共享存储类型对应的编号,然后按 Return 键。

    clsetup 实用程序会显示群集中配置的文件系统挂载点。

  14. 按如下所示选择文件系统挂载点。

    • 要选择以任意顺序列出的所有文件系统挂载点的默认选择,键入 a。然后按 Return 键。

    • 要选择列出的文件系统挂载点的子集,键入以逗号分隔或以空格分隔的编号列表(与文件系统挂载点对应)。然后按 Return 键。

    clsetup 实用程序会显示群集中配置的全局磁盘集和设备组。

  15. 按如下所述选择设备组。

    • 要接受以任意顺序列出的所有设备组的默认选择,键入 a,然后按 Return 键。

    • 要选择列出的设备组的子集,键入以逗号分隔或以空格分隔的编号列表(与设备组对应),然后按 Return 键。

    clsetup 实用程序会返回到高可用性存储资源列表。

  16. 键入以逗号分隔或以空格分隔的编号列表(与数据服务所需的存储资源对应),然后按 Return 键。

  17. 要确认 Sun Cluster 存储资源选择,键入 d,然后按 Return 键。

    clsetup 实用程序会显示群集中所有现有的逻辑主机名资源。如果没有可用的逻辑主机名资源,clsetup 实用程序会提示输入让资源具有高可用性的逻辑主机名。

  18. 指定逻辑主机名,然后按 Return 键。

    clsetup 实用程序会返回到可用的逻辑主机名资源列表。

  19. 键入以逗号分隔或以空格分隔的编号列表(与数据服务所需的逻辑主机名资源对应),然后按 Return 键。

  20. 要确认 Sun Cluster 逻辑主机名资源选择,键入 d,然后按 Return 键。

    clsetup 实用程序会显示该实用程序将创建的 Sun Cluster 对象的名称。

  21. 如果任何 Sun Cluster 对象需要其他名称,则按如下方式更改各名称。

    • 键入与您要更改的名称对应的编号,然后按 Return 键。

      clsetup 实用程序会显示一个屏幕,您可在此处指定新名称。

    • 在“新值”提示下键入新名称,然后按 Return 键。

      clsetup 实用程序会返回到该实用程序将创建的 Sun Cluster 对象的名称列表。

  22. 要确认 Sun Cluster 对象名称选择,键入 d,然后按 Return 键。

  23. 要创建配置,键入 c,然后按 Return 键。

    clsetup 实用程序会显示进度消息,指示该实用程序正在运行命令以创建该配置。配置完成时,clsetup 实用程序会显示该实用程序为创建配置而运行的命令。

  24. 按 Return 键继续。

  25. (可选的)键入 q 并反复按 Return 键,直到退出 clsetup 实用程序。

    如果希望,可保持运行 clsetup 实用程序的同时执行所需的其他任务,然后再次使用该实用程序。

Procedure如何通过使用 Sun Cluster 维护命令而不使用 ASM 来注册和配置 Sun Cluster HA for Oracle

此过程提供了 Sun Cluster 维护命令的完整形式。此外,大多数命令还有简短格式。除了命令名称的形式以外,简写形式和完整形式的命令是相同的。有关命令及其简称的列表,参见《Sun Cluster 3.1 - 3.2 Hardware Administration Manual for Solaris OS》中的附录 A “Sun Cluster Geographic Edition Object-Oriented Commands”

开始之前

确保满足以下先决条件:

确保拥有以下信息:

  1. 在群集成员上成为超级用户或担任可提供 solaris.cluster.modify solaris.cluster.admin RBAC 授权的角色。

  2. 注册数据服务的资源类型。

    对于 Sun Cluster HA for Oracle,可注册两种资源类型(SUNW.oracle_serverSUNW.oracle_listener),如下所示。


    # clresourcetype register SUNW.oracle_server
    # clresourcetype register SUNW.oracle_listener
    
  3. 创建故障转移资源组以容纳网络和应用程序资源。

    如果您使用 Solaris ZFS 则不需要此步骤,因为在配置高可用性本地 ZFS 时已创建资源组。本过程中其他步骤创建的资源将添加到此资源组。

    或者,您可以选择节点或区域集,以供在其上使用 -n 选项运行数据服务,如下所示。


    # clresourcegroup create [-n node-zone-list] resource-group
    
    -n node-zone-list

    指定可控制此资源组的、以逗号分隔的已排序区域列表。列表中各条目的格式为 node:zone。在此格式中,node 指定节点的名称或 ID,而 zone 指定非全局 Solaris 区域的名称。要指定全局区域,或指定不含非全局区域的节点,则仅指定 node 即可。

    此列表中的顺序会确定故障转移期间将节点或区域视为主节点的顺序。此列表是可选的。如果您忽略此列表,则各群集节点的全局区域可控制该资源组。

    resource-group

    指定资源组的名称。您可以随意指定此名称,但该名称对群集内的资源组必须唯一。

  4. 检验您所使用的所有网络资源是否均已添加到您的名称服务数据库。

    应在 Sun Cluster 安装过程中执行此验证。


    注 –

    确保所有网络资源均在服务器和客户端的 /etc/inet/hosts 文件中显示,以避免由于查找名称服务而导致任何故障。


  5. 将逻辑主机名资源添加到故障转移资源组。


    # clreslogicalhostname create -g resource-group [-h logicalhostname] \
    logicalhotname-rs
    
    logicalhostname

    指定逻辑主机名。此逻辑主机名必须出现在您的名称服务数据库中。如果 logicalhostnamelogicalhostname-rs 完全相同,则 logicalhostname 是可选的。

    logicalhostname-rs

    指定分配给您要创建的逻辑主机名资源的名称。

  6. SUNW.HAStoragePlus 资源类型注册到群集。


    # clresourcetype register SUNW.HAStoragePlus
    
  7. SUNW.HAStoragePlus 类型的资源添加到故障转移资源组。


    注意 – 注意 –

    非全局区域不支持来自 Sun Cluster 设备组的原始设备。



    注 –

    如果要在非全局区域中支持 SUNW.HAStoragePlus 资源类型,则该资源类型必须为版本 4。



    注 –

    如果对 Oracle 文件使用 Solaris ZFS,请忽略此步骤。SUNW.HAStoragePlus 资源在配置高可用性本地 ZFS 时已创建。有关更多信息,请参见如何准备节点



    # clresource create -g resource-group -t SUNW.HAStoragePlus \
    -p GlobalDevicePaths=device-path \
    -p FilesystemMountPoints=mount-point-list \
    -p AffinityOn=TRUE hastp-rs
    

    必须设置 GlobalDevicePaths 扩展属性或 FilesystemMountPoints 扩展属性:

    • 如果数据库位于原始设备中,将 GlobalDevicePaths 扩展属性设置为全局设备路径。

    • 如果数据库位于群集文件系统中,指定群集文件系统和本地文件系统的挂载点。


    注 –

    AffinityOn 必须设置为 TRUE,而本地文件系统必须驻留在全局磁盘组中才能进行故障转移。


    资源在启用状态下创建。

  8. 使群集节点或区域中处于受管理状态的故障转移资源组联机。


    # clresourcegroup online -M resource-group
    
    -M

    将要联机的资源组置于受管理状态。

  9. 在故障转移资源组中创建 Oracle 应用程序资源。

    • Oracle 服务器资源:


      # clresource create  -g resourcegroup \
      -t SUNW.oracle_server \ 
      -p Connect_string=user/passwd \
      -p ORACLE_SID=instance \
      -p ORACLE_HOME=Oracle-home \
      -p Alert_log_file=path-to-log \
      -p Restart_type=entity-to-restart \
      [-p Dataguard_role=role] \
      [-p Standby_mode=mode] \-p resource_dependencies=storageplus-resource \
       resource
      
    • Oracle 侦听器资源:


      # clresource create -g resource-group \
      -t SUNW.oracle_listener \ 
      -p LISTENER_NAME=listener \
      -p ORACLE_HOME=Oracle-home \
      -p resource_dependencies=storageplus-resource resource
      
    -g resource-group

    指定要在其中放入资源的资源组名称。

    -t SUNW.oracle_server/listener

    指定要添加的资源类型。

    -p Alert_log_file =path-to-log

    设置服务器消息日志在 $ORACLE_HOME 下的路径。

    -p Connect_string =user/passwd

    指定故障监视器用于连接数据库的用户和密码。这些设置必须与您在如何设置 Oracle 数据库权限中设置的权限一致。如果您使用 Solaris 授权,键入斜杠 (/) 而非用户名和密码。

    -p ORACLE_SID= instance

    设置 Oracle 系统标识符。

    -p LISTENER_NAME= listener

    设置 Oracle 侦听器实例的名称。此名称必须与 listener.ora 中对应的条目匹配。

    -p ORACLE_HOME= Oracle-home

    设置 Oracle 主目录的路径。

    -p Restart_type= entity-to-restart

    指定在重新启动对故障的响应时,服务器故障监视器重新启动的实体。按如下所述设置 entity-to-restart

    • 要指定仅重新启动此资源,将 entity-to-restart 设置为 RESOURCE_RESTART。默认情况下,仅重新启动此资源。

    • 要指定重新启动包含此资源的资源组中的所有资源,将 entity-to-restart 设置为 RESOURCE_GROUP_RESTART

      如果将 entity-to-restart 设置为 RESOURCE_GROUP_RESTART,该资源组中的所有其他资源(例如 Apache 或 DNS)都将重新启动,即使这些资源没有发生故障。因此,仅在该资源组中包括您需要在重新启动 Oracle 服务器资源时重新启动的资源。

    -p Dataguard_role= role

    指定数据库实例的角色。按如下所示更改 role

    • 要为尚未配置备用实例的主数据库实例创建资源,将 role 更改为 NONE。此值为默认值。

    • 要为已配置备用数据库实例的主数据库实例创建资源,将 role 更改为 PRIMARY

    • 要为备用数据库实例创建资源,将 role 更改为 STANDBY

    -p Standby_mode= mode

    指定备用数据库实例的模式。如果您将 Dataguard_role 更改为 NONEPRIMARY,则 Standby_mode 的值将被忽略。

    • 要指定逻辑备用数据库,将 mode 更改为 LOGICAL。此值为默认值。

    • 要指定物理备用数据库,将 mode 更改为 PHYSICAL

    resource

    指定要创建的资源的名称。


    注 –

    或者,您可以设置属于该 Oracle 数据服务的附加扩展属性以覆盖其默认值。有关扩展属性的列表,请参见设置 Sun Cluster HA for Oracle 扩展属性


    资源在启用状态下创建。


示例 1 注册 Sun Cluster HA for Oracle 以在全局区域中运行

以下示例显示如何在双节点群集中注册 Sun Cluster HA for Oracle。


Cluster Information
Node names: phys-schost-1, phys-schost-2
Logical Hostname: schost-1
Resource group: resource-group-1 (failover resource group)
HAStoragePlus Resource: hastp-rs
Oracle Resources: oracle-server-1, oracle-listener-1
Oracle Instances: ora-lsnr (listener), ora-srvr (server)
 
(Create the failover resource group to contain all of the resources.)
# clresourcegroup create resource-group-1
 
(Add the logical hostname resource to the resource group.)
# clreslogicalhostname create -g resource-group-1 schost-1 
 
(Register the SUNW.HAStoragePlus resource type.)
# clresourcetype register SUNW.HAStoragePlus

(Add a resource of type SUNW.HAStoragePlus to the resource group.)
# clresource create -g resource-group-1 -t SUNW.HAStoragePlus \
-p FileSystemMountPoints=/global/oracle,/global/ora-data/logs,local/ora-data \
-p AffinityOn=TRUE hastp-rs
(Bring the resource group online in a managed state
# clresourcegroup online -M resource-group-1

(Register the Oracle resource types.)
# clresourcetype register SUNW.oracle_server
# clresourcetype register SUNW.oracle_listener
 
(Add the Oracle application resources to the resource group.)
# clresource create -g resource-group-1 \
-t SUNW.oracle_server -p ORACLE_HOME=/global/oracle \
-p Alert_log_file=/global/oracle/message-log \
-p ORACLE_SID=ora-srvr -p Connect_string=scott/tiger \
-p Dataguard_role=STANDBY -p Standby_mode=PHYSICAL oracle-server-1
 
# clresource create -g resource-group-1 \
-t SUNW.oracle_listener -p ORACLE_HOME=/global/oracle \
-p LISTENER_NAME=ora-lsnr oracle-listener-1


示例 2 注册 Sun Cluster HA for Oracle 以在非全局区域中运行

以下示例显示如何在双节点群集中注册 Sun Cluster HA for Oracle。


Cluster Information
Node names: phys-schost-1, phys-schost-2
Non-global zone names: sc1zone1, sc2zone1
Logical Hostname: schost-1
Resource group: resource-group-1 (failover resource group)
HAStoragePlus Resource: hastp-rs
Oracle Resources: oracle-server-1, oracle-listener-1
Oracle Instances: ora-lsnr (listener), ora-srvr (server)
 
(Create the failover resource group to contain all of the resources.)
# clresourcegroup create phys-schost-1:sc1zone1,phys-schost-2:sc2zone1 \
resource-group-1
 
(Add the logical hostname resource to the resource group.)
# clreslogicalhostname create -g resource-group-1 schost-1 
 
(Register the SUNW.HAStoragePlus resource type.)
# clresourcetype register SUNW.HAStoragePlus

(Add a resource of type SUNW.HAStoragePlus to the resource group.)
# clresource create -g resource-group-1 -t SUNW.HAStoragePlus \
-p FileSystemMountPoints=/global/oracle,/global/ora-data/logs,local/ora-data \
-p AffinityOn=TRUE hastp-rs

(Bring the resource group online in a managed state
# clresourcegroup online -M resource-group-1

(Register the Oracle resource types.)
# clresourcetype register SUNW.oracle_server
# clresourcetype register SUNW.oracle_listener
 
(Add the Oracle application resources to the resource group.)
# clresource create -g resource-group-1 \
-t SUNW.oracle_server -p ORACLE_HOME=/global/oracle \
-p Alert_log_file=/global/oracle/message-log \
-p ORACLE_SID=ora-srvr -p Connect_string=scott/tiger \
-p Dataguard_role=STANDBY -p Standby_mode=PHYSICAL oracle-server-1
 
# clresource create -g resource-group-1 \
-t SUNW.oracle_listener -p ORACLE_HOME=/global/oracle \
-p LISTENER_NAME=ora-lsnr oracle-listener-1


示例 3 注册 Sun Cluster HA for Oracle 以在区域群集中运行

以下示例显示如何在区域群集中注册 Sun Cluster HA for Oracle。


Cluster Information
Node names: phys-schost-1, phys-schost-2
zone cluster names: zonecluster1, zonecluster2
Logical Hostname: zchost-1
Resource group: resource-group-1 (failover resource group)
HAStoragePlus Resource: hastp-rs
Oracle Resources: oracle-server-1, oracle-listener-1
Oracle Instances: ora-lsnr (listener), ora-srvr (server)
 
(Create the failover resource group to contain all of the resources.)
# clresourcegroup create -Z zonecluster1 resource-group-1
 
(Add the logical hostname resource to the resource group.)
# clreslogicalhostname create -Z zonecluster1 -g resource-group-1 zchost-1 
 
(Register the SUNW.HAStoragePlus resource type.)
# clresourcetype register -Z zonecluster1 SUNW.HAStoragePlus

(Add a resource of type SUNW.HAStoragePlus to the resource group.)
# clresource create -Z zonecluster1 -g resource-group-1 -t SUNW.HAStoragePlus \
-p FileSystemMountPoints=/global/oracle,/global/ora-data/logs,local/ora-data \
-p AffinityOn=TRUE hastp-rs

(Bring the resource group online in a managed state
# clresourcegroup online -Z zonecluster1 -M resource-group-1

(Register the Oracle resource types.)
# clresourcetype register -Z zonecluster1 SUNW.oracle_server
# clresourcetype register -Z zonecluster1 SUNW.oracle_listener
 
(Add the Oracle application resources to the resource group.)
# clresource create -Z zonecluster1 -g resource-group-1 \
-t SUNW.oracle_server -p ORACLE_HOME=/global/oracle \
-p Alert_log_file=/global/oracle/message-log \
-p ORACLE_SID=ora-srvr -p Connect_string=scott/tiger \
-p Dataguard_role=STANDBY -p Standby_mode=PHYSICAL oracle-server-1
 
# clresource create -Z zonecluster1 -g resource-group-1 \
-t SUNW.oracle_listener -p ORACLE_HOME=/global/oracle \
-p LISTENER_NAME=ora-lsnr oracle-listener-1

Procedure如何使用 Sun Cluster 维护命令注册和配置使用单一实例 ASM 的 Sun Cluster HA for Oracle

此过程说明使用 Sun Cluster 维护命令注册和配置单一实例 ASM 的步骤,其中 ASM 的 Oracle_Home 位于本地文件系统中。


注 –

可在不同的资源组中配置 ASM 磁盘组和 Oracle 数据库。如果在不同的资源组中配置 ASM 磁盘组和 Oracle 数据库,应将 ASM 磁盘组资源组和 Oracle 数据库资源组之间设置为正向强关联 (+++)。


  1. 在群集成员上成为超级用户或担任可提供 solaris.cluster.modify solaris.cluster.admin RBAC 授权的角色。

  2. 注册数据服务的 ASM 资源类型。


    # clresourcetype register SUNW.scalable_asm_instance
    # clresourcetype register SUNW.asm_diskgroup
    
  3. 为 ASM 实例创建可伸缩资源组 asm-inst-rg


    # clresourcegroup create -S asm-inst-rg
    
    -S asm-inst-rg

    指定 ASM 实例的可伸缩资源组的名称。

  4. 将逻辑主机名资源添加到 asm-dg-rg 资源组。


    # clreslogicalhostname create -g asm-dg-rg [-h logicalhostname] \
    logicalhotname-rs
    
    -h logicalhostname

    指定逻辑主机名。此逻辑主机名必须出现在您的名称服务数据库中。如果 logicalhostnamelogicalhostname-rs 完全相同,则 logicalhostname 是可选的。

    logicalhostname-rs

    指定分配给您要创建的逻辑主机名资源的名称。

  5. SUNW.scalable_asm_instance 类型的资源添加到 asm-inst-rg 资源组。


    # clresource create -g asm-inst-rg -t SUNW.scalable_asm_instance
    -p ORACLE_HOME=oracle-home \
    -d asm-inst-rs
    
    -g asm-inst-rg

    指定 ASM 实例的资源组的名称。

    -p ORACLE_HOME= oracle-home

    设置 Oracle 主目录的路径。

    -d asm-inst-rs

    指定要创建的 ASM 实例资源的名称。

  6. 使群集节点中处于受管理状态的可伸缩资源组联机。


    # clresourcegroup online -eM asm-inst-rg
    
  7. 创建 ASM 磁盘资源组 asm-dg–rg


    # clresourcegroup create asm-dg-rg
    
  8. 通过资源组 asm-dg-rg 在 ASM 磁盘组中设置正向强关联。


    # clresourcegroup set -p rg_affinities=++asm-inst-rg asm-dg-rg
    
  9. SUNW.asm_diskgroup 类型的资源添加到 asm-dg-rg 资源组。


    # clresource create -g asm-dg-rg -t SUNW.asm_diskgroup -p asm_diskgroups=dg \
    -p resource_dependencies_offline_restart=asm-inst-rs -d asm-dg-rs
    
  10. 使处于受管理状态的 ASM 磁盘资源组联机。


    # clresource online -eM asm-dg-rg
    
  11. 通过发出状态命令来检验 Oracle ASM 安装。


    # clresource status +
    
  12. 注册 Sun Cluster HA for Oracle 数据服务的资源类型。

    对于 Sun Cluster HA for Oracle,可注册资源类型(SUNW.oracle_serverSUNW.o a le_listener)如下所示。


    # clresourcetype register SUNW.oracle_server
    # clresourcetype register SUNW.oracle_listener
    
  13. 在故障转移资源组中创建 Oracle 应用程序资源。

    • Oracle 服务器资源:


      # clresource create -g asm-dg-rg \
      -t SUNW.oracle_server \ 
      -p Connect_string=user/passwd \
      -p ORACLE_SID=instance \
      -p ORACLE_HOME=Oracle-home \
      -p Alert_log_file=path-to-log \
      -p Restart_type=entity-to-restart \
      -p Resource_dependencies_offline_restart=asm-dg-rs \
      -d  ora-db-rs
      
    • Oracle 侦听器资源:


      # clresource create -g asm-dg-rg \
      -t SUNW.oracle_listener \ 
      -p LISTENER_NAME=listener \
      -p ORACLE_HOME=Oracle-home \
      -p resource_dependencies_offline_restart=asm-dg-rs logicalhostname-rs \
      -d ora-lsr-rs
      
    -g asm-dg-rg

    指定要在其中放入资源的 ASM 磁盘资源组名称。

    -t SUNW.oracle_server/listener

    指定要添加的资源类型。

    -p Alert_log_file =path-to-log

    设置服务器消息日志在 $ORACLE_HOME 下的路径。

    -p Connect_string =user/passwd

    指定故障监视器用于连接数据库的用户和密码。这些设置必须与您在如何设置 Oracle 数据库权限中设置的权限一致。如果您使用 Solaris 授权,键入斜杠 (/) 而非用户名和密码。

    -p ORACLE_SID= instance

    设置 Oracle 系统标识符。

    -p LISTENER_NAME= listener

    设置 Oracle 侦听器实例的名称。此名称必须与 listener.ora 中对应的条目匹配。

    -p ORACLE_HOME= Oracle-home

    设置 Oracle 主目录的路径。


    注 –

    或者,您可以设置属于该 Oracle 数据服务的附加扩展属性以覆盖其默认值。有关扩展属性的列表,请参见设置 Sun Cluster HA for Oracle 扩展属性


  14. 使 Oracle 服务器资源联机。


    # clresource enable ora-db-rs 
    
  15. 使 Oracle 侦听器资源联机。


    # clresource enable ora-lsr-rs 
    

Procedure如何使用 Sun Cluster 维护命令注册和配置使用群集 ASM 实例的 Sun Cluster HA for Oracle

本过程说明使用 Sun Cluster 维护命令注册和配置使用群集 ASM 实例的 Sun Cluster HA for Oracle 的步骤。


注 –

执行本过程中的步骤之前,应先安装 Oracle CRS 软件。


  1. 在群集成员上成为超级用户或担任可提供 solaris.cluster.modify solaris.cluster.admin RBAC 授权的角色。


    注 –

    您也可以使用 clsetup 实用程序执行本过程中的步骤 1 至 6。


  2. 注册 Oracle RAC 框架和 CRS 框架的资源类型。


    # clresourcetype register SUNW.rac_framework
    # clresourcetype register SUNW.crs_framework
    
  3. 创建可伸缩的资源组 rac-fmwk-rg


    # clresourcegroup create -S rac-fmwk-rg
    
  4. SUNW.rac_framework 类型的资源添加到 rac-fmwk-rg 资源组。


    # clresource create -g rac-fmwk-rg -t SUNW.rac_framework rac-fmwk-rs
    
  5. SUNW.crs_framework 类型的资源添加到 rac-fmwk-rg 资源组。


    # clresource create -g rac-fmwk-rg -t SUNW.crs_framework \
    -p resource_dependencies=rac-fmwk-rs \
    -d crs-fmwk-rs
    
  6. 创建用于 Oracle 数据库的故障转移资源组 ora-db-rg


    # clresourcegroup create ora-db-rg
    
  7. SPARC:如果使用 SPARC,则执行以下步骤。否则,请转至步骤 8


    注 –

    只有在执行 ASM 软件安装之前已安装 ORCLudlm 软件包的情况下,才能执行此步骤。


    1. 注册 Oracle UDLM 的资源类型。


      # clresourcetype register SUNW.rac_udlm
      
    2. SUNW.rac_udlm 类型的资源添加到 rac-fmwk-rg 资源组。


      # clresource create -g rac-fmwk-rg -t SUNW.rac_udlm \
      -p resource_dependencies=rac-fmwk-rs rac-udlm-rs
      
  8. 为您所使用文件系统注册相应的资源类型,并创建资源组。


    注 –

    您应该确定 Oracle_Home 要使用的文件系统,并在执行此步骤之前设置文件系统。有关如何设置文件系统的信息,请参见准备节点和磁盘


    如果使用 QFS 共享文件系统,则执行以下步骤以注册 QFS 共享文件系统资源类型并创建资源组。否则,应使用 SUNW.HAStoragePlus 资源类型。

    • 如果使用 QFS 共享文件系统,则执行以下步骤以注册 QFS 共享文件系统资源类型并创建资源组。否则,应使用 SUNW.HAStoragePlus 资源类型。

      1. 注册 QFS 共享文件系统的资源类型。


        # clresourcetype register SUNW.qfs
        
      2. 创建资源组 qfs-rg


        # clresourcegroup create qfs-rg
        
      3. SUNW.qfs 类型的资源添加到 qfs-rg 资源组。


        # clresource create -g qfs-rg -t SUNW.qfs -p QFSFileSystem=qfs-mp qfs-rs
        
        -g qfs-rg

        指定资源组的名称。

        -t SUNW.qfs

        指定要添加的资源类型。

        -p QFSFileSystem= qfs-mp

        指定 QFS 共享文件系统挂载点。

        qfs-rs

        指定要创建的 QFS 共享文件系统资源的名称。

      4. 使群集节点中处于受管理状态的 qfs-rg 资源组联机。


        # clresourcegroup online -eM qfs-rg
        
      5. 注册 SUNW.ScalMountPoint 的资源类型。


        # clresourcetype register SUNW.ScalMountPoint
        
      6. 创建可伸缩的资源组 scal-mp-rg


        # clresourcegroup create -S scal-mp-rg
        
      7. SUNW.ScalMountPoint 类型的资源添加到 scal-mp-rg 资源组。


        # clresource create -g scal-mp-rg -t SUNW.ScalMountPoint \
        -p mountpointdir=mount-point \
        -p filesystemtype=s-qfs \
        -p targetfilesystem=qfs-name \
        -p resource_dependencies=qfs-rs \
        -d scal-mp-rs
        
        -g scal-mp-rg

        指定可伸缩资源组的名称。

        -t SUNW.ScalMountPoint

        指定要添加的资源类型。

        -p mountpointdir= mount-point

        指定文件系统挂载的目录。

        -p filesystemtype =s-qfs

        指定您使用的文件系统类型。

        -p targetfilesystem =qfs-name

        指定此挂载点上挂载的文件系统名称。

        -d scal-mp-rs

        指定要创建的可伸缩挂载点资源的名称。

      8. 使群集节点中处于受管理状态的 scal-mp-rg 资源组联机。


        # clresourcegroup online -eM scal-mp-rg
        
    • 如果使用的文件系统并非 QFS 共享文件系统,则执行以下步骤以注册 SUNW.HAStoragePlus 资源类型并创建资源组。

      1. 注册 SUNW.HAStoragePlus 资源类型。


        # clresourcetype register SUNW.HAStoragePlus
        
      2. SUNW.HAStorgePlus 类型的资源添加到 ora-db-rg 资源组。


        # clresource create -g ora-db-rg -t SUNW.HAStoragePlus \
        -p filesystemmountpoints=mount-point-list -d hastp-rs
        
      3. 使群集节点中处于受管理状态的 ora-db-rg 资源组联机。


        # clresourcegroup online -eM ora-db-rg
        
  9. 注册数据服务的 ASM 资源类型。


    # clresourcetype register SUNW.scalable_asm_instance_proxy
    # clresourcetype register SUNW.asm_diskgroup
    
  10. 创建资源组 asm-inst-rgasm-dg-rg


    # clresourcegroup create -S asm-inst-rg asm-dg-rg
    
  11. 通过 asm-inst-rgrac-fmwk-rg 中设置正向强关联。


    # clresourcegroup set -p rg_affinities=++rac-fmwk-rg asm-inst-rg
    
  12. 通过 asm-dg-rgasm-inst-rg 中设置正向强关联。


    # clresourcegroup set -p rg_affinities=++asm-inst-rg asm-dg-rg
    
  13. SUNW.crs_framework 类型的资源添加到 rac-fmwk-rg 资源组。


    # clresource create -g rac-fmwk-rg -t SUNW.crs_framework \
    -p resource_dependencies=rac-fmwk-rs \
    -d crs-fmwk-rs
    
  14. SUNW.scalable_asm_instance_proxy 类型的资源添加到 asm-inst-rg 资源组。


    # clresource create -g asm-inst-rg -t SUNW.asm_instance_proxy \
    -p ORACLE_HOME=oracle-home \
    -p crs_home=crs-home \
    -p "oracle_sid{node1}"=instance \
    -p "oracle_sid{node2}"=instance \
    -p resource_dependencies_offline_restart=crs-fmwk-rs,qfs-mp-rs \
    -d asm-inst-rs
    
    -g asm-inst-rg

    指定要在其中放入资源的资源组名称。

    -t SUNW.asm_inst_proxy

    指定要添加的资源类型。

    -p ORACLE_SID= instance

    设置 Oracle 系统标识符。

    -p ORACLE_HOME= Oracle-home

    设置 Oracle 主目录的路径。

    -d asm-inst-rs

    指定要创建的资源的名称。

  15. SUNW.asm_diskgroup 类型的资源添加到 asm-dg-rg 资源组。


    # clresource create -g asm-dg-rg -t SUNW.asm_diskgroup \
    -p asm_diskgroups=dg \
    -p resource_dependencies_offline_restart=asm-inst-rs,qfs-mp-rs \
    -d asm-dg-rs
    
    -g asm-dg-rg

    指定要在其中放入资源的资源组名称。

    -t SUNW.asm_diskgroup

    指定要添加的资源类型。

    -p asm_diskgroups =dg

    指定 ASM 磁盘组。

    -d asm-dg-rs

    指定要创建的资源的名称。

  16. 使群集节点中处于受管理状态的 asm-inst-rg 资源组联机。


    # clresourcegroup online -eM asm-inst-rg
    
  17. 使群集节点中处于受管理状态的 asm-dg-rg 资源组联机。


    # clresourcegroup online -eM asm-dg-rg
    
  18. 通过发出状态命令来检验 Oracle ASM 安装。


    # clresource status +
    
  19. 注册 Sun Cluster HA for Oracle 数据服务的资源类型。

    对于 Sun Cluster HA for Oracle,可注册两种资源类型(SUNW.oracle_serverSUNW.oracle_listener),如下所示。


    # clresourcetype register SUNW.oracle_server
    # clresourcetype register SUNW.oracle_listener
    
  20. 将逻辑主机名资源添加到 Oracle 数据库的故障转移资源组。


    # clreslogicalhostname create -g ora-db-rg [-h logicalhostname] \
    logicalhostname-rs
    
    logicalhostname

    指定逻辑主机名。此逻辑主机名必须出现在您的名称服务数据库中。如果 logicalhostnamelogicalhostname-rs 完全相同,则 logicalhostname 是可选的。

    logicalhostname-rs

    指定分配给您要创建的逻辑主机名资源的名称。

  21. 使群集节点中处于受管理状态的故障转移资源组联机。


    # clresourcegroup online -eM ora-db-rg
    
  22. 在故障转移资源组中创建 Oracle 应用程序资源。

    • Oracle 服务器资源:


      # clresource create -g ora-db-rg \
      -t SUNW.oracle_server \ 
      -p Connect_string=user/passwd \
      -p ORACLE_SID=instance \
      -p ORACLE_HOME=Oracle-home \
      -p Alert_log_file=path-to-log \
      -p Resource_dependencies_offline_restart=asm-dg-rs \
      -d ora-db-rs
      
    • Oracle 侦听器资源:


      # clresource create -g ora-db-rg \
      -t SUNW.oracle_listener \
      -p ORACLE_HOME=Oracle-home \
      -p listener_name=listener \
      -p resource_dependencies_offline_restart=asm-dg-rs,logicalhostname-rs \
      -d ora-ls-rs
      
    -g ora-db-rg

    指定要在其中放入资源的资源组名称。

    -t SUNW.oracle_server/listener

    指定要添加的资源类型。

    -p Alert_log_file =path-to-log

    设置服务器消息日志在 $ORACLE_HOME 下的路径。

    -p Connect_string =user/passwd

    指定故障监视器用于连接数据库的用户和密码。这些设置必须与您在如何设置 Oracle 数据库权限中设置的权限一致。如果您使用 Solaris 授权,键入斜杠 (/) 而非用户名和密码。

    -p ORACLE_SID= instance

    设置 Oracle 系统标识符。

    -p ORACLE_HOME= Oracle-home

    设置 Oracle 主目录的路径。

    -p listener_name= listener

    设置 Oracle 侦听器实例的名称。此名称必须与 listener.ora 中对应的条目匹配。

    -d ora-ls-rs

    指定要创建的资源的名称。


    注 –

    或者,您可以设置属于该 Oracle 数据服务的附加扩展属性以覆盖其默认值。有关扩展属性的列表,请参见设置 Sun Cluster HA for Oracle 扩展属性


  23. 使 Oracle 服务器资源联机。


    # clresource enable ora-db-rs
    
  24. 使 Oracle 侦听器资源联机。


    # clresource enable ora-ls-rs
    
群集文件系统

注 –

您也可以在群集文件系统中安装 ASM 的 Oracle_Home。如果使用群集文件系统,应创建资源 SUNW.HAStoragePlusSUNW.s a able_asm_instance,并设置这两个资源之间相应的依赖性。

如下所示提供创建 SUNW.HAStoragePlus 资源和 SUNW.scalable_asm_instance 资源的样例命令:


# clresource create -g asm-inst-rg -t SUNW.HAStoragePlus \ 
-p FilesystemMountPoints=cluster-file-system \
hastp-rs

# clresource create -g asm-inst-rg -t SUNW.scalable_asm_instance \
-p ORACLE_HOME=oracle-home \
-p "oracle_sid{node1}"=instance \
-p "oracle_sid{node2}"=instance \
-p resource_dependencies_restart=hastp-rs \
-p resource_dependencies_offline_restart=crs-fmwk-rs \
asm-inst-rs

从此处可转至何处

注册和配置 Sun Cluster HA for Oracle 后,转至检验 Sun Cluster HA for Oracle 安装

检验 Sun Cluster HA for Oracle 安装

执行以下验证测试以确保您已正确安装 Sun Cluster HA for Oracle。

这些完备性检查可确保运行 Sun Cluster HA for Oracle 的所有节点或区域均可启动 Oracle 实例,并且配置中的其他节点或区域均可访问 Oracle 实例。执行这些完备性检查,将在启动 Oracle 软件中产生的任何问题从 Sun Cluster HA for Oracle 中分离。

Procedure如何检验 Sun Cluster HA for Oracle 安装

  1. oracle 身份登录到当前控制 Oracle 资源组的节点或区域。

  2. 设置环境变量 ORACLE_SIDORACLE_HOME

  3. 确认可从此节点或区域启动 Oracle 实例。

  4. 确认可连接到 Oracle 实例。

    sqlplus 命令与 connect_string 属性中定义的 user/password 变量配合使用。


    # sqlplus user/passwd@tns_service
    
  5. 关闭 Oracle 实例。

    由于 Oracle 实例在 Sun Cluster 控制下,因此 Sun Cluster 软件会重新启动该 Oracle 实例。

  6. 将包含 Oracle 数据库资源的资源组切换到另一个群集成员。


    # clresourcegroup switch -n node-zone-list resource-group
    
    -n node-zone-list

    指定可控制此资源组的、以逗号分隔的已排序区域列表。列表中各条目的格式为 node:zone。在此格式中,node 指定节点的名称或 ID,而 zone 指定非全局 Solaris 区域的名称。要指定全局区域,或指定不含非全局区域的节点,则仅指定 node 即可。

    此列表中的顺序会确定故障转移期间将节点或区域视为主节点的顺序。此列表是可选的。如果您忽略此列表,则各群集节点的全局区域可控制该资源组。

    resource-group

    指定要切换的资源组的名称。

  7. oracle 身份登录到此时包含该资源组的节点或区域。

  8. 重复步骤 3步骤 4 以确认与 Oracle 实例交互。

Oracle 客户端

客户端必须始终通过使用网络资源而不是物理主机名来引用数据库。网络资源是 IP 地址,在故障转移期间可在物理节点之间移动。物理主机名是机器名。

例如,在 tnsnames.ora 文件中,必须将网络资源指定为运行数据库实例的主机。网络资源是逻辑主机名或共享地址。参见如何设置 Oracle 数据库权限


注 –

Oracle 客户端服务器连接在 Sun Cluster HA for Oracle 切换后无法保留。必须准备客户端应用程序,以根据情况处理相应的断开连接以及重新连接或恢复。事务监视器可简化应用程序。此外,Sun Cluster HA for Oracle 节点恢复时间取决于应用程序。


Sun Cluster HA for Oracle 日志文件的位置

Sun Cluster HA for Oracle 数据服务的每个实例均在 /var/opt/SUNWscor 目录的子目录中维护日志文件。

这些文件包含关于 Sun Cluster HA for Oracle 数据服务所执行操作的信息。要获得有关对配置进行故障排除的诊断信息,或者监视 Sun Cluster HA for Oracle 数据服务的行为,请参阅这些文件。

调整 Sun Cluster HA for Oracle 故障监视器

Sun Cluster HA for Oracle 数据服务的故障监视功能由以下故障监视器提供:

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

表 4 Sun Cluster HA for Oracle 故障监视器的资源类型

故障监视器 

资源类型 

Oracle 服务器 

SUNW.oracle_server

Oracle 侦听器 

SUNW.oracle_listener

这些资源的系统属性和扩展属性控制故障监视器的行为。这些属性的默认值确定故障监视器的预设行为。预设行为应适合大多数 Sun Cluster 安装。因此,当需要修改此预设行为时方可调整 Sun Cluster HA for Oracle 故障监视器。

调整 Sun Cluster HA for Oracle 故障监视器涉及以下任务:

有关更多信息,请参见《Sun Cluster Data Services Planning and Administration Guide for Solaris OS》中的“Tuning Fault Monitors for Sun Cluster Data Services”。有关执行这些任务所需的 Sun Cluster HA for Oracle 故障监视器的信息将在后续各小节中提供。

注册和配置 Sun Cluster HA for Oracle 时,调整 Sun Cluster HA for Oracle 故障监视器。有关更多信息,请参见注册和配置 Sun Cluster HA for Oracle

Oracle 服务器故障监视器操作

Oracle 服务器故障监视器使用到服务器的请求来查询服务器的运行状态。

服务器故障监视器通过 pmfadm 启动以确保监视器具有高可用性。如果由于任何原因导致监视器终止,则进程监控器设备 (PMF, Process Monitor Facility) 会自动重新启动监视器。

服务器故障监视器由以下进程组成。

本部分包含以下关于服务器故障监视器的信息:

主要故障监视器操作

如果在事务过程中数据库联机且没有返回错误,则主要故障监视器确定操作成功。

数据库客户端故障探测操作

数据库客户端故障探测执行以下操作:

  1. 监视已归档 redo 日志分区请参见 已归档 Redo 日志分区监视器操作

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

探测使用资源属性 Probe_timeout 中设置的超时值来确定成功探测 Oracle 需要分配多长时间。

已归档 Redo 日志分区监视器操作

数据库客户端故障探测会查询动态性能视图 v$archive_dest 来确定已归档 Redo 日志的所有可能目标。对于每个活动目标,探测将确定目标是否运行良好并具有充足的空闲空间用于存储已归档 redo 日志。

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

如果已归档 redo 日志分区运行良好,则数据库客户端故障探测会查询动态性能视图 v$sysstat 以获得数据库性能统计数据。这些统计数据发生变化表示数据库工作正常。如果这些统计数据在连续查询期间保持不变,则故障探测会执行数据库事务以确定数据库是否正常工作。这些事务包括在用户表空间中创建、更新和删除表。

数据库客户端故障探测作为 Oracle 用户执行所有事务。此用户 ID 在节点或区域准备期间指定,如 如何准备节点 所述。

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

如果数据库事务失败,服务器故障监视器将针对导致故障的错误确定要执行的操作。要更改服务器故障监视器所执行的操作,可以按照定制 Sun Cluster HA for Oracle 服务器 故障监视器中的说明定制服务器故障监视器。

如果操作需外部程序才能运行,则该程序将作为单独进程在后台运行。

可能执行的操作如下:

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

警报日志文件中的 Oracle 软件日志警报。该文件的绝对路径由 SUNW.oracle_server 资源的 alert_log_file 扩展属性指定。服务器故障监视器将在以下时间扫描警报日志文件的新警报:

如果服务器故障监视器检测到一个已记录的警报,且针对该警报定义了一项操作,则服务器故障监视器将执行该操作以响应警报。

表 2 中列出的已记录警报的预设操作。要更改服务器故障监视器所执行的操作,可以按照定制 Sun Cluster HA for Oracle 服务器 故障监视器中的说明定制服务器故障监视器。

Oracle 侦听器故障监视器操作

Oracle 侦听器故障监视器会检查 Oracle 侦听器的状态。

如果侦听器正在运行,则 Oracle 侦听器故障监视器会认为探测成功。如果故障监视器检测到错误,则会重新启动侦听器。


注 –

侦听器资源不提供设置侦听器密码的机制。如果启用 Oracle 侦听器安全,侦听器故障监视器探测可能会返回 Oracle 错误 TNS-01169。因为侦听器能够做出响应,所以侦听器故障监视器会将此次探测视为成功。该操作不会导致侦听器故障始终无法检测。侦听器故障会返回不同的错误,或者导致探测超时。


侦听器探测通过 pmfadm 启动,从而使探测具有高可用性。如果探测进程被终止,PMF 会自动重新启动探测。

如果探测过程中侦听器出现问题,探测进程将尝试重新启动侦听器。为资源属性 retry_count 设置的值将确定探测进程尝试重新启动的最大次数。如果进行最大次数尝试后探测仍然不成功,则探测进程会停止故障监视器且不切换资源组。

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

为方便故障排除未说明的 DBMS 超时,可以在探测超时期间启用故障监视器创建一个核心文件。核心文件的内容与故障监视器进程相关。故障监视器在 / 目录中创建核心文件。要启用故障监视器创建核心文件,可以使用 coreadm 命令启用 set-id 核心转储。有关更多信息,请参见 coreadm(1M) 手册页。

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

定制 Sun Cluster HA for Oracle 服务器 故障监视器使您能够修改服务器故障监视器的以下行为:


注意 – 注意 –

在定制 Sun Cluster HA for Oracle 服务器 故障监视器之前,需要考虑定制的效果,特别是将重新启动或切换更改为忽略或停止监视的情况下更需如此。如果错误长时间未能得到纠正,则这些错误可能导致数据库问题。如果在定制 Sun Cluster HA for Oracle 服务器 故障监视器后遇到数据库问题,请恢复使用预设操作。恢复预设操作使您能够确定该问题是否由定制引起。


定制 Sun Cluster HA for Oracle 服务器 故障监视器包括以下步骤:

  1. 为错误定义定制行为

  2. 将定制操作文件传播到群集中的所有节点或区域

  3. 指定服务器故障监视器所要使用的定制操作文件

为错误定义定制行为

Sun Cluster HA for Oracle 服务器 故障监视器检测以下类型的错误:

要为这些错误类型定义定制行为,可以创建定制操作文件。本部分包含以下有关定制操作文件的信息:

定制操作文件格式

定制操作文件是纯文本文件。该文件包含一个或多个定义 Sun Cluster HA for Oracle 服务器 故障监视器定制行为的条目。每个条目可以为一个 DBMS 错误、一个超时错误或多个已记录警报定义定制行为。定制操作文件中最多可定义 1024 个条目。


注 –

定制操作文件中的每个条目都会覆盖某个错误的预设操作,或者为没有预设操作的错误指定操作。请为那些需要覆盖的预设操作或没有预设操作的错误在定制操作文件中创建条目。请不要为不需要更改的操作创建条目。


定制操作文件中的条目由一连串用分号分隔的关键字-值对组成。每个条目都包含在括号当中。

定制操作文件中的条目格式如下所示:

{
[ERROR_TYPE=DBMS_ERROR|SCAN_LOG|TIMEOUT_ERROR;]
ERROR=error-spec; 
[ACTION=SWITCH|RESTART|STOP|NONE;]
[CONNECTION_STATE=co|di|on|*;]
[NEW_STATE=co|di|on|*;]
[MESSAGE="message-string"]
}

单独的关键字-值对之间和条目之间可能会使用空格以便格式化文件。

定制操作文件中关键字的含义和允许值如下:

ERROR_TYPE

表示服务器故障监视器已检测到的错误类型。该关键字允许使用以下值:

DBMS_ERROR

指定该错误为 DBMS 错误。

SCAN_LOG

指定该错误为警报日志文件中记录的警报。

TIMEOUT_ERROR

指定该错误为超时。

ERROR_TYPE 关键字可选。如果忽略该关键字,错误将假定为 DBMS 错误。

ERROR

用于标识错误。error-spec 的数据类型和含义由 ERROR_TYPE 关键字的值确定,如下表所示。

ERROR_TYPE

数据类型 

含义 

DBMS_ERROR

整数 

由 Oracle 生成的 DBMS 错误的错误编号。 

SCAN_LOG

引用的正则表达式 

Oracle 已记录到 Oracle 警报日志文件的错误信息中的字符串。 

TIMEOUT_ERROR

整数 

从服务器故障监视器上次启动或重新启动时起,产生连续超时探测的次数 

您必须指定 ERROR 关键字。如果忽略该关键字,则定制操作文件中的对应条目将被忽略。

ACTION

指定服务器故障监视器为响应错误而执行的操作。该关键字允许使用以下值:

NONE

指定服务器故障监视器忽略该错误。

STOP

指定停止服务器故障监视器。

RESTART

指定服务器故障监视器停止并重新启动由 SUNW.oracle_server 资源的 Restart_type 扩展属性值所指定的实体。

SWITCH

指定服务器故障监视器将数据库资源组切换到另一个节点或区域。

ACTION 关键字可选。如果忽略该关键字,则服务器故障监视器将忽略该错误。

CONNECTION_STATE

指定当检测到错误时数据库和服务器故障监视器之间必要的连接状态。指定仅当检测到错误时连接需要处于必要状态时才会应用该条目。该关键字允许使用以下值:

*

指定无论连接状态如何都始终应用该条目。

co

指定仅当服务器故障监视器正尝试连接到数据库时才会应用该条目。

on

指定仅当服务器故障监视器联机时才会应用该条目。如果服务器故障监视器连接到数据库则为联机。

di

指定仅当服务器故障监视器与数据库断开连接时才会应用该条目。

CONNECTION_STATE 关键字可选。如果忽略该关键字,则无论连接状态如何都会始终应用该条目。

NEW_STATE

指定服务器故障监视器检测到错误后必须保留的数据库与服务器故障监视器之间的连接状态。该关键字允许使用以下值:

*

指定连接必须保留不更改的状态。

co

指定服务器故障监视器必须断开与数据库的连接并立即重新连接到数据库。

di

指定服务器故障监视器必须断开与数据库的连接。当下次探测数据库时,服务器故障监视器将重新连接。

NEW_STATE 关键字可选。如果忽略该关键字,则检测到错误后数据库连接状态保留不更改。

MESSAGE

指定当检测到错误时需要打印到资源日志文件的附加消息。该消息必须包含在双引号内。该消息是为错误定义的标准消息的补充。

MESSAGE 关键字可选。如果忽略该关键字,则检测到错误时不会将附加消息打印到资源的日志文件。

更改对 DBMS 错误的响应

表 1 中列出服务器故障监视器为响应每个 DBMS 错误所要执行的操作。要确定是否需要更改对 DBMS 错误的响应,可以考虑 DBMS 错误对数据库的影响,以便确定预设操作是否合适。有关示例,请参见下面的子章节:

要更改对 DBMS 错误的响应,可以在定制操作文件中创建条目,并在其中按如下格式设置关键字:

响应影响严重的错误

如果服务器故障监视器忽略的错误会影响多个会话,则可能需要服务器故障监视器执行操作以防止服务损失。

例如,没有为 Oracle 错误 4031:unable to allocate num-bytes bytes of shared memory 预设操作。但是,该 Oracle 错误表示共享全局区域 (Shared Global Area, SGA) 内存不足、碎片太多或者同时存在这两种状态。如果该错误仅影响一个会话,则可以考虑适当忽略该错误。但是,如果该错误影响多个会话,则可以考虑指定该服务器错误监控器重新启动该数据库。

下面的示例显示定制操作文件中将 DBMS 错误响应更改为重新启动的条目。


示例 4 将 DBMS 错误响应更改为重新启动

{
ERROR_TYPE=DBMS_ERROR;
ERROR=4031; 
ACTION=restart;
CONNECTION_STATE=*; 
NEW_STATE=*;
MESSAGE="Insufficient memory in shared pool.";
}

本示例显示在定制操作文件中覆盖 DBMS 错误 4031 预设操作的条目。该条目指定以下行为:


忽略影响轻微的错误

如果服务器故障监视器所要响应的错误影响轻微,则忽略该错误可能比响应该错误造成的干扰更少。

例如,Oracle 错误 4030:out of process memory when trying to allocate num-bytes bytes 的预设操作是重新启动。该 Oracle 错误表示服务器故障监视器无法分配专用堆内存。导致该错误的一个可能的原因是操作系统可用内存不足。如果该错误影响多个会话,则可以适当考虑重新启动数据库。但是,该错误可能不会影响其它会话,因为这些会话不需要额外专用内存。在这种情况下,可以考虑指定服务器故障监视器忽略该错误。

下面的示例显示定制操作文件中忽略 DBMS 错误的条目。


示例 5 忽略 DBMS 错误

{
ERROR_TYPE=DBMS_ERROR;
ERROR=4030;
ACTION=none;
CONNECTION_STATE=*;
NEW_STATE=*;
MESSAGE="";
}

本示例显示定制操作文件中覆盖 DBMS 错误 4030 预设操作的条目。该条目指定以下行为:


将响应更改为已记录的警报

alert_log_file 扩展属性所标识的文件中的 Oracle 软件日志警报。服务器故障监视器扫描该文件并执行操作以响应已定义操作的警报。

表 2 中列出已记录警报的预设操作。更改对已记录警报的响应以便更改预设操作,或定义服务器故障监视器所要响应的新警报。

要更改对已记录警报的响应,可以在定制操作文件中创建条目并按如下格式设置关键字:

服务器故障监视器按照条目在定制操作文件中出现的顺序处理条目。仅处理第一个与日志警报匹配的条目。后面的匹配条目将被忽略。如果使用正则表达式为多个已记录警报指定指定,请确保更有针对性的条目出现在更为通用的条目之前。在通用条目后指定的条目可能会被忽略。

例如,定制操作文件可能会为由正则表达式 ORA-65ORA-6 标识的错误定义不同的操作。为确保包含正则表达式 ORA-65 的条目不会被忽略,请确保该条目出现在包含正则表达式 ORA-6 的条目之前。

下面的示例显示定制操作文件中更改对已记录警报的响应的条目。


示例 6 更改对已记录警报的响应

{
ERROR_TYPE=SCAN_LOG;
ERROR="ORA-00600: internal error";
ACTION=RESTART;
}

本示例显示定制操作文件中覆盖内部错误已记录警报预设操作的条目。该条目指定以下行为:


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

默认情况下,服务器故障监视器将在第二次连续超时探测后重新启动数据库。如果数据库负载很轻,两次连续超时探测应足以表明该数据库已挂起。但在负载很重时,即使数据库正常工作,服务器故障监视器探测也可能会连续超时。为防止服务器故障监视器不必要地重新启动数据库,可以增加连续超时探测的最大次数。


注意 – 注意 –

增加连续超时探测的最大次数会延长检测数据库是否挂起所需的时间。


要更改连续超时探测允许的最大次数,可以在定制操作文件中为第一次超时探测外其余每个允许的连续超时探测创建一个条目。


注 –

您不需要为第一次超时探测创建条目。服务器故障监视器响应第一次超时探测所要执行的操作已经预设。


对于最后一次允许的超时探测,可以创建按如下格式设置关键字的条目:

对于除第一次超时探测外其余每个仍然连续超时探测,可以创建按如下格式设置关键字的条目:


提示 –

为方便调试,可以指定表示超时探测序列号的消息。


下面的示例显示定制操作文件中将连续超时探测最大次数增加到 5 的条目。


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

{
ERROR_TYPE=TIMEOUT;
ERROR=2;
ACTION=NONE;
CONNECTION_STATE=*;
NEW_STATE=*;
MESSAGE="Timeout #2 has occurred.";
}

{
ERROR_TYPE=TIMEOUT;
ERROR=3;
ACTION=NONE;
CONNECTION_STATE=*;
NEW_STATE=*;
MESSAGE="Timeout #3 has occurred.";
}

{
ERROR_TYPE=TIMEOUT;
ERROR=4;
ACTION=NONE;
CONNECTION_STATE=*;
NEW_STATE=*;
MESSAGE="Timeout #4 has occurred.";
}

{
ERROR_TYPE=TIMEOUT;
ERROR=5;
ACTION=RESTART;
CONNECTION_STATE=*;
NEW_STATE=*;
MESSAGE="Timeout #5 has occurred. Restarting.";
}

本示例显示定制操作文件中将连续超时探测最大次数增加到 5 的条目。这些条目指定以下行为:


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

服务器故障监视器必须在所有群集节点或区域上执行一致的行为。因此,服务器故障监视器在所有群集节点或区域上使用的定制操作文件必须相同。创建或修改定制操作文件后,可以通过将文件传播到所有群集节点或区域确保该文件在所有群集节点和区域上相同。要将该文件传播到所有群集节点或区域,可以使用最适合您群集配置的方法:

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

要将定制操作应用到服务器故障监视器,您必须指定故障监视器应该使用的定制操作文件。当服务器故障监视器读取定制操作文件时,定制操作将应用到服务器故障监视器。服务器故障监视器在您指定定制操作文件时读取该文件。

指定定制操作文件还将验证该文件。如果该文件中包含语法错误,则会显示错误消息。因此,更改定制操作文件后,请再次指定该文件以便验证该文件。


注意 – 注意 –

如果已修改的定制操作文件中检测到语法错误,请在故障监视器重新启动之前纠正这些错误。如果故障监视器重新启动时这些语法错误仍未得到纠正,则故障监视器仍会读取该错误文件,并忽略第一个出现语法错误之后的条目。


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

  1. 在群集节点上,以超级用户或提供 solaris.cluster.modify RBAC 身份验证的角色登录。

  2. 设置 SUNW.oracle_server 资源的 Custom_action_file 扩展属性。

    将该属性设置为定制操作文件的绝对路径。


    # clresource set -p custom_action_file=filepath server-resource
    
    -p custom_action_file= filepath

    指定定制操作文件的绝对路径。

    server-resource

    指定 SUNW.oracle_server 资源。

升级 Sun Cluster HA for Oracle 资源类型

Sun Cluster HA for Oracle 数据服务的现有资源类型如下所示:

除了现有的资源类型,Sun Cluster HA for Oracle 数据服务中还包括用于 ASM 的其他三种资源类型。这些资源类型如下所示:

如果从 Sun Cluster HA for Oracle 的早期版本进行升级,请升级现有的资源类型。

有关介绍如何升级资源类型的一般说明,请参见《Sun Cluster Data Services Planning and Administration Guide for Solaris OS》中的“Upgrading a Resource Type”

升级 SUNW.oracle_listener 资源类型

完成 SUNW.oracle_listener 资源类型升级所需的信息在后续各小节中提供。

有关注册新资源类型版本的信息

SUNW.oracle_listener 资源类型版本与 Sun Cluster 数据服务发行版本之间的关系如下表中所示。Sun Cluster 数据服务的发行版本表示引入资源类型版本的发行版本。该表还总结了每个新版本中引入的更改。

SUNW.oracle_listener 资源类型版本

Sun Cluster 数据服务发行版本 

更改摘要 

1.0 

不适用 

3.1 

3.1 5/03 

引入了启用此资源类型升级的指令 

3.1 4/04 

引入了 Probe_timeout 扩展属性

3.1 8/05 

Probe_timeout 扩展属性的默认值增加至 180 秒

要确定所注册资源类型的版本,使用以下列表中的其中一个命令:

此资源类型的资源类型注册 (Resource Type Registration, RTR) 文件是 /opt/SUNWscor/oracle_listener/etc/SUNW.oracle_listener

有关迁移现有资源类型实例的信息

编辑 SUNW.oracle_listener 资源类型的各实例所需的信息如下所示:


注 –

如果使用版本 4 的 SUNW.oracle_listener 资源类型,当您需要新的默认值时,才升级版本 4。如果您满意版本 4 中的默认值,则无需升级。


以下示例显示用于编辑 SUNW.oracle_listener 资源类型实例的命令。


示例 8 编辑 SUNW.oracle_listener 资源类型的实例


# clresource set  -p Type_version=4 \
  -p probe_timeout=60 oracle-lrs

此命令按如下所示编辑 SUNW.oracle_listener 资源:


升级 SUNW.oracle_server 资源类型

完成 SUNW.oracle_server 资源类型升级所需的信息在后续各小节中提供。

有关注册新资源类型版本的信息

SUNW.oracle_server 资源类型版本与 Sun Cluster 数据服务发行版本之间的关系如下表中所示。Sun Cluster 数据服务的发行版本表示引入资源类型版本的发行版本。该表还总结了每个新版本中引入的更改。

SUNW.oracle_server 资源类型版本

Sun Cluster 数据服务发行版本 

更改摘要 

1.0 

不适用 

1.1 

3.0 5/02 异步发行版本  

引入了启用此资源类型升级的指令 

引入了 Auto_End_Bkp 扩展属性

3.1 

3.1 5/03 

引入了 Restart_type 扩展属性

3.1 10/03 

引入了 Custom_action_file 扩展属性

3.1 8/05 

扩展属性的默认值更改如下: 

  • Probe_timeout 扩展属性的默认值增加至 300 秒

  • Restart_type 扩展属性的默认值更改为 RESOURCE_RESTART

3.2  

支持备用实例 

引入了 Dataguard_role 扩展属性。可能的值如下:

  • NONE

  • PRIMARY

  • STANDBY

  • IN_TRANSITION

引入了 Standby_mode 扩展属性。可能的值如下:

  • LOGICAL

  • PHYSICAL

要确定所注册资源类型的版本,使用以下列表中的其中一个命令:

此资源类型的资源类型注册 (Resource Type Registration, RTR) 文件为 /opt/SUNWscor/oracle_server/etc/SUNW.oracle_server

有关迁移现有资源类型实例的信息

编辑 SUNW.oracle_server 资源类型各实例所需的信息如下所示:


注 –

如果使用版本 4 的 SUNW.oracle_server 资源类型,当您需要新的默认值时,才升级版本 4。如果您满意版本 4 中的默认值,则无需升级。


以下示例显示用于编辑 SUNW.oracle_server 资源类型实例的命令。


示例 9 编辑 SUNW.oracle_server 资源类型的实例


# clresource set  -p Type_version=4 \
  -p custom_action_file=/opt/SUNWscor/oracle_server/etc/srv_mon_cust_actions \ 
oracle-srs

此命令按如下所示编辑 SUNW.oracle_server 资源:


更改 DataGuard 实例的角色

Oracle 主数据库和 Oracle 备用数据库之间可进行数据库角色故障转移或切换。使用 Oracle 命令更改 DataGuard 实例的角色时,更改没有传播到代表这些实例的 Sun Cluster 资源。因此,您还必须使用 Sun Cluster 命令更改这些资源的扩展属性,以确保数据库实例以正确的角色启动。

Procedure如何更改 DataGuard 实例的角色

  1. 防止 Sun Cluster 以错误的角色启动实例。

    如果在更改 DataGuard 实例的角色时节点或区域发生故障,Sun Cluster 可能会以错误的角色重新启动该实例。要防止这种可能性,将代表该实例的 Oracle 服务器资源的 Dataguard_role 扩展属性更改为 IN_TRANSITION


    # clresource set -p Dataguard_role=IN_TRANSITION server-rs
    
  2. 在 Oracle 数据库上执行必要的操作,将数据库转换为新角色。

  3. 更改代表该实例的 Oracle 服务器资源的以下扩展属性,以反映该实例的新角色:

    • Dataguard_role

    • Standby_mode

    需要的 Dataguard_roleStandby_mode 组合取决于角色的更改,如下所示:

    • 要从主数据库更改为物理备用数据库,运行以下命令:


      # clresource set -p Dataguard_role=STANDBY -p Standby_mode=PHYSICAL server-rs
      
    • 要从主数据库更改为逻辑备用数据库,运行以下命令:


      # clresource set -p Dataguard_role=STANDBY \
       -p Standby_mode=LOGICAL server-rs
      
    • 要从备用数据库更改为主数据库,运行以下命令:


      # clresource set -p Dataguard_role=PRIMARY server-rs