環境:Oracle 11.2.0.4 RAC(2 nodes)
1.查看RAC IP配置信息
我們先查看下環境的IP分配情況,一般確認/etc/hosts配置無誤,可直接快速看下hosts配置相關內容:
#public ip
192.168.1.61 jystdrac1
192.168.1.63 jystdrac2
#virtual ip
192.168.1.62 jystdrac1-vip
192.168.1.64 jystdrac2-vip
#scan ip
192.168.1.65 jystdrac-scan
服務名選擇系統名+VIP最后一位,即crm62、crm64,從而便於區分服務名默認優先連接哪一個節點;
2.添加服務名並啟動服務
正常情況下,只連接到某一個節點進行跑批從而最大化避免gc類等待,但要求如果該節點發生故障,是可以連接到另外節點的。 這里就主要用到`-r`和`-a`兩個參數分別指定preferred instances和available instances,下面具體規划為:服務名 crm62 的 preferred instances 是 crmdb1,available instances 是 crmdb2;
服務名 crm64 的 preferred instances 是 crmdb2,available instances 是 crmdb1.
[oracle@jystdrac1 ~]$
srvctl add service -d crmdb -s crm62 -r "crmdb1" -a "crmdb2"
srvctl add service -d crmdb -s crm64 -r "crmdb2" -a "crmdb1"
srvctl start service -d crmdb -s "crm62,crm64"
注意:
1.不需要sqlplus下使用alter system 命令去修改service_names參數值,因為添加對應服務名且服務啟動后,服務名就會自動增加對應值;
2.一般適用於跑批等特殊業務場景,用於防止不必要的gc產生反而影響效率。
3.停止服務並刪除服務名
這一步屬於是回退方案,不管因為什么原因,想去掉新增的服務名,只需停止並刪除對應服務名,應用修改為之前的連接配置即可。[oracle@jystdrac1 ~]$
srvctl stop service -d crmdb -s "crm62,crm64"
srvctl remove service -d crmdb -s crm62
srvctl remove service -d crmdb -s crm64