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。