RAC 攻擊 - Oracle 叢集資料庫在家庭/客戶端負載均衡
外觀
注意:此實驗室是為 11.1 編寫的,在 11.2 中沒有顯示相同的行為 - 它需要更新!
--
- 從 VMware 控制檯中開啟兩個節點。

[root@collabn1 ~]# srvctl status database -d RAC Instance RAC1 is running on node collabn1 Instance RAC2 is running on node collabn2
- 在資料庫上開啟一個 SQLPlus 會話,並確認SH使用者沒有會話。SQL> select inst_id, count(*) from gv$session where username='SH' group by inst_id; 沒有選擇行
- 透過清除 REMOTE_LISTENER init 引數並重新註冊,在兩個例項上停用伺服器端負載均衡。在與監聽器註冊之前,重新啟動它們以重置連線統計資訊。SQL> alter system set remote_listener=''; 系統已更改。collabn1:/home/oracle[RAC1]$ lsnrctl stop collabn1:/home/oracle[RAC1]$ lsnrctl start SQL> -- 例項 RAC1 SQL> alter system register; 系統已更改。collabn1:/home/oracle[RAC1]$ lsnrctl services 服務 "RAC.vm.ardentperf.com" 有 1 個例項。例項 "RAC1",狀態為 READY,為該服務有 1 個處理程式... 處理程式: "DEDICATED" 已建立:0 拒絕:0 狀態:就緒 本地伺服器 collabn2:/home/oracle[RAC2]$ lsnrctl stop collabn2:/home/oracle[RAC2]$ lsnrctl start SQL> -- 例項 RAC2 SQL> alter system register; 系統已更改。collabn2:/home/oracle[RAC2]$ lsnrctl services 服務 "RAC.vm.ardentperf.com" 有 1 個例項。例項 "RAC2",狀態為 READY,為該服務有 1 個處理程式... 處理程式: "DEDICATED" 已建立:0 拒絕:0 狀態:就緒 本地伺服器
- 在您另一個已連線的 SQLPlus 會話中,密切關注連線的平衡。同時,開啟一個新的 shell 會話並執行此指令碼,該指令碼將開啟 160 個到資料庫的連線。a=160; while [ $a -gt 0 ]; do sqlplus sh/sh@RAC & a=$((a-1)) done 在客戶端負載均衡期間,連線如何在資料庫例項之間分配?
注意:在 11.2 中,這些連線在 SCAN 監聽器而不是 RAC 節點上進行負載均衡。 - 透過執行以下兩個命令來終止所有 sqlplus 會話。執行第二個命令後,在您開始看到訊息 "no more job" 後按 <Ctrl-C>。killall sqlplus while true; do fg; done <Ctrl-C>
