RAC部署前提是要求各节点的主机硬件一致的,但实际如果碰上一些不规范的客户,经费有限或是扩容时已买不到同样的机器,那么采购的机器会有一些区别,比如RAC各节点的CPU核数有区别,那么默认的gcs_server_processes在各节点之间也可能不同。而我们针对这种情况是建议RAC各节点使用相同的gcs_server_processes参数值,尽可能的确保稳定性。当然,最棒的选择还是用同样的硬件。
1.模拟环境
我有一套Oracle 10.2.0.5 RAC (3 nodes)的RAC测试环境,之前每个虚拟机的CPU都是1,如今将节点2的CPU改为4。
然后去看各个节点的cpu和gcs参数:
show parameter cpu
show parameter gcs
--NODE1:
SYS@jy1 >show parameter cpu
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
cpu_count integer 1
parallel_threads_per_cpu integer 2
SYS@jy1 >show parameter gcs
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
gcs_server_processes integer 1
SYS@jy1 >
--NODE2:
SYS@jy2 >show parameter cpu
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
cpu_count integer 4
parallel_threads_per_cpu integer 2
SYS@jy2 >show parameter gcs
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
gcs_server_processes integer 2
SYS@jy2 >
--NODE3:
SYS@jy3 >show parameter cpu
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
cpu_count integer 1
parallel_threads_per_cpu integer 2
SYS@jy3 >show parameter gcs
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
gcs_server_processes integer 1
SYS@jy3 >
可以看到节点2的gcs_server_processes是2,其余节点都是1。
2.修改参数
在节点2上操作,统一修改gcs_server_processes参数:
alter system set gcs_server_processes = 1 scope=spfile sid='*';
SYS@jy2 >show parameter pfile
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string +ZHAOJINGYU/newdg/spfilejy.ora
SYS@jy2 >alter system set gcs_server_processes = 1 scope=spfile sid='*';
System altered.
需要重启实例生效。
3.回退修改
可以使用reset回退修改:
alter system reset gcs_server_processes scope=spfile sid='*';
--reset 回退
SYS@jy2 >alter system reset gcs_server_processes scope=spfile sid='*';
System altered.
同样需要重启生效。
实验过程中看了下ASM实例的这个参数本来都是1,也就是不需要修改,实际大家有类似生产环境可以再确认下这个ASM实例上的gcs_server_processes参数是否都是1。
最后做完实验,将RAC第二节点的CPU数调整回1。