您的位置:首页 > Web前端 > Node.js

rac 与 rac one node 的切换

2017-01-12 14:20 351 查看
接上篇的安装  http://blog.csdn.net/huoshuyinhua/article/details/54287145
5 rac转为rac one node

5.1删除节点2

su - oracle

srvctl stop instance -d orcl -i orcl2

--停止实例2

srvctl config database -d orcl

--查看type为rac

srvctl add service -d orcl -s orclts1 -r "orcl1,orcl2"

--执行这条命令执行下面的remove 出错,说是没有可用的service,如果环境存在可以不用做也可以在

   srvctl config database -d orcl中确认 services是否有值。

/*srvctl工具参数可以参考如下:

-s:服务名

-r:首选实例名

-a:备用实例名

-p:TAF策略,有none,basic,preconnect三个值可选

*/

srvctl remove instance -d orcl -i orcl2

Remove instance from the database orcl? (y/
) y

5.2转换

$ srvctl convert database -d orcl -c RACONENODE -w 30 -i orcl1

--转换为rac one node

$ srvctl config database -d orcl

--查看type 是不是rac one node

5.3重新配置服务

$ srvctl add service -d orcl -s orcl1ts -p BASIC

--先添加一个

$ srvctl stop service -d orcl -s orclts1

$ srvctl remove service -d orcl -s orclts1  

---移除之前的

$ srvctl start service -d orcl -s orcl1ts

$ srvctl config service -d orcl -s orcl1ts

此时Preferred instances: orcl1_1

6.模拟私网中断

[root@rac2 bin]# ifdown eth1

过一下,节点2重启,节点1接管

[grid@rac1 ~]$ crsctl stat res -t

ora.orcl.db

      2        ONLINE  ONLINE       rac1                     Open  

 raconenode的failover功能:只能是在节点号高的服务器上出现故障才能自动failover

因为rac的脑裂驱逐机制是基于以下两种

1.存在多个实例的数据库rac ,出现脑裂时驱逐形成亚群集节点数目小的集群组

2.两个实例的数据库,驱逐节点号大的节点。

这里只能在2上做实验,db让1节点接管;如果在1节点上做实验,2节点是会重启,但db不会接管,依然在1节点

7.转换rac one node 到 rac

su - oracle

[oracle@rac1 ~]$ srvctl convert database -d orcl -c RAC -n rac1

[oracle@rac1 ~]$ srvctl config database -d orcl

--查看Type: RAC

--查看Database instances: orcl1_2

7.1 添加实例

$ srvctl add instance -d orcl -i orcl2 -n rac2

--将节点2加进来

$ srvctl start instance -d orcl -i orcl2

$ srvctl stop  instance -d orcl -i orcl1_2

$ srvctl remove instance -d orcl -i orcl1_2

$ srvctl add instance -d orcl -i orcl1 -n rac1

$ srvctl start instance -d orcl -i orcl1

----以上几步是修改我节点1的实例名,因为之前实验修改的,为了好看和与oracle变量一致。

PRKO-3147 :遇到这个错误应该是与service有关,我是停止旧的添加新的。

7.2 添加新的service服务

srvctl stop service -d orcl -s orcl1ts

srvctl remove service -d orcl -s orcl1ts

srvctl add service -d orcl -s orclsvr -r "orcl1,orcl2' -P BASIC

srvctl config service -d orcl

-以上为删除旧的service 添加新的service,那为什么要删除旧的添加新的?

-旧的只指定一个实例,新的要指定所有实例?(个人理解)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: