此过程介绍了使用 Oracle Solaris Cluster 维护命令注册和配置带有群集 Oracle ASM 实例的 HA for Oracle Database 需要执行的步骤。
可以选择使用第三方卷管理器向群集 Oracle ASM 磁盘组提供候选磁盘。对于这种类型的配置,此过程手动创建充当 Oracle Solaris Cluster SUNW.ScalDeviceGroup 资源代理的 Oracle Grid Infrastructure 资源。在此过程中,Oracle Grid Infrastructure 资源名为 sun.resource。您可以配置 sun.resource 以确保对应的 Oracle ASM 磁盘组直到 sun.resource 联机才会挂载。仅当对应的 SUNW.ScalDeviceGroup 资源联机时,sun.resource 资源才联机。仅当实际的卷管理器磁盘集或磁盘组联机时,SUNW.ScalDeviceGroup 资源才联机。
为确保 Oracle ASM 磁盘组可从该依赖性链中获益,在定义 sun.resource 之后,修改相应的 Oracle ASM 磁盘组资源,从而使硬启动依赖性包含 sun.resource。只能由 SUNW.scalable_asm_diskgroup_proxy 资源通过使用 VALIDATE 方法来修改 Oracle ASM 磁盘组资源的硬启动依赖性。因此,必须在 SUNW.scalable_asm_diskgroup_proxy 和 SUNW.ScalDeviceGroup 资源之间设置脱机重新启动依赖性。
开始之前
请确保 /etc/netmasks 文件具有所有逻辑主机名对应的 IP 地址子网和网络掩码条目。如有必要,编辑 /etc/netmasks 文件以添加缺少的任何条目。
如果您使用 Solaris Volume Manager for Sun Cluster 进行卷管理,请配置多属主磁盘集以供群集 Oracle ASM 使用。请遵循适用于 Oracle Real Application Clusters 的 Oracle Solaris Cluster 数据服务指南 中的如何在 Solaris Volume Manager for Sun Cluster 中为 Oracle RAC 数据库创建多属主磁盘集中的说明。
确保已安装了 Oracle Grid Infrastructure 软件。
确保为 Oracle ASM 实例和数据库实例配置了 Oracle Clusterware 资源。
确保设置了用于 Oracle_Home 的文件系统。有关说明,请参见准备 Oracle Solaris Cluster 节点和磁盘。
可以从以下任何项中派生 Oracle ASM 候选磁盘:
Solaris Volume Manager 磁盘集
NFS
# /Grid_home/bin/crsctl add type sun.storage_proxy.type -basetype local_resource
# /Grid_home/bin/crsctl add res sun.scal-asmdg1-rs \ -type sun.storage_proxy.type \ -attr "ACTION_SCRIPT='/opt/SUNWscor/dsconfig/bin/scproxy_crs_action' \ ACL='owner:root:rwx,pgrp:oinstall:rwx,other::r--' SCRIPT_TIMEOUT='20' RESTART_ATTEMPTS='60'"
SUNW.ScalDeviceGroup 资源名称。
指定 sun.storage_proxy.type 资源类型。
指定 /opt/SUNWscor/dsconfig/bin/scproxy_crs_action 操作脚本。
将所有者设置为 root,将组设置为 Oracle ASM 磁盘组的 ACL 组项。以下命令将显示 ACL 组条目:
# /Grid_home/bin/crsctl stat res ora.DATA1.dg -p | grep ACL= ACL=owner:oragrid:rwx,pgrp:oinstall:rwx,other::r--
示例输出显示 oinstall 是组条目。
设置为 20。
设置为 60。
输出内容将类似如下:
# /Grid_home/bin/crsctl stat res sun.scal-asmdg1-rs -p NAME=sun.scal-asmdg1-rs TYPE=sun.storage_proxy.type ACL=owner:root:rwx,pgrp:oinstall:rwx,other::r-- ACTIONS= ACTION_FAILURE_TEMPLATE= ACTION_SCRIPT=/opt/SUNWscor/dsconfig/bin/scproxy_crs_action ACTION_TIMEOUT=60 AGENT_FILENAME=%CRS_HOME%/bin/scriptagent ALERT_TEMPLATE= ALIAS_NAME= AUTO_START=restore CHECK_INTERVAL=60 CHECK_TIMEOUT=0 CLEAN_TIMEOUT=60 DEBUG=1 DEFAULT_TEMPLATE= DEGREE=1 DELETE_TIMEOUT=60 DESCRIPTION= ENABLED=1 INSTANCE_FAILOVER=1 INTERMEDIATE_TIMEOUT=- LOAD=1 LOGGING_LEVEL=1 MODIFY_TIMEOUT=60 NOT_RESTARTING_TEMPLATE= OFFLINE_CHECK_INTERVAL=0 PROFILE_CHANGE_TEMPLATE= RESTART_ATTEMPTS=60 SCRIPT_TIMEOUT=20 SERVER_CATEGORY= START_CONCURRENCY=0 START_DEPENDENCIES= START_TIMEOUT=0 STATE_CHANGE_TEMPLATE= STOP_CONCURRENCEY=0 STOP_DEPENDENCIES= STOP_TIMEOUT=0 UPTIME_THRESHOLD=1h USER_WORKLOAD=no #
# /Grid_home/bin/crsctl stat res ora.DATA1.dg -p | grep START_DEPENDENCIES START_DEPENDENCIES=hard(ora.asm) pullup(ora.asm) # clresource show -p Resource_dependencies_offline_restart asm-data1-rs === Resources === Resource: asm-data1-rs Resource_dependencies_offline_restart: asm-inst-rs -- Standard and extension properties --
请注意,该命令包含加号 (+):
# clresource set -p Resource_dependencies_offline_restart+=scal-asmdg1-rs asm-data1-rs
(仅限 Oracle ASM 设备组)为指定的 Oracle ASM 存储资源设置脱机重新启动依赖性。
指定要修改的资源的名称。
# clresource create -g asm-dg-rg \ -t SUNW.scalable_asm_diskgroup_proxy \ -p asm_diskgroups=data1 \ -p Resource_dependencies_offline_restart=asm-inst-rs, scal-asmdg1-rs \ -d asm-data1-rs
指定要放置资源的 Oracle ASM 设备组的名称。
指定要添加的资源的类型。
设置 Oracle ASM 磁盘组的名称。
指定禁用您创建的资源。
# /Grid_home/bin/crsctl stat res ora.DATA1.dg -p | grep START_DEPENDENCIES START_DEPENDENCIES=hard(ora.asm,sun.scal-asmdg1-rs) pullup(ora.asm) # clresource show -p Resource_dependencies_offline_restart asm-data1-rs === Resources === Resource: asm-data1-rs Resource_dependencies_offline_restart: asm-inst-rs scal-asmdg1-rs -- Standard and extension properties --
# clresourcetype register SUNW.crs_framework
# clresource create -g rac-fmwk-rg \ -t SUNW.crs_framework \ -p Resource_dependencies_offline_restart=rac-fmwk-rs \ -d crs-fmwk-rs
# clresourcegroup create ora-db-rg
# clresourcetype register SUNW.qfs
# clresourcegroup create qfs-rg
# clresource create -g qfs-rg -t SUNW.qfs -p QFSFileSystem=qfs-mp qfs-rs
指定资源组的名称。
指定要添加的资源的类型。
指定 Sun QFS 文件系统挂载点。
指定要创建的 Sun QFS 文件系统资源的名称。
# clresourcegroup online -eM qfs-rg
# clresourcetype register SUNW.HAStoragePlus
# clresource create -g ora-db-rg -t SUNW.HAStoragePlus \ -p filesystemmountpoints=mount-point-list -d hastp-rs
# clresourcegroup online -eM ora-db-rg
# clresourcetype register SUNW.scalable_asm_instance_proxy
# clresourcetype register SUNW.scalable_asm_diskgroup_proxy
# clresourcegroup create -S asm-inst-rg asm-dg-rg
# clresourcegroup set -p Rg_affinities=++rac-fmwk-rg asm-inst-rg
# clresourcegroup set -p Rg_affinities=++asm-inst-rg asm-dg-rg
# clresource create -g rac-fmwk-rg \ -t SUNW.crs_framework \ -p Resource_dependencies_offline_restart=rac-fmwk-rs \ -d crs-fmwk-rs
将 SUNW.HAStoragePlus 和 SUNW.scalable_asm_instance 类型的资源添加到 asm-inst-rg 资源组,并在两种资源之间设置相应的依赖性。
# 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_proxy \ -p Oracle_home=Oracle_home \ -p CRS_HOME=Grid_home -p Oracle_sid{node1}=instance \ -p Oracle_sid{node2}=instance \ -p Resource_dependencies_offline_restart=hastp-rs \ -p Resource_dependencies_offline_restart=crs-fmwk-rs \ asm-inst-rs
指定要在其中放置资源的资源组的名称。
指定群集文件系统的名称。
指定要创建的 SUNW.HAStoragePlus 资源的名称。
设置 Oracle 数据库主目录的路径。
设置用于群集的 Oracle Grid Infrastructure 主目录的路径。
设置 Oracle 数据库系统标识符。
# clresource create -g asm-inst-rg \ -t SUNW.scalable_asm_instance_proxy \ -p Oracle_home=Oracle_home \ -p CRS_HOME=Grid_home \ -p "oracle_sid{node1}"=instance \ -p "oracle_sid{node2}"=instance \ -p Resource_dependencies_offline_restart=crs-fmwk-rs \ -d asm-inst-rs
指定要添加的资源的类型。
指定要创建的资源的名称。
使用 SUNW.scalable_asm_diskgroup_proxy 资源类型。
# clresource create -g asm-dg-rg \ -t SUNW.scalable_asm_diskgroup_proxy \ -p Asm_diskgroups=dg[,dg…] \ -p Resource_dependencies_offline_restart=asm-inst-rs,asm-stor-rs \ -d asm-dg-rs
# clresourcegroup online -eM asm-inst-rg
# clresourcegroup online -eM asm-dg-rg
# clresource status +
可注册 SUNW.oracle_server 和 SUNW.oracle_listener 两种资源类型。
# clresourcetype register SUNW.oracle_server # clresourcetype register SUNW.oracle_listener
# clreslogicalhostname create -g ora-db-rg [-h logical-hostname] logical-hostname-rs
指定逻辑主机名。该逻辑主机名必须存在于名称服务数据库中。如果 logical-hostname 和 logical-hostname-rs 相同,则 logical-hostname 是可选的。
指定分配给要创建的逻辑主机名资源的名称。
# clresourcegroup online -eM ora-db-rg
# clresource create -g ora-db-rg \ -t SUNW.oracle_server \ -p Db_unique_home=db-unique-home \ -p Resource_dependencies_offline_restart=asm-dg-rs \ -p Oracle_sid=instance \ -d ora-db-rs
指定要在其中放置资源的资源组的名称。
指定要添加的资源的类型。
设置 Oracle 数据库系统标识符。
设置 Oracle 数据库的唯一名称。
指定要创建的资源的名称。
# clresource enable ora-db-rs
接下来的步骤
注册和配置 HA for Oracle Database 后,请转至检验 HA for Oracle Database 安装。