rac 与 rac one node 的切换

本文详细介绍了如何从Oracle RAC环境转换至RAC One Node环境,并提供了具体的步骤,包括删除节点、服务配置调整及模拟故障切换等操作。此外还讲述了如何再由RAC One Node转换回RAC环境。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

接上篇的安装  http://blog.youkuaiyun.com/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/[n]) 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,那为什么要删除旧的添加新的?
-旧的只指定一个实例,新的要指定所有实例?(个人理解)



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值