本篇文章為大家展示了如何理解Oracle 的“HA”和“LB”及怎樣用腳本測試負(fù)載均衡,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。
為漠河等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及漠河網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、漠河網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!
概述
今天主要介紹一下ORACLE RAC的“HA”和“LB”概念,以及分享一個(gè)腳本測試一下RAC是否兩個(gè)節(jié)點(diǎn)有平均負(fù)載到。
1、相關(guān)概念
HA:High Availiablity 高可用 LB:Load balance 負(fù)載均衡,把負(fù)載均衡的分配到集群中的各個(gè)節(jié)點(diǎn),從而提供整體的吞吐能力。
可用性是指一個(gè)系統(tǒng)可用時(shí)間的比率。
一般使用“平均故障間隔時(shí)間(MTTF)” 和 “平均故障修復(fù)時(shí)間(MTTR)”作為評價(jià)可用的度量標(biāo)準(zhǔn)。
公式:
可用性=MTTF/(MTTF+MTTR)
如果一個(gè)服務(wù)器連續(xù)運(yùn)行6個(gè)月出現(xiàn)了一次故障,修復(fù)使用了20分鐘,那么可用性為:
6個(gè)月/(6個(gè)月+20分鐘)*100=99.92%
2、Rac(Real application cluster)
2.1、Failover(故障轉(zhuǎn)移)
Rac的高可用技術(shù)基礎(chǔ)是Failover,就是指集群中任何一個(gè)節(jié)點(diǎn)的故障都不會影響用戶使用,可以***程度的解決單節(jié)點(diǎn)的故障,接到故障節(jié)點(diǎn)的用戶會被自動(dòng)轉(zhuǎn)移到健康節(jié)點(diǎn),用戶感知不到這種故障切換。
2.2、SCAN(single client access name)
SCAN-VIP是oracle 11gR2引入的一個(gè)非常重要的特性,通過它可以實(shí)現(xiàn)負(fù)載均衡的連接到數(shù)據(jù)庫實(shí)例,scan提供統(tǒng)一的名稱來訪問集群,不需要像10g那種在每個(gè)訪問數(shù)據(jù)庫的客戶端配置多個(gè)vip地址實(shí)現(xiàn)負(fù)載均衡。
添加和刪除節(jié)點(diǎn)的情況下也不需要對客戶端做任何配置修改,就可以實(shí)現(xiàn)所有節(jié)點(diǎn)的負(fù)載均衡。
PS:SCAN只能實(shí)現(xiàn)負(fù)載均衡,自動(dòng)Failover,需要使用service服務(wù)。
3、監(jiān)聽及TAF
3.1、監(jiān)聽
本地監(jiān)聽:公有IP和VIPSCAN監(jiān)聽:SCAN VIP
3.2、TAF(Transparent Application Faiover)透明應(yīng)用程序故障轉(zhuǎn)移
大部分的應(yīng)用系統(tǒng)(例如Tomcat)都是啟動(dòng)時(shí)就建立若干到數(shù)據(jù)庫的長連接,在應(yīng)用程序調(diào)整生命周期內(nèi)重用這些鏈接。未提交事務(wù)會回滾。
鏈接建立以后,應(yīng)用系統(tǒng)運(yùn)行過程中,如果某個(gè)實(shí)例發(fā)生故障,鏈接到這個(gè)實(shí)例上的用戶會被自動(dòng)遷移到其他的健康實(shí)例上。
JDBC不支持TAF。
分為:
client-side TAF(10g用的較多) server-sid TAF(11g常用)
4、測試服務(wù)端的TAF
使用TAF服務(wù)名/scan_ip進(jìn)行連接
查看當(dāng)前連接的實(shí)例是哪個(gè)(例如:rtbrac1)
查詢select instance_name from v$instance
直接shutdown -h now rtbrac1所在的服務(wù)器
sqlplus端不用執(zhí)行exit退出,再次執(zhí)行select instance_name from v$instance,如果等會兒有返回,說明已經(jīng)可以自動(dòng)進(jìn)行failover切換。
查看當(dāng)前scanip在哪個(gè)節(jié)點(diǎn)(應(yīng)該漂移到健康節(jié)點(diǎn))
5、腳本測試TAF服務(wù)端的負(fù)載均衡
1.shell執(zhí)行腳本(taf_load.sh)
#!/bin/sh count=0 while [ $count -lt $1 ] do count=`expr $count + 1` sqlplus -s glogowner/Q5$gEGy4@172.16.10.30:1521/otmdb @/home/oracle/scripts/test.sql done
2.SQL執(zhí)行腳本(test.sql)
col instance_name format a20 select instance_name from v$instance / exit;
3、執(zhí)行taf_load.sh(./taf_load.sh 1000 >> taf_load.log)
查看log對比兩個(gè)實(shí)力的連接負(fù)載情況
[oracle@RFDB1 scripts]$ ./taf_load.sh 1000 >> taf_load.log [oracle@RFDB1 scripts]$ cat taf_load.log |grep "RFDB1" |wc -l 634 [oracle@RFDB1 scripts]$ cat taf_load.log |grep "RFDB2" |wc -l 366
上述內(nèi)容就是如何理解Oracle 的“HA”和“LB”及怎樣用腳本測試負(fù)載均衡,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。