成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

Oracle_11gR2_SCAN_IP scan ip配置詳解

Oracle_11gR2_SCAN_IP scan ip配置詳解在Oracle 11gR2以前,如果數(shù)據(jù)庫采用了RAC 架構(gòu),在客戶端的tnsnames 中,需要配置多個節(jié)點的連接信息,從而實現(xiàn)諸如負

Oracle_11gR2_SCAN_IP scan ip配置詳解

在Oracle 11gR2以前,如果數(shù)據(jù)庫采用了RAC 架構(gòu),在客戶端的tnsnames 中,需要配置多個節(jié)點的連接信息,從而實現(xiàn)諸如負載均衡,failover 等等RAC 的特性。因此,當(dāng)數(shù)據(jù)庫RAC 集群需要添加或刪除節(jié)點時,需要及時對客戶端機器的tns 進行更新,以免出現(xiàn)安全隱患。

在11gR2中,為了簡化該項配置工作,引入了SCAN (Single Client Access Name )的特性,該特性的好處在于,在數(shù)據(jù)庫與客戶端之間,添加了一層虛擬的服務(wù)層,就是所謂的scan ip 以及scan ip listener ,在客戶端僅需要配置scan ip 的tns 信息,通過scan ip listener ,連接后臺集群數(shù)據(jù)庫。這樣,不論集群數(shù)據(jù)庫是否有添加或者刪除節(jié)點的操作,均不會對client 產(chǎn)生影響。

下面,具體介紹下SCAN (Single Client Access Name)的架構(gòu)以及配置。

首先,簡要的看下在11gR2中,安裝RAC 發(fā)生的巨大變化,在10g 以及11gR1的時代,安裝RAC 的步驟是先安裝CRS ,再安裝DB ,而到了11gR2的時代,crs 與asm 被集成在一起,合稱為GRID ,必須先安裝GRID 后,才能繼續(xù)安裝DB ,否則,你就跟11gR2的RAC 無緣咯 。

而被11gR2引入的SCAN ,就是包含在安裝grid 的過程中。SCAN 的定義,有兩種途徑:

1. 在DNS 中定義域名。

2. 通過oracle 提供的Grid Naming Server(GNS)實現(xiàn)DHCP 自定義。

如果通過dns 來定義,則需要在網(wǎng)絡(luò)中定義3個SCAN IP地址,指向同一個域名,這3個ip 地址必須處于同一個子網(wǎng)內(nèi),同時域名不能太長,否則您打字也麻煩不是,哈哈。另外,SCAN IP 是由oracle clusterware 管理的,因此在主機的集群軟件(如IBM HACMP,HP SERVICE GUARD )中不能將此ip 配置進去,類似于10g 中的vip ,在grid 安裝前,此IP 是無法ping 通的。

范例:

scan-ip.dbaleading.com IN A 192.168.1.111 IN A 192.168.1.112 IN A 192.168.1.113

如果使用GNS 的方式,則必須有DHCP 服務(wù),在cluster 的配置過程中,將會自動向DHCP 服務(wù)器申請3個IP 地址作為SCAN IP使用。

除了SCAN IP ,在cluster 的配置過程中,SCAN IP LISTENER 服務(wù)也會被建立,每個SCAN IP 對應(yīng)一個SCAN IP LISTENER ,并且,為了提升高可用性,3個SCAN IP 以及其對應(yīng)的SCAN IP LISTENER 將被獨立的分配到各個節(jié)點上。如果cluster 中其中某個運行scan ip的節(jié)點出現(xiàn)異常,則其余兩個正常的scan ip節(jié)點將自動接管。

注意,此處有個注意點,如果客戶端是11gR2的版本,則客戶端只需在tns 中配置域名解析,即可實現(xiàn)failover ,如果客戶端版本低于11gR2,則無法通過域名解析出3個SCAN IP 地址,因此如果要實現(xiàn)failover ,必須在客戶端的tns 中配置3個SCAN IP的地址進行解析,這也是為何oracle 強烈建議在使用11gR2數(shù)據(jù)庫時,客戶端也最好使用11gR2的原因。 范例:

$srvctl config scan_listener

SCAN Listener LISTENER_SCAN1 exists. Port: TCP:1521

SCAN Listener LISTENER_SCAN2 exists. Port: TCP:1521

SCAN Listener LISTENER_SCAN3 exists. Port: TCP:1521

$srvctl config scan

SCAN name: scan-ip, Network: 1/192.168.1.0/255.255.255.0/

SCAN VIP name: scan1, IP: /scan-ip.dbaleading.com/192.168.1.111

,

SCAN VIP name: scan2, IP: /scan-ip.dbaleading.com/192.168.1.112

SCAN VIP name: scan3, IP: /scan-ip.dbaleading.com/192.168.1.113

SCAN IP 在數(shù)據(jù)庫中的配置方法,以及如何用SCAN IP

,配置oracle 所謂的自動負載平衡。

既然SCAN IP是跟數(shù)據(jù)庫instance 無關(guān)的,例如一個12節(jié)點的RAC 或者24節(jié)點的RAC ,都只有3個SCAN IP,并且SCAN IP是隨機分布在各個instance 的,那么,SCAN IP LISTENER 如何監(jiān)聽各個節(jié)點的數(shù)據(jù)庫呢,同時,該怎么配置哪個instance 去哪個SCAN IP LISTENER 注冊呢。下面將一一解答。

首先,補充一個概念,在11gR2中,SCAN IP是作為一個新增IP 出現(xiàn)的,原有的CRS 中的VIP 仍然存在,從這里,就能看出一點端倪,在11gR2的RAC 架構(gòu)中,SCAN IP 并非獨立存在的,而是和原有的 VIP結(jié)合在一起的。那么他們是如何工作的呢,先來看下下面這個工作原理圖:

scan ip其實是oracle 在客戶端與數(shù)據(jù)庫之間,新加的一個連接層,當(dāng)有客戶端訪問時,連接到 SCAN IP LISTENER , 而SCAN IP LISTENER接收到連接請求時,會根據(jù) LBA 算法(所謂LBA 算法,就是least loaded instance),將該客戶端的連接請求,轉(zhuǎn)發(fā)給對應(yīng)的instance 上的VIP LISTENER,從而完成了整個客戶端與服務(wù)器的連接過程。

簡化如下:

client -> scan listener -> local listener -> local instance

了解了這個過程以后,對SCAN IP 的整體架構(gòu),就全部清楚了。剩下的,我們再來講一些技術(shù)細節(jié)。

SCAN IP 和 SCAN LISTENER是獨立于RAC 的各個節(jié)點的,而每個節(jié)點的 VIP , VIP LISTENER 是跟instance 綁定的,每個節(jié)點的VIP LISTENER,會監(jiān)聽自己所屬節(jié)點的instance 。

因此,在數(shù)據(jù)庫中,我們需要設(shè)置remote_listener參數(shù),這個參數(shù)設(shè)置很有講究,因為scan ip有3個,scan listener也有三個,但是他們對應(yīng)的是同一個域名,因此,在數(shù)據(jù)庫中,我們需要使用easy connect naming method 方式,就是在sqlnet.ora 的配置文件

,

中,必須有NAMES.DIRECTORY_PATH=(tnsnames,ezconnect)存在。

另外,配置remote_listener的方式也有講究,以前的版本中,我們通常是在tnsnames.ora 中寫好remote_listener的地址以及端口,但是對于scan listener ,不能這么做,必須按照標(biāo)準格式,設(shè)置成REMOTE_LISTENER=SCAN:PORT的形式,以我的測試系統(tǒng)為例,就是 REMOTE_LISTENER=scan-ip.dbaleading.com:1521,而不需要在tnsnames.ora 中進行額外設(shè)置。

經(jīng)過以上設(shè)置后,RAC 數(shù)據(jù)庫的每個節(jié)點的PMON 進程,會用廣播的方式向每個SCAN LISTENER 進行注冊,同時CRS 的后臺進程ONS ,會采集各個節(jié)點的負載狀況,通知scan listener ,以便scan listener根據(jù)負載情況,將新連接分配到當(dāng)前負載最低的節(jié)點上。

標(biāo)簽: