创建 Oracle Solaris Cluster 地理版配置

如何升级到 Oracle Solaris Cluster 4.0 第 7 部分

作者:Tim Read

2012 年 5 月发布

第 1 部分 — 示例配置概述
第 2 部分 — 针对集群配置 Oracle Database
第 3 部分 — 安装目标集群
第 4 部分 — 创建区域集群
第 5 部分 — 安装新应用程序软件体系
第 6 部分 — 创建备用数据库
第 7 部分 — 创建 Oracle Solaris Cluster 地理版配置
第 8 部分 — Oracle Solaris Cluster 地理版如何简化升级过程

要创建 Oracle Solaris Cluster 地理版配置,首先确保在两个集群上都安装了正确的软件包。软件包已经存在于 Oracle Solaris 11 集群上,因为已安装了 ha-cluster-full 组,其中包含 ha-cluster-geo-full 组,如清单 1 所示。

注意:如果选择使用本文作为执行类似过程的指南,需要密切注意各命令运行的节点。因此,本示例步骤中显示的系统提示包括节点名称和用户名以指示命令必须运行在什么位置以及必须由谁来运行。

vzpyrus3a (root) # pkg info ha-cluster-geo-full
          Name: ha-cluster/group-package/ha-cluster-geo-full
       Summary: Oracle Solaris Cluster Geographic Edition full group package
   Description: Oracle Solaris Cluster Geographic Edition full group package
      Category: Meta Packages/Group Packages
         State: Installed
     Publisher: ha-cluster
       Version: 4.0.0
 Build Release: 5.11
        Branch: 0.22
Packaging Date: Sat Oct 22 07:28:36 2011
          Size: 5.53 kB
          FMRI: pkg: //ha-cluster/ha-cluster/group-package/ha-cluster-geo-full@4.0.0,
5.11-0.22:20111022T072836Z

清单 1. 查看 Oracle Solaris 11 集群上的软件包

查看 Oracle Solaris 10 集群上是否存在 Oracle Solaris Cluster 地理版软件包,如清单 2 所示。

pgyruss1 (root) # pkginfo | grep  Geographic
application SUNWscgctl        Oracle Solaris Cluster Geographic Edition Control Module (Usr)
application SUNWscgctlr       Oracle Solaris Cluster Geographic Edition Control Module (Root)
application SUNWscghb         Oracle Solaris Cluster Geographic Edition Heartbeats (Usr)
application SUNWscghbr        Oracle Solaris Cluster Geographic Edition Heartbeats (Root)
application SUNWscgman        Oracle Solaris Cluster Geographic Edition Manual Pages
application SUNWscgrepavs     Oracle Solaris Cluster Geographic Edition Availability Suite Data 
                              Replication (Opt)
application SUNWscgrepavsu    Oracle Solaris Cluster Geographic Edition Availability Suite Data 
                              Replication (Usr)
application SUNWscgrepodg     Oracle Solaris Cluster Geographic Edition Oracle Data Guard Data 
                              Replication (Opt)
application SUNWscgrepodgu    Oracle Solaris Cluster Geographic Edition Oracle Data Guard Data  
                              Replication (Usr)
application SUNWscgrepsbpu    Oracle Solaris Cluster Geographic Edition Script Based Plug-in 
                              Replication (Usr)
application SUNWscgrepsrdf    Oracle Solaris Cluster Geographic Edition SRDF Data Replication (Opt)
application SUNWscgrepsrdfu   Oracle Solaris Cluster Geographic Edition SRDF Data Replication (Usr)
application SUNWscgreptc      Oracle Solaris Cluster Geographic Edition for Hitachi TrueCopy Data  
                              Replication (Opt)
application SUNWscgreptcu     Oracle Solaris Cluster Geographic Edition for Hitachi TrueCopy Data 
                              Replication (Usr)
application SUNWscgspm        Oracle Solaris Cluster Geographic Edition - Oracle Solaris Cluster 
                              Manager Extensions

清单 2. 查看 Oracle Solaris 10 集群上的软件包

在两个 Oracle Solaris 10 集群节点上,还要查看 Common Agent Container 是否运行在所有集群节点上,并且它是否在监听所有网络地址:

pgyruss1 (root) # svcs -a | grep -i common
online         Jan_12   svc:/application/management/common-agent-container-2:default
uninitialized  Jan_12   svc:/application/management/common-agent-container-1:default
pgyruss1 (root) # cacaoadm list-params | grep network-bind-address
network-bind-address=0.0.0.0

因为我们选择使用区域集群作为目标系统,所以您还必须在区域集群节点之间手动同步 Common Agent Container 密钥并确保在远程站点上已经启用 ssh。在两个 Oracle Solaris 11 区域集群节点上执行这些任务,如清单 3 所示。

vzpyrus3a (root) # svcs -a | grep common
disabled        2:49:12 svc:/application/management/common-agent-container-1:default
vzpyrus3a (root) # svcadm enable common-agent-container-1
vzpyrus3a (root) # svcs -a | grep common
online          6:29:01 svc:/application/management/common-agent-container-1:default
vzpyrus3a (root) # cacaoadm list-params | grep network-bind-address
network-bind-address=127.0.0.1
vzpyrus3a (root) # cacaoadm stop
vzpyrus3a (root) # cacaoadm set-param network-bind-address=0.0.0.0
vzpyrus3a (root) # cacaoadm create-keys --force
vzpyrus3a (root) # tar cf /tmp/SECURITY.tar /etc/cacao/instances/default/security


vzpyrus3a (root) # scp /tmp/SECURITY.tar root@vzpyrus3b:/tmp
Password: 
SECURITY.tar         100% |********************************************|   983 KB    00:00  
vzpyrus3a (root) # cacaoadm start
vzpyrus3a (root) # cacaoadm status
default instance is ENABLED at system startup. 
Smf monitoring process: 
16853
16854
Uptime: 0 day(s), 0:0

vzpyrus3b (root) # cacaoadm stop 
vzpyrus3b (root) # cacaoadm set-param network-bind-address=0.0.0.0
vzpyrus3b (root) # tar xf /tmp/SECURITY.tar > /dev/null 2>&1
vzpyrus3b (root) # rm /tmp/SECURITY.tar 
vzpyrus3b (root) # cacaoadm start

清单 3. 同步 Common Agent Container 密钥并查看 ssh

确认 /etc/hosts 文件中有与每个集群名称匹配的项,然后在两个集群上启动 Oracle Solaris Cluster 地理版,如清单 4 所示。

:这些项还可以在名称服务中,但不能指望外部名称服务始终能够访问。

pgyruss1 (root) # egrep " gyruss| oracle-zc" /etc/hosts
10.134.108.109  vzgyruss2a gyruss
10.134.108.112  vzpyrus1b oracle-zc 
pgyruss1 (root) # geoadm start
... checking for management agent ...
... management agent check done ....
... starting product infrastructure ... please wait ...
Registering resource type <SUNW.HBmonitor>...done.
Registering resource type <SUNW.SCGeoInitSvc>...done.
Resource type <SUNW.scmasa> has been registered already
Resource type <SUNW.SCGeoZC> has been registered already
Creating scalable resource group <geo-clusterstate>...done.
Creating service tag management resource <geo-servicetag>...
Service tag management resource created successfully ....
Creating failover resource group <geo-infrastructure>...done.
Creating logical host resource <geo-clustername>...
Logical host resource created successfully ....
Creating resource <geo-hbmonitor> ...done.
Creating resource <geo-failovercontrol> ...done.
Bringing RG <geo-clusterstate> to managed state ...done.
Bringing resource group <geo-infrastructure> to managed state ...done.
Enabling resource <geo-clustername> ...done.
Enabling resource <geo-hbmonitor> ...done.
Enabling resource <geo-failovercontrol> ...done.
Node pgyruss1: Bringing resource group <geo-infrastructure> online ...done.

Oracle Solaris Cluster Geographic Edition infrastructure started successfully. 

pgyruss1 (root) # clrs status

=== Cluster Resources ===

Resource Name         Node Name   State                  Status Message
-------------         ---------   -----                  --------------
oracle-svr-rs         pgyruss1    Offline                Offline
                      pgyruss2    Online                 Online

oracle-lsnr-rs        pgyruss1    Offline                Offline
                      pgyruss2    Online                 Online

oracle-hasp-rs        pgyruss1    Offline                Offline
                      pgyruss2    Online                 Online

oracle-lh-rs          pgyruss1    Offline                Offline - LogicalHostname offline.
                      pgyruss2    Online                 Online - LogicalHostname online.

geo-servicetag        pgyruss1    Online_not_monitored   Online_not_monitored
                      pgyruss2    Online_not_monitored   Online_not_monitored

geo-failovercontrol   pgyruss1    Online                 Online
                      pgyruss2    Offline                Offline

geo-hbmonitor         pgyruss1    Online                 Online - Daemon OK
                      pgyruss2    Offline                Offline

geo-clustername       pgyruss1    Online                 Online - LogicalHostname online.
                      pgyruss2    Offline                Offline

vzpyrus3a (root) # egrep " gyruss| oracle-zc" /etc/hosts
10.134.108.109  vzgyruss2a gyruss
10.134.108.112  vzpyrus1b oracle-zc 
vzpyrus3a (root) # geoadm start
... checking for management agent ...
... management agent check done ....
... starting product infrastructure ... please wait ...
Registering resource type <SUNW.HBmonitor>...done.
Registering resource type <SUNW.SCGeoInitSvc>...done.
Registering resource type <SUNW.scmasa>...done.
Registering resource type <SUNW.SCGeoZC>...done.
Creating scalable resource group <geo-clusterstate>...done.
Creating service tag management resource <geo-servicetag>...
Service tag management resource created successfully ....
Creating failover resource group <geo-infrastructure>...done.
Creating logical host resource <geo-clustername>...
Logical host resource created successfully ....
Creating resource <geo-hbmonitor> ...done.
Creating resource <geo-failovercontrol> ...done.
Bringing RG <geo-clusterstate> to managed state ...done.
Bringing resource group <geo-infrastructure> to managed state ...done.
Enabling resource <geo-clustername> ...done.
Enabling resource <geo-hbmonitor> ...done.
Enabling resource <geo-failovercontrol> ...done.
Node vzpyrus3a: Bringing resource group <geo-infrastructure> online ...done.

Oracle Solaris Cluster Geographic Edition infrastructure started successfully. 

vzpyrus3a (root) # clrs status

=== Cluster Resources ===

Resource Name         Node Name   State                  Status Message
-------------         ---------   -----                  --------------
oracle-svr-rs         vzpyrus3a   Online                 Online
                      vzpyrus3b   Offline                Offline

oracle-lsnr-rs        vzpyrus3a   Online                 Online
                      vzpyrus3b   Offline                Offline

oracle-hasp-rs        vzpyrus3a   Online                 Online
                      vzpyrus3b   Offline                Offline

oracle-lh-rs          vzpyrus3a   Online                 Online - LogicalHostname online.
                      vzpyrus3b   Offline                Offline - LogicalHostname offline.

geo-zc-sysevent       vzpyrus3a   Online_not_monitored   Online_not_monitored
                      vzpyrus3b   Online_not_monitored   Online_not_monitored

geo-servicetag        vzpyrus3a   Online_not_monitored   Online_not_monitored
                      vzpyrus3b   Online_not_monitored   Online_not_monitored

geo-failovercontrol   vzpyrus3a   Online                 Online
                      vzpyrus3b   Offline                Offline

geo-hbmonitor         vzpyrus3a   Online                 Online - Daemon OK
                      vzpyrus3b   Offline                Offline

geo-clustername       vzpyrus3a   Online                 Online - LogicalHostname online.
                      vzpyrus3b   Offline                Offline

清单 4. 查看 /etc/hosts 文件并启动 Oracle Solaris Cluster 地理版

构建 Oracle Solaris Cluster 地理版配置的下一步是在集群之间创建称为伙伴 的关系。为此,两个集群必须彼此“信任”,因为集群之间的通信发生在安全链路上。

在每个集群的唯一 节点上执行清单 5 所示命令。

:伙伴关系中的集群可以,也经常可能,位于不同的 DNS 域中。如果您的配置是这种情况,请查看 Oracle Solaris Cluster 地理版文档以找到要使用的正确命令语法。

pgyruss1 (root) # geoadm status

   Cluster:  gyruss
*** No partnership defined on local cluster "gyruss" *** 

pgyruss1 (root) # geops add-trust --cluster oracle-zc

Local cluster : gyruss
Local node : pgyruss1

Cleaning up certificate files in /etc/cacao/instances/default/security/jsse on pgyruss1

Retrieving certificates from oracle-zc ... Done

New Certificate:

Owner: CN=vzpyrus3a_agent
Issuer: CN=vzpyrus3a_ca
Serial number: 25d4a814
Valid from: Thu Jun 19 08:43:00 PDT 1969 until: Mon Jan 19 07:43:00 PST 2032
Certificate fingerprints:
         MD5:  C9:71:18:6C:FE:AA:40:F7:FE:08:F7:99:DB:01:1F:F2
         SHA1: 09:96:91:1E:8C:7C:C7:91:57:3D:9D:BB:57:89:5D:E7:A5:5C:B8:C3
         Signature algorithm name: SHA1withRSA
         Version: 3

Extensions: 

#1: ObjectId: 2.5.29.19 Criticality=false
BasicConstraints:[
  CA:false
  PathLen: undefined
]

Do you trust this certificate? [y/n] y

Adding certificate to truststore on pgyruss1 ... Done

Adding certificate to truststore on pgyruss2 ... Done

New Certificate:

Owner: CN=vzpyrus3a_ca
Issuer: CN=vzpyrus3a_ca
Serial number: 6f783dfd
Valid from: Thu Jun 19 08:42:58 PDT 1969 until: Mon Jan 19 07:42:58 PST 2032
Certificate fingerprints:
         MD5:  D4:57:E8:5B:67:C9:25:9D:07:18:2E:4E:C3:30:D5:11
         SHA1: 6B:BC:84:11:DD:F2:3B:59:4D:B6:9C:20:2E:D9:15:1F:06:B5:D6:D1
         Signature algorithm name: SHA1withRSA
         Version: 3

Extensions: 

#1: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:1
]

Do you trust this certificate? [y/n] y

Adding certificate to truststore on pgyruss1 ... Done

Adding certificate to truststore on pgyruss2 ... Done

Operation completed successfully. All certificates are added to truststore on nodes of cluster gyruss

vzpyrus3a (root) # geops add-trust --cluster gyruss

Local cluster : oracle-zc
Local node : vzpyrus3a

Cleaning up certificate files in /etc/cacao/instances/default/security/jsse on vzpyrus3a

Retrieving certificates from gyruss ... Done

New Certificate:

Owner: CN=pgyruss1_agent
Issuer: CN=pgyruss1_ca
Serial number: 71fd3e5d
Valid from: Tue May 27 08:44:19 GMT-08:00 1969 until: Sun Jul 27 08:44:19 GMT-08:00 2031
Certificate fingerprints:
	 MD5:  31:46:B2:9A:04:53:E8:58:22:A5:09:46:FB:05:7F:9A
	 SHA1: 78:93:9F:D6:A1:53:74:47:BD:F9:84:7D:4A:60:1B:65:13:07:5B:B0
	 Signature algorithm name: SHA1withRSA
	 Version: 3

Do you trust this certificate? [y/n] y

Adding certificate to truststore on vzpyrus3a ... Done

Adding certificate to truststore on vzpyrus3b ... Done

New Certificate:

Owner: CN=pgyruss1_ca
Issuer: CN=pgyruss1_ca
Serial number: 56602b49
Valid from: Tue May 27 08:44:17 GMT-08:00 1969 until: Sun Jul 27 08:44:17 GMT-08:00 2031
Certificate fingerprints:
	 MD5:  A1:FE:EB:7B:BC:F0:28:B2:20:AD:DB:41:96:0B:04:06
	 SHA1: 7D:F1:5A:D2:19:DB:89:92:D8:E9:5A:D0:90:38:FC:C5:E2:8F:EF:F3
	 Signature algorithm name: SHA1withRSA
	 Version: 3

Do you trust this certificate? [y/n] y

Adding certificate to truststore on vzpyrus3a ... Done

Adding certificate to truststore on vzpyrus3b ... Done

Operation completed successfully. All certificates are added to truststore on
nodes of cluster oracle-zc

清单 5. 在集群之间创建信任

在一个集群上创建伙伴关系,然后从另一个集群加入伙伴关系,如下所示:哪一个集群定义初始伙伴关系并不重要。

pgyruss1 (root) # geops create -c oracle-zc migration-ps
Partnership between local cluster "gyruss" and remote cluster "oracle-zc" successfully created.

vzpyrus3a (root) # geops join-partnership gyruss migration-ps
Local cluster "oracle-zc" is now partner of cluster "gyruss".

等待集群同步,然后查看其状态,如清单 6 所示。

vzpyrus3a (root) # geoadm status

   Cluster:  oracle-zc

   Partnership "migration-ps"	: OK
	Partner clusters	: gyruss
	Synchronization		: OK
	ICRM Connection		: OK

	Heartbeat "hb_oracle-zc~gyruss" monitoring "gyruss": OK
	     Plug-in "ping_plugin"  	: Inactive
	     Plug-in "tcp_udp_plugin"	: OK

清单 6:查看集群状态

如果要使用 Oracle Wallet Manager 允许数据库管理员帐户 (sys) 控制切换,则将此帐户同时添加到两个站点的钱夹,如清单 7 所示。此过程使用前一步中创建的 tnsnames.ora 中的 _geoadm 后缀的服务。然后在 oracle-rg 联机的区域集群节点上重复此过程。

pgyruss2 (root) # clrs status

=== Cluster Resources ===

Resource Name         Node Name   State                  Status Message
-------------         ---------   -----                  --------------
oracle-svr-rs         pgyruss1    Offline                Offline
                      pgyruss2    Online                 Online

oracle-lsnr-rs        pgyruss1    Offline                Offline
                      pgyruss2    Online                 Online

oracle-hasp-rs        pgyruss1    Offline                Offline
                      pgyruss2    Online                 Online

oracle-lh-rs          pgyruss1    Offline                Offline - LogicalHostname offline.
                      pgyruss2    Online                 Online - LogicalHostname online.

geo-servicetag        pgyruss1    Online_not_monitored   Online_not_monitored
                      pgyruss2    Online_not_monitored   Online_not_monitored

geo-failovercontrol   pgyruss1    Online                 Online - Service is online.
                      pgyruss2    Offline                Offline

geo-hbmonitor         pgyruss1    Online                 Online - Daemon OK
                      pgyruss2    Offline                Offline

geo-clustername       pgyruss1    Online                 Online - LogicalHostname online.
                      pgyruss2    Offline                Offline

pgyruss2 (root) # su - oracle
Oracle Corporation      SunOS 5.10      Generic Patch   January 2005

pgyruss2 (oracle) $ mkstore -wrl /oradata/wallet -createCredential sales_geoadm sys 
Oracle Secret Store Tool : Version 11.2.0.3.0 - Production
Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.

Your secret/Password is missing in the command line 
Enter your secret/Password:       
Re-enter your secret/Password:      
   
Enter wallet password:         
   
Create credential oracle.security.client.connect_string2
pgyruss2 (oracle) $ mkstore -wrl /oradata/wallet -createCredential salesdr_geoadm sys 
Oracle Secret Store Tool : Version 11.2.0.3.0 - Production
Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.

Your secret/Password is missing in the command line 
Enter your secret/Password:       
   
Re-enter your secret/Password:        
Enter wallet password:         
   
Create credential oracle.security.client.connect_string3
pgyruss2 (oracle) $ mkstore -wrl /oradata/wallet -createEntry \ 
oracle.security.client.default_username sys
Oracle Secret Store Tool : Version 11.2.0.3.0 - Production Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved. Enter wallet password: pgyruss2 (oracle) $ mkstore -wrl /oradata/wallet -createEntry oracle.security.client.default_password Oracle Secret Store Tool : Version 11.2.0.3.0 - Production Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved. Your secret/Password is missing in the command line Enter your secret/Password: Re-enter your secret/Password: Enter wallet password:

清单 7. 启用钱夹以控制切换

确保使用 /@sales_geoadm/@salesdr_geoadm 标识符测试 Data Guard 切换过程在连接时是否正常工作。为简短起见,在此省略了这些检查。

Oracle Solaris Cluster 地理版使用一个名为保护组 的结构控制一个或多个应用程序资源组及其关联复制技术的组合。因此,必须创建一个保护组来控制 Oracle 数据库及其关联的 Data Guard 复制,如清单 8 所示。将保护组命名为 oracle-pg

geoadmgeopg 命令可以从每个集群内的任何节点运行。有关如何安装和配置 Oracle Solaris Cluster 地理版软件的详细信息,请参见 Oracle Solaris Cluster 地理版安装指南

pgyruss1 (root) # geoadm status

   Cluster:  gyruss

   Partnership "migration-ps"   : OK
        Partner clusters        : oracle-zc
        Synchronization         : OK
        ICRM Connection         : OK

        Heartbeat "hb_gyruss~oracle-zc" monitoring "oracle-zc": OK
             Plug-in "ping_plugin"      : Inactive
             Plug-in "tcp_udp_plugin"   : OK
pgyruss1 (root) # geopg create --partnership migration-ps --role  primary --datarep-type odg oracle-pg
Protection group "oracle-pg" successfully created.
pgyruss1 (root) # geopg add-replication-component  \
-p local_database_name=sales \
-p remote_database_name=salesdr \
-p local_db_service_name=sales_geoadm \
-p remote_db_service_name=salesdr_geoadm \
-p standby_type=physical \
-p replication_mode=MaxPerformance \
-p sysdba_username= \
-p sysdba_password= \
-p local_oracle_svr_rg_name=oracle-rg \
-p remote_oracle_svr_rg_name=oracle-rg sales oracle-pg
Password for property sysdba_password : Oracle Data Guard configuration "sales" successfully added to the protection group "oracle-pg". pgyruss1 (root) # clrs status === Cluster Resources === Resource Name Node Name State Status Message ------------- --------- ----- -------------- oracle-svr-rs pgyruss1 Offline Offline pgyruss2 Online Online oracle-lsnr-rs pgyruss1 Offline Offline pgyruss2 Online Online oracle-hasp-rs pgyruss1 Offline Offline pgyruss2 Online Online oracle-lh-rs pgyruss1 Offline Offline - LogicalHostname offline. pgyruss2 Online Online - LogicalHostname online. geo-servicetag pgyruss1 Online_not_monitored Online_not_monitored pgyruss2 Online_not_monitored Online_not_monitored geo-failovercontrol pgyruss1 Online Online - Service is online. pgyruss2 Offline Offline geo-hbmonitor pgyruss1 Online Online - Daemon OK pgyruss2 Offline Offline geo-clustername pgyruss1 Online Online - LogicalHostname online. pgyruss2 Offline Offline sales-odg-rep-rs pgyruss1 Offline Offline pgyruss2 Offline Offline sales-oracle-svr-shadow-rs pgyruss1 Offline Offline pgyruss2 Offline Offline pgyruss1 (root) # clrg status === Cluster Resource Groups === Group Name Node Name Suspended Status ---------- --------- --------- ------ oracle-rg pgyruss1 No Offline pgyruss2 No Online geo-clusterstate pgyruss1 No Online pgyruss2 No Online geo-infrastructure pgyruss1 No Online pgyruss2 No Offline oracle-pg-odg-rep-rg pgyruss1 No Offline pgyruss2 No Online sales-rac-proxy-svr-shadow-rg pgyruss1 No Unmanaged pgyruss2 No Unmanaged

清单 8. 创建保护组

一旦在一个集群上创建了保护组,就必须将配置传播到另一个集群,如清单 9 所示。当此过程完成时,Data Guard 复制处于禁用状态,以与新创建的 Oracle Solaris Cluster 地理版保护组的状态匹配。一旦添加了示例应用程序资源组,将重新启用复制。

vzpyrus3b (root) # geoadm status

   Cluster:  oracle-zc

   Partnership "migration-ps"   : OK
        Partner clusters        : gyruss
        Synchronization         : OK
        ICRM Connection         : OK

        Heartbeat "hb_oracle-zc~gyruss" monitoring "gyruss": OK
             Plug-in "ping_plugin"      : Inactive
             Plug-in "tcp_udp_plugin"   : OK
vzpyrus3b (root) # geopg get --partnership migration-ps
Protection group "oracle-pg" successfully created.
vzpyrus3b (root) # geoadm status

   Cluster:  oracle-zc

   Partnership "migration-ps"   : OK
        Partner clusters        : gyruss
        Synchronization         : OK
        ICRM Connection         : OK

        Heartbeat "hb_oracle-zc~gyruss" monitoring "gyruss": OK
             Plug-in "ping_plugin"      : Inactive
             Plug-in "tcp_udp_plugin"   : OK

   Protection group "oracle-pg" : Unknown
        Partnership             : migration-ps
        Synchronization         : OK

        Cluster oracle-zc       : Unknown
             Role               : Secondary
             Activation state   : Deactivated
             Configuration      : OK
             Data replication   : Unknown
             Resource groups    : None

        Cluster gyruss          : Unknown
             Role               : Primary
             Activation state   : Deactivated
             Configuration      : OK
             Data replication   : Unknown
             Resource groups    : None

清单 9. 将配置传播到另一个集群

如果资源组中包含依赖于数据库的应用程序,可以将其也置于 Oracle Solaris Cluster 地理版控制下,如清单 10 所示。在清单 10 中,在要求通过 Oracle 资源组 oracle-rg 关联的每个集群上创建一个名为 example-rg 的空资源组。使用 RG_Affinities 属性实现此关联,该属性在将资源组添加到保护组后设置。

我们没有使此关联依赖于真实 Oracle 资源组 (oracle-rg)(它必须始终保持联机才能发生复制),而是使其依赖于 Oracle Solaris Cluster 地理版仅为此类目的创建的影子资源组。影子资源组遵循标准 Oracle Solaris Cluster 地理版约定,其中资源组在主集群上联机,而在辅助集群上脱机。

vzpyrus3b (root) # geopg list

Protection Group: oracle-pg

  Partnership name              : migration-ps

  Local Role                    : Primary
  Deployed on clusters          : oracle-zc, gyruss
  Data Replication type         : ODG
  Configuration status          : OK
  Synchronization status        : OK
  Creation signature            : gyruss Jan 20, 2012 6:20:36 AM PST
  Last update                   : Jan 24, 2012 2:39:48 AM GMT-08:00

  Local properties              : None

  Global properties             : 

        Description               : 
        Timeout                   : 3600 seconds
        RoleChange_ActionCmd      : 
        External_Dependency_Allowed : false
        RoleChange_ActionArgs     : 

  *** No protected resource groups in protection group "oracle-pg" ***

  ODG Oracle Data Guard configurations:

        sales

        sales_remote_database_name : sales
        sales_local_database_name : salesdr
        sales_local_rac_proxy_svr_rg_name : oracle-rg
        sales_remote_rac_proxy_svr_rg_name : oracle-rg
        sales_sysdba_password     : ********
        sales_replication_mode    : maxperformance
        sales_remote_db_service_name : sales_geoadm
        sales_local_db_service_name : salesdr_geoadm
        sales_standby_type        : physical
        sales_sysdba_username     : 


vzpyrus3b (root) # clrg create -p auto_start_on_new_cluster=false example-rg
pgyruss1 (root) # clrg create -p auto_start_on_new_cluster=false example-rg

vzpyrus3b (root) # geopg add-resource-group example-rg,sales-rac-proxy-svr-shadow-rg \
oracle-pg
Following resource groups successfully added: "example-rg,sales-rac-proxy-svr-shadow-rg". pgyruss1 (root) # clrg set -p RG_affinities=+++sales-rac-proxy-svr-shadow-rg \
example-rg
vzpyrus3b (root) # clrg set -p RG_affinities=+++sales-rac-proxy-svr-shadow-rg \
example-rg
vzpyrus3b (root) # geopg list Protection Group: oracle-pg Partnership name : migration-ps Local Role : Primary Deployed on clusters : oracle-zc, gyruss Data Replication type : ODG Configuration status : OK Synchronization status : OK Creation signature : gyruss Jan 20, 2012 6:20:36 AM PST Last update : Jan 24, 2012 2:44:29 AM GMT-08:00 Local properties : None Global properties : Description : Timeout : 3600 seconds RoleChange_ActionCmd : External_Dependency_Allowed : false RoleChange_ActionArgs : Protected resource groups: example-rg sales-rac-proxy-svr-shadow-rg ODG Oracle Data Guard configurations: sales sales_remote_database_name : sales sales_local_database_name : salesdr sales_local_rac_proxy_svr_rg_name : oracle-rg sales_remote_rac_proxy_svr_rg_name : oracle-rg sales_sysdba_password : ******** sales_replication_mode : maxperformance sales_remote_db_service_name : sales_geoadm sales_local_db_service_name : salesdr_geoadm sales_standby_type : physical sales_sysdba_username :

清单 10. 使用影子资源组

现在,重新启动复制。一旦完成,复制状态反映在 geoadm 输出和 sales-odg-rep-rs 资源状态上,如清单 11 所示。

vzpyrus3b (root) # geopg start --scope global oracle-pg
Processing operation... The timeout period for this operation on each cluster is 3600 seconds (3600000 milliseconds)...
Protection group "oracle-pg" successfully started.
vzpyrus3b (root) # geoadm status

   Cluster:  oracle-zc

   Partnership "migration-ps"	: OK
	Partner clusters	: gyruss
	Synchronization		: OK
	ICRM Connection		: OK

	Heartbeat "hb_oracle-zc~gyruss" monitoring "gyruss": OK
	     Plug-in "ping_plugin"  	: Inactive
	     Plug-in "tcp_udp_plugin"	: OK

   Protection group "oracle-pg"	: OK
	Partnership		: migration-ps
	Synchronization		: OK

	Cluster oracle-zc	: OK
	     Role		: Secondary
	     Activation state	: Activated
	     Configuration	 OK
	     Data replication	: OK
	     Resource groups	: OK

	Cluster gyruss		: OK
	     Role		: Primary
	     Activation state	: Activated
	     Configuration	: OK
	     Data replication	: OK
	     Resource groups	: OK

vzpyrus3b (root) # clrs status sales-odg-rep-rs 

=== Cluster Resources ===

Resource Name         Node Name     State       Status Message
-------------         ---------     -----       --------------
sales-odg-rep-rs      vzpyrus3a     Online      Online - Replicating in MaxPerformance mode
                      vzpyrus3b     Offline     Offline

清单 11. 重新启动复制

注意,根据哪个集群是主集群,应用程序资源组的状态在两个集群上各不相同,如清单 12 所示。

vzpyrus3b (root) # clrg status sales-rac-proxy-svr-shadow-rg example-rg

=== Cluster Resource Groups ===

Group Name                      Node Name   Suspended   Status
----------                      ---------   ---------   ------
sales-rac-proxy-svr-shadow-rg   vzpyrus3a   No          Unmanaged
                                vzpyrus3b   No          Unmanaged

example-rg                      vzpyrus3a   No          Unmanaged
                                vzpyrus3b   No          Unmanaged

pgyruss1 (root) # clrg status sales-rac-proxy-svr-shadow-rg example-rg

=== Cluster Resource Groups ===

Group Name                      Node Name   Suspended   Status
----------                      ---------   ---------   ------
sales-rac-proxy-svr-shadow-rg   pgyruss1    No          Offline
                                pgyruss2    No          Online

example-rg                      pgyruss1    No          Offline
                                pgyruss2    No          Online

清单 12. 查看应用程序资源组的状态

升级过程的最后一步是切换到 Oracle Solaris 11 集群,如清单 13 所示。需要选择正确的时间在站点上执行此操作,将任何潜在的停机时间降至最低。

vzpyrus3b (root) # geoadm status

   Cluster:  oracle-zc

   Partnership "migration-ps"	: OK
	Partner clusters	: gyruss
	Synchronization		: OK
	ICRM Connection		: OK

	Heartbeat "hb_oracle-zc~gyruss" monitoring "gyruss": OK
	     Plug-in "ping_plugin"  	: Inactive
	     Plug-in "tcp_udp_plugin"	: OK

   Protection group "oracle-pg"	: OK
	Partnership		: migration-ps
	Synchronization		: OK

	Cluster oracle-zc	: OK
	     Role		: Secondary
	     Activation state	: Activated
	     Configuration	: OK
	     Data replication	: OK
	     Resource groups	: OK

	Cluster gyruss		: OK
	     Role		: Primary
	     Activation state	: Activated
	     Configuration	: OK
	     Data replication	: OK
	     Resource groups	: OK
vzpyrus3b (root) # geopg switchover -m oracle-zc oracle-pg
Are you sure you want to switchover protection group 'oracle-pg' to primary 
cluster 'oracle-zc'? (yes|no) > yes
Processing operation... The timeout period for this operation on each cluster
is 3600 seconds (3600000 milliseconds)...

"Switchover" operation succeeded for the protection group "oracle-pg".
vzpyrus3b (root) # geoadm status

   Cluster:  oracle-zc

   Partnership "migration-ps"	: OK
	Partner clusters	: gyruss
	Synchronization		: OK
	ICRM Connection		: OK

	Heartbeat "hb_oracle-zc~gyruss" monitoring "gyruss": OK
	     Plug-in "ping_plugin"  	: Inactive
	     Plug-in "tcp_udp_plugin"	: OK

   Protection group "oracle-pg"	: OK
	Partnership		: migration-ps
	Synchronization		: OK

	Cluster oracle-zc	: OK
	     Role		: Primary
	     Activation state	: Activated
	     Configuration	: OK
	     Data replication	: OK
	     Resource groups	: OK

	Cluster gyruss		: OK
	     Role		: Secondary
	     Activation state	: Activated
	     Configuration	: OK
	     Data replication	: OK
	     Resource groups	: OK

vzpyrus3b (root) # clrs status sales-odg-rep-rs sales-oracle-svr-shadow-rs

=== Cluster Resources ===

Resource Name                Node Name   State     Status Message
-------------                ---------   -----     --------------
sales-odg-rep-rs             vzpyrus3a   Online    Online - Replicating in MaxPerformance mode
                             vzpyrus3b   Offline   Offline

sales-oracle-svr-shadow-rs   vzpyrus3a   Online    Online -  (Data Guard Primary)
                             vzpyrus3b   Offline   Offline

清单 13. 切换到 Oracle Solaris 11 集群

作为切换过程的一部分,Oracle Solaris Cluster 地理版更改 oracle-svr-rs 资源的 Dataguard_role 属性值。查看此更改是否已真正发生,如清单 14 所示。

vzpyrus3b (root) # clrs show -p dataguard_role oracle-svr-rs

=== Resources ===                              

Resource:                                       oracle-svr-rs

  --- Standard and extension properties ---    

  Dataguard_role:                               PRIMARY
    Class:                                         extension
    Description:                                   This indicates whether the
instance is dataguard or not. If the instance is a dataguard instance, then 
this property indicates whether the instance is a primary, standby, or 
whether a dataguard role switchover is in progress.
    Per-node:                                      False
    Type:                                          enum

pgyruss1 (root) # clrs show -p dataguard_role oracle-svr-rs

=== Resources ===                              

Resource:                                       oracle-svr-rs

  --- Standard and extension properties ---    

  Dataguard_role:                               STANDBY
    Class:                                         extension
    Description:                                   This indicates whether the
instance is dataguard or not. If the instance is a dataguard instance, then 
this property indicates whether the instance is a primary, standby, or 
whether a dataguard role switchover is in progress.
    Per-node:                                      False
    Type:                                          enum

清单 14. 查看属性值

如果出于任何原因,需要还原为 Oracle Solaris 10 集群,只需发出另一条切换命令即可。

修订版 1.0,2012 年 5 月 11 日

通过 FacebookTwitterOracle 博客关注我们。