适用于 Oracle 数据库的 Oracle® Solaris Cluster 数据服务指南

退出打印视图

更新时间: 2014 年 9 月
 
 

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

此过程提供了 Oracle Solaris Cluster 维护命令的长格式。此外,大多数命令还有短形式。这些命令除了格式不同以外,其功能都是相同的。

开始之前

确保满足以下先决条件:

  • /etc/netmasks 文件具有所有逻辑主机名对应的 IP 地址子网和网络掩码条目。如有必要,编辑 /etc/netmasks 文件以添加缺少的任何条目。

  • 如果使用卷管理器,则群集的卷管理器配置为在共享存储中提供卷,该共享存储可从可能运行 Oracle 数据库软件的任何 Oracle Solaris Cluster 节点进行访问。

  • 如果使用卷管理器,则在 Oracle 数据库软件将用于其数据库的存储卷上创建原始设备和文件系统。

  • Oracle 数据库软件安装为可从可能运行 Oracle 数据库的所有群集节点进行访问。

  • 为 Oracle 数据库配置 UNIX 操作系统的内核变量。

  • 为可能运行 Oracle 数据库的所有群集节点配置 Oracle 数据库软件。

  • 已安装数据服务软件包。

    确保您具有以下信息:

  • 控制数据服务的群集节点的名称。

  • 客户机用于访问数据服务的逻辑主机名。通常在安装群集时设置该 IP 地址。有关网络资源的详细信息,请参见Oracle Solaris Cluster Concepts Guide

  • 您计划配置的资源的 Oracle 数据库应用程序二进制文件路径。

  • 数据库类型。

  1. 在群集成员上成为超级用户,或承担可提供 solaris.cluster.modifysolaris.cluster.admin RBAC 授权的角色。
  2. 注册数据服务的资源类型。

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


    注 -  如果使用 Oracle Grid Infrastructure for Clusters 单客户机访问名称 (Single Client Access Name, SCAN) 侦听器,则省略 SUNW.oracle_listener 资源类型的注册。
    # clresourcetype register SUNW.oracle_server
    # clresourcetype register SUNW.oracle_listener
  3. 创建故障转移资源组以容纳网络和应用程序资源。

    如果您使用 Oracle Solaris ZFS 文件系统,则不需要执行此步骤,因为在如何准备 Oracle Solaris Cluster 节点中配置高可用性本地 ZFS 文件系统时创建了资源组。此过程中其他步骤创建的资源将添加到此资源组。

    或者,您可以通过 –n 选项选择可在其上运行数据服务的一组群集节点,如下所示。

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

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

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

    应已在 Oracle Solaris Cluster 安装过程中执行此验证。


    注 -  确保所有的网络资源都位于服务器和客户机的 /etc/inet/hosts 文件中,以避免因名称服务查找而出现任何故障。
  5. 向故障转移资源组添加逻辑主机名资源。
    # clreslogicalhostname create -g resource-group [-h logical-hostname] logical-hostname-rs
    logical-hostname

    指定逻辑主机名。该逻辑主机名必须存在于名称服务数据库中。如果 logical-hostname logical-hostname-rs 相同,则 logical-hostname 是可选的。

    logical-hostname-rs

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

  6. 向群集注册 SUNW.HAStoragePlus 资源类型。
    # clresourcetype register SUNW.HAStoragePlus
  7. SUNW.HAStoragePlus 类型的资源添加到故障转移资源组。

    注 -  如果为 Oracle 文件使用 Oracle Solaris ZFS 文件系统,请忽略此步骤。配置高可用性本地 ZFS 文件系统时创建了 HAStoragePlus 资源。有关更多信息,请参见如何准备 Oracle Solaris Cluster 节点

    Caution

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


    # 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 Alert_log_file=path-to-log \
      -p Connect_string=user/passwd \
      -p Oracle_sid=instance \
      -p Oracle_home=Oracle_home \
      -p Restart_type=entity-to-restart \
      [-p Dataguard_role=role] \
      [-p Standby_mode=mode] \
      -p Resource_dependencies_offline_restart=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_offline_restart=storageplus-resource \
      resource
    –g resource-group

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

    –t

    指定要添加的资源的类型。

    –p Alert_log_file =path-to-log

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

    –p Connect_string =user/passwd

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

    –p Oracle_sid=instance

    设置 Oracle 数据库系统标识符。

    –p Oracle_home=Oracle_home

    设置 Oracle 数据库主目录的路径。

    –p Listener_name=listener

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

    –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 更改为 NONEPRIMARYStandby_mode 的值将被忽略。

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

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

    • 要指定快照备用数据库,请将 mode 更改为 SNAPSHOT

    resource

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


    注 -  或者,可以设置属于 Oracle 数据库数据服务的其他扩展属性以覆盖其默认值。有关扩展属性的列表,请参见设置 HA for Oracle Database 扩展属性

    即已创建处于启用状态的资源。

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

本示例显示如何在双节点群集上注册 HA for Oracle Database。下列为命令中使用的样例名称:

节点名称

phys-schost-1、phys-schost-2

逻辑主机名

schost-1

资源组

resource-group-1(故障转移资源组)

HAStoragePlus 资源

hastp-rs

Oracle 资源

oracle-server-1、oracle-listener-1

Oracle 实例

ora-lsnr(侦听器),ora-srvr(服务器)

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 Alert_log_file=/global/oracle/message-log \
-p Connect_string=scott/tiger \
-p Oracle_home=/global/oracle \
-p Oracle_sid=ora-srvr \-p Dataguard_role=STANDBY \
-p Standby_mode=PHYSICAL \
-p Resource_dependencies_offline_restart=hastp-rs \
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
示例 1-2  注册要在区域群集中运行的 HA for Oracle Database

本示例说明了如何在区域群集中注册 HA for Oracle Database。下列为从全局群集发出的命令中使用的样例名称:

节点名称

phys-schost-1、phys-schost-2

区域群集名称

zonecluster1、zonecluster2

逻辑主机名

zchost-1

资源组

resource-group-1(故障转移资源组)

HAStoragePlus 资源

hastp-rs

Oracle 资源

oracle-server-1、oracle-listener-1

Oracle 实例

ora-lsnr(侦听器),ora-srvr(服务器)

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 Database resource types.)
# clresourcetype register -Z zonecluster1 SUNW.oracle_server
# clresourcetype register -Z zonecluster1 SUNW.oracle_listener
 
Add the Oracle Database application resources to the resource group.)
# clresource create -Z zonecluster1 \
-g resource-group-1 \
-t SUNW.oracle_server \
-p Alert_log_file=/global/oracle/message-log \
-p Connect_string=scott/tiger \
-p Oracle_home=/global/oracle \
-p Oracle_sid=ora-srvr \
-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