此过程提供了 Sun Cluster 维护命令的完整形式。此外,大多数命令还有简短格式。除了命令名称的形式以外,简写形式和完整形式的命令是相同的。有关命令及其简称的列表,参见《Sun Cluster 3.1 - 3.2 Hardware Administration Manual for Solaris OS》中的附录 A “Sun Cluster Geographic Edition Object-Oriented Commands”。
确保满足以下先决条件:
群集的卷管理器配置为在共享存储中提供卷,这些存储可从可能运行的 Oracle 的任何节点进行访问。
在 Oracle 将用于其数据库的存储卷中创建原始设备和文件系统。
Oracle 软件安装为可从可能运行 Oracle 的所有节点或区域进行访问。
为 Oracle 配置 UNIX 操作系统的内核变量。
为用于可运行 Oracle 的所有节点或区域配置 Oracle 软件。
安装数据服务软件包。
确保拥有以下信息:
控制数据服务的群集节点或区域的名称。
客户端用于访问数据服务的逻辑主机名。通常,此 IP 地址已在安装群集时设置。有关网络资源的详细信息,请参见《Sun Cluster Concepts Guide for Solaris OS》。
您计划配置的资源的 Oracle 应用程序二进制文件路径。
数据库类型。
在群集成员上成为超级用户或担任可提供 solaris.cluster.modify 和 solaris.cluster.admin RBAC 授权的角色。
注册数据服务的资源类型。
对于 Sun Cluster HA for Oracle,可注册两种资源类型(SUNW.oracle_server 和 SUNW.oracle_listener),如下所示。
# clresourcetype register SUNW.oracle_server # clresourcetype register SUNW.oracle_listener |
创建故障转移资源组以容纳网络和应用程序资源。
如果您使用 Solaris ZFS 则不需要此步骤,因为在配置高可用性本地 ZFS 时已创建资源组。本过程中其他步骤创建的资源将添加到此资源组。
或者,您可以选择节点或区域集,以供在其上使用 -n 选项运行数据服务,如下所示。
# clresourcegroup create [-n node-zone-list] resource-group |
指定可控制此资源组的、以逗号分隔的已排序区域列表。列表中各条目的格式为 node:zone。在此格式中,node 指定节点的名称或 ID,而 zone 指定非全局 Solaris 区域的名称。要指定全局区域,或指定不含非全局区域的节点,则仅指定 node 即可。
此列表中的顺序会确定故障转移期间将节点或区域视为主节点的顺序。此列表是可选的。如果您忽略此列表,则各群集节点的全局区域可控制该资源组。
指定资源组的名称。您可以随意指定此名称,但该名称对群集内的资源组必须唯一。
检验您所使用的所有网络资源是否均已添加到您的名称服务数据库。
应在 Sun Cluster 安装过程中执行此验证。
确保所有网络资源均在服务器和客户端的 /etc/inet/hosts 文件中显示,以避免由于查找名称服务而导致任何故障。
将逻辑主机名资源添加到故障转移资源组。
# clreslogicalhostname create -g resource-group [-h logicalhostname] \ logicalhotname-rs |
指定逻辑主机名。此逻辑主机名必须出现在您的名称服务数据库中。如果 logicalhostname 和 logicalhostname-rs 完全相同,则 logicalhostname 是可选的。
指定分配给您要创建的逻辑主机名资源的名称。
将 SUNW.HAStoragePlus 资源类型注册到群集。
# clresourcetype register SUNW.HAStoragePlus |
将 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,而本地文件系统必须驻留在全局磁盘组中才能进行故障转移。
资源在启用状态下创建。
使群集节点或区域中处于受管理状态的故障转移资源组联机。
# clresourcegroup online -M resource-group |
将要联机的资源组置于受管理状态。
在故障转移资源组中创建 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 |
指定要在其中放入资源的资源组名称。
指定要添加的资源类型。
设置服务器消息日志在 $ORACLE_HOME 下的路径。
指定故障监视器用于连接数据库的用户和密码。这些设置必须与您在如何设置 Oracle 数据库权限中设置的权限一致。如果您使用 Solaris 授权,键入斜杠 (/) 而非用户名和密码。
设置 Oracle 系统标识符。
设置 Oracle 侦听器实例的名称。此名称必须与 listener.ora 中对应的条目匹配。
设置 Oracle 主目录的路径。
指定在重新启动对故障的响应时,服务器故障监视器重新启动的实体。按如下所述设置 entity-to-restart:
要指定仅重新启动此资源,将 entity-to-restart 设置为 RESOURCE_RESTART。默认情况下,仅重新启动此资源。
要指定重新启动包含此资源的资源组中的所有资源,将 entity-to-restart 设置为 RESOURCE_GROUP_RESTART。
如果将 entity-to-restart 设置为 RESOURCE_GROUP_RESTART,该资源组中的所有其他资源(例如 Apache 或 DNS)都将重新启动,即使这些资源没有发生故障。因此,仅在该资源组中包括您需要在重新启动 Oracle 服务器资源时重新启动的资源。
指定数据库实例的角色。按如下所示更改 role:
要为尚未配置备用实例的主数据库实例创建资源,将 role 更改为 NONE。此值为默认值。
要为已配置备用数据库实例的主数据库实例创建资源,将 role 更改为 PRIMARY。
要为备用数据库实例创建资源,将 role 更改为 STANDBY。
指定备用数据库实例的模式。如果您将 Dataguard_role 更改为 NONE 或 PRIMARY,则 Standby_mode 的值将被忽略。
要指定逻辑备用数据库,将 mode 更改为 LOGICAL。此值为默认值。
要指定物理备用数据库,将 mode 更改为 PHYSICAL。
指定要创建的资源的名称。
或者,您可以设置属于该 Oracle 数据服务的附加扩展属性以覆盖其默认值。有关扩展属性的列表,请参见设置 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 |
以下示例显示如何在双节点群集中注册 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 |
以下示例显示如何在区域群集中注册 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 |