rac onenode相关知识小结

Rac onenode是一种非常高可用的架构,他其实就是在10g的single instance HA。但是它又封装了很多东西,使得操作可以很简单,不再需要自己写脚本,也不再需要手工的敲一堆的命令。

我们先来看看安装,先安装rac,再将其转换成rac onenode,再转回rac。

在已经已经安装好cluster的环境下,安装rac几乎是零难度,我们看截图:

注:究竟选择admin-managed还是policy-managed,可以参考Kamus的【Oracle Policy-Managed Cluster – Growing for DBaaS】 和【Oracle Database 12c: Why and How You Should Be Using Policy-Managed Oracle RAC Databases

当前的rac的状态:

我们先来看看转换的命令,非常简单,就一行,两种类型:

[oracle@rac1 ~]$ srvctl convert database -h

Convert RAC One Node database to RAC database having one instance.

Usage: srvctl convert database -d -c RAC [-n ]
-d Unique name of database to convert
-c Type of database to which to convert: RAC
-n Candidate server for administrator-managed RAC database to run on
-h Print usage

Convert RAC database having one instance to RAC One Node database.

Usage: srvctl convert database -d -c RACONENODE [-i ] [-w ]
-d Unique name of database to convert
-c Type of database to which to convert: RACONENODE
-i Instance name prefix; required for administrator-managed RAC One Node database
-w Online relocation timeout in minutes
-h Print usage
[oracle@rac1 ~]$

我们开始转换:
1. 首先需要建立service,不然转换的时候报错:


2. 由于我们是policy managed模式的server pool,所以add service时不能加-r -a的参数,不然报错:

3.我们必须用-g的参数加上server pool name,才会加service成功:


4. convert的时候,必须关掉一个节点,不然报错:

5. 好了,在做完上面的工作之后,开始convert:

6. 在11.2.0.2之后,关于rac onenode的所有操作,都可以通过srvctl来实现了。
如修改relocate的超时时间:
修改前:

修改:

修改后:

7. 我们来测试一下relocate和超时的情况:
注意如果scan listener没有注册database在里面,显示如下:

应该是你的remote listener没有设置好,可以设置如下:

tnsnames.ora如下配置:

开始测试:
session1:

session 2:

session 3:

可以看到,3分钟就强制做relocate,即使session 2的事务还没有提交。

另外,如果我们不修改srvctl中的信息,而是在relocate时指定timeout的时间,也是可以的。
我们将relocate timeout恢复回30分钟:

在relocate的时候,-w指定timeout时间为2分钟,确实看到2分钟就强制切换了。

8.切换回rac:

9. 其他一些使用总结:
1. kill pmon,lsnr的资源不会导致切换,因为会被oracle restart自动拉起来。
2. 在policy-managed下,实例是以实例名+下划线+后缀数字,如ora11g_1, ora11g_2。由于实行了policy-managed,ora11g_1不一定工作在节点1,有可能工作在节点2。
3. ora11g_1,在手工relocate的时候,不会立即停库,会等事物完成,如果不完成,将等30分钟,30分钟后shutdown abort。同时,在ora11g_1在节点1等待事务完成的过程中,在节点2上会启动ora11g_2,新的连接会去节点2。这样的应用无缝切换,叫omotion切换。
4. ora11g_1如果手工relocate过去,到节点2变成ora11g_2,但是如果ora11g_1在节点1上,主机意外down机,在节点2启动的实例也还是叫ora11g_1。即只有omotion才会启动另外一个实例,且此时老实例只是短暂存在一段时间。

相关文章

发表回复

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

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