12c flex cluster小记(3)

好了,在安装完flex cluster将leaf node转换为hub node之后,我们现在开始装2节点的rac。

先是安装数据库软件,这很容易,这边省略不讲了。我要讲的是安装完数据库软件之后,我用dbca建库,建库过程没报什么错,但是却发现完成后,2个节点只有一个节点有db instance,另一节点就是没有db instance。db instance只能启动在一个节点上。

我们先来看看安装过程。也是看图说话。


注意我这里选了policy-managed,而非传统的administrator-managed。


注意这里,由于之前选的是policy-managed,所以这里就出现了一个要求指定server pool的选项。可以create new server pool,也可以选择已经有的。注意这边的默认cardinality是1。

在此后面的步骤,我就不贴了,因为都是常规的建库,一路next下去就行。

安装一路都没有报错,安装完成后启动后发现,db instance只能存在于一个节点中,如一开始cdbrac_1存在在节点1上,只有等节点1宕机后,cdbrac_2才会在节点2起来,仿佛就像一个rac one node,但是奇怪,我安装的是rac,不是rac one node呀。如果是one node,instance name应该是唯一的。

细细回想安装过程,觉得和cardinality有关,一查文档,果然。

A policy-managed database is defined by cardinality, which is the number of database instances you want running during normal operations.

原来在policy-managed方式cluster,节点被分成了若干个server pool,我定义的myservpool中,cardinality为1,也就是定义了在这个2节点的server pool中,允许running的db instance只有1个。注:server pool的概念其实在11g就有了。

ok,既然知道了原因,那就改回来吧。

--检查当前server pool的情况,可以看到节点2是在free server pool中,
[oracle@ol6-121-rac1 ~]$ srvctl status srvpool -detail
Server pool name: Free
Active servers count: 1
Active server names: ol6-121-rac2
NAME=ol6-121-rac2 STATE=ONLINE
Server pool name: Generic
Active servers count: 0
Active server names: 
Server pool name: myservpool
Active servers count: 1
Active server names: ol6-121-rac1
NAME=ol6-121-rac1 STATE=ONLINE

--修改cardinality的为2,即max为2
[oracle@ol6-121-rac1 ~]$ srvctl modify srvpool -serverpool myservpool -max 2

--再次检查,发现free server pool已经为0,2个节点都划在了myservpool中了,当前都是online状态。注:这里的online是指server的情况。表示节点在cluster中,服务器没有down。
[oracle@ol6-121-rac1 ~]$ srvctl status srvpool -detail
Server pool name: Free
Active servers count: 0
Active server names: 
Server pool name: Generic
Active servers count: 0
Active server names: 
Server pool name: myservpool
Active servers count: 2
Active server names: ol6-121-rac1,ol6-121-rac2
NAME=ol6-121-rac1 STATE=ONLINE
NAME=ol6-121-rac2 STATE=ONLINE
[oracle@ol6-121-rac1 ~]$ 

此时如果ps还是没发现db进程,可以手工将其起来:

--start instance
[oracle@ol6-121-rac1 ~]$ srvctl start instance -db cdbrac -instance cdbrac_2

--检查db instance 情况:
[oracle@ol6-121-rac1 ~]$ srvctl status database -db cdbrac
Instance cdbrac_1 is running on node ol6-121-rac1
Instance cdbrac_2 is running on node ol6-121-rac2

ok,我们现在已经改成2个了,那么如果要改回去,怎么改?也很简单,只是注意一下已经起来的instance,如果要改小cardinality,可能会报错资源正在被使用,需要加force的参数来强制关闭。

--改回1,报错资源still running
[oracle@ol6-121-rac1 ~]$ srvctl modify srvpool -serverpool myservpool -max 1
PRCS-1011 : Failed to modify server pool myservpool
CRS-2736: The operation requires stopping resource 'ora.cdbrac.db' on server 'ol6-121-rac1'
CRS-2738: Unable to modify server pool 'ora.myservpool' as this will affect running resources, but the force option was not specified
[oracle@ol6-121-rac1 ~]$

--加force参数强制关闭
[oracle@ol6-121-rac1 ~]$ srvctl modify srvpool -serverpool myservpool -max 1 -force -verbose
 
--检查db instance情况
[oracle@ol6-121-rac1 ~]$ srvctl status database -db cdbrac
Instance cdbrac_2 is running on node ol6-121-rac2

--检查server pool情况:
[oracle@ol6-121-rac1 ~]$ srvctl status srvpool -detail
Server pool name: Free
Active servers count: 1
Active server names: ol6-121-rac1
NAME=ol6-121-rac1 STATE=ONLINE
Server pool name: Generic
Active servers count: 0
Active server names: 
Server pool name: myservpool
Active servers count: 1
Active server names: ol6-121-rac2
NAME=ol6-121-rac2 STATE=ONLINE
[oracle@ol6-121-rac1 ~]$ 

好了,关于flex cluster的学习过程,就写到这里。太长的一篇文章拆成了3篇。在安装和测试的过程中,大小问题也经历不少。也认识到了不少新的特性,新的功能。Flex cluster,Flex asm,Serverpool,这些新东西不知道会被多少人使用,拭目以待……

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据