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

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