RAC负载均衡配置
1、客戶端均衡(Client-Side LB)
工作原理:當客戶端發(fā)起連接時,會從地址列表中隨機選取一個,再使用隨機算法把連接請求分散到各個實例。
存在缺點:
1.1)分配連接時沒有考慮每個節(jié)點的真實負載,最后分配不過不一定是平衡
1.2)隨機算法需要長時間片,如果在短時間內(nèi)同時發(fā)起多個連接,這些連接有可能被分配到一個節(jié)點上
1.3)有些情況下,連接可能被分配到故障節(jié)點上
配置方法:在tns中添加LOAD_BALANCE = YES條目
2、服務(wù)器端均衡(Server-Side LB)
工作原理:
2.1)該均衡實現(xiàn)是依賴于Listener收集的負載信息。在數(shù)據(jù)庫運行過程中,PMON后臺進程會收集數(shù)系統(tǒng)的負載信息,然后登記到Listener中。
2.2)PMON進程不僅會向本地的Listener注冊,也會想其他節(jié)點上的Listener注冊,但到底向何處注冊,是由Remote_Listeners和Local_Listener這兩個參數(shù)決定。Local_Listener不用設(shè)置,而Remote_Listeners需要設(shè)置,參數(shù)值有一個tnsnames項。
2.3)當收到客戶端連接請求時,就會把連接轉(zhuǎn)給負載最小的節(jié)點,這個節(jié)點可能是自己,也可能是其他節(jié)點,也就是Listener會轉(zhuǎn)發(fā)客戶端的連接請求。
配置方法:
SQL> show parameter listener; ? ? ? ?
?
NAME ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? TYPE ? ? ? ?VALUE
------------------------------------ ----------- ------------------------------
local_listener ? ? ? ? ? ? ? ? ? ? ? string
remote_listener ? ? ? ? ? ? ? ? ? ? ?string ? ? ?LISTENERS_DEVDB
?
tnsnames.ora
LISTENERS_DEVDB =
? (ADDRESS_LIST =
? ? (ADDRESS = (PROTOCOL = TCP)(HOST = rac1-vip)(PORT = 1521))
? ? (ADDRESS = (PROTOCOL = TCP)(HOST = rac2-vip)(PORT = 1521))
? )
?
listener.ora(除掉SID_LIST_LISTENER_NAME項)
LISTENER_RAC1 =
? (DESCRIPTION_LIST =
? ? (DESCRIPTION =
? ? ? (ADDRESS = (PROTOCOL = TCP)(HOST = rac1-vip)(PORT = 1521)(IP = FIRST))
? ? ? (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.11)(PORT = 1521)(IP = FIRST))
? ? )
? )
3、兩者聯(lián)合使用
Server-Side LB和Client-Side LB不是互斥的,兩者可以一起工作,這個時候客戶端的連接請求會先從地址列表中隨機選擇一個地址,然后向該地址的Listener發(fā)送請求;Listener接到請求后,根據(jù)各個節(jié)點負載情況從中挑選出最合適的節(jié)點轉(zhuǎn)發(fā)連接請求。
工作原理:當客戶端發(fā)起連接時,會從地址列表中隨機選取一個,再使用隨機算法把連接請求分散到各個實例。
存在缺點:
1.1)分配連接時沒有考慮每個節(jié)點的真實負載,最后分配不過不一定是平衡
1.2)隨機算法需要長時間片,如果在短時間內(nèi)同時發(fā)起多個連接,這些連接有可能被分配到一個節(jié)點上
1.3)有些情況下,連接可能被分配到故障節(jié)點上
配置方法:在tns中添加LOAD_BALANCE = YES條目
2、服務(wù)器端均衡(Server-Side LB)
工作原理:
2.1)該均衡實現(xiàn)是依賴于Listener收集的負載信息。在數(shù)據(jù)庫運行過程中,PMON后臺進程會收集數(shù)系統(tǒng)的負載信息,然后登記到Listener中。
2.2)PMON進程不僅會向本地的Listener注冊,也會想其他節(jié)點上的Listener注冊,但到底向何處注冊,是由Remote_Listeners和Local_Listener這兩個參數(shù)決定。Local_Listener不用設(shè)置,而Remote_Listeners需要設(shè)置,參數(shù)值有一個tnsnames項。
2.3)當收到客戶端連接請求時,就會把連接轉(zhuǎn)給負載最小的節(jié)點,這個節(jié)點可能是自己,也可能是其他節(jié)點,也就是Listener會轉(zhuǎn)發(fā)客戶端的連接請求。
配置方法:
SQL> show parameter listener; ? ? ? ?
?
NAME ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? TYPE ? ? ? ?VALUE
------------------------------------ ----------- ------------------------------
local_listener ? ? ? ? ? ? ? ? ? ? ? string
remote_listener ? ? ? ? ? ? ? ? ? ? ?string ? ? ?LISTENERS_DEVDB
?
tnsnames.ora
LISTENERS_DEVDB =
? (ADDRESS_LIST =
? ? (ADDRESS = (PROTOCOL = TCP)(HOST = rac1-vip)(PORT = 1521))
? ? (ADDRESS = (PROTOCOL = TCP)(HOST = rac2-vip)(PORT = 1521))
? )
?
listener.ora(除掉SID_LIST_LISTENER_NAME項)
LISTENER_RAC1 =
? (DESCRIPTION_LIST =
? ? (DESCRIPTION =
? ? ? (ADDRESS = (PROTOCOL = TCP)(HOST = rac1-vip)(PORT = 1521)(IP = FIRST))
? ? ? (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.11)(PORT = 1521)(IP = FIRST))
? ? )
? )
3、兩者聯(lián)合使用
Server-Side LB和Client-Side LB不是互斥的,兩者可以一起工作,這個時候客戶端的連接請求會先從地址列表中隨機選擇一個地址,然后向該地址的Listener發(fā)送請求;Listener接到請求后,根據(jù)各個節(jié)點負載情況從中挑選出最合適的節(jié)點轉(zhuǎn)發(fā)連接請求。
總結(jié)
- 上一篇: 【AWR】调整AWR数据采样时间间隔及历
- 下一篇: RAC Failover三种方式