Oracle 11g RAC SCAN ip的原理及配置

達芬奇的夢發表於2018-03-13
SCAN概念:
    先介紹一下什麼叫SCAN,SCAN(Single Client Access Name)是Oracle從11g R2開始推出的,客戶端可以通過SCAN特性負載均衡地連線到RAC資料庫。所以在Oracle 11gR2 中,引入了SCAN(Single ClientAccess Name)的特性。SCAN是一個域名,可以解析至少1個IP,最多解析3個SCAN IP,客戶端可以通過這個SCAN 名字來訪問資料庫,另外SCAN ip必須與public ip和VIP在一個子網。
SCAN提供一個域名來訪問RAC,域名可以解析1個到3個(注意,最多3個)SCAN IP,我們可以通過DNS或者GNS來解析實現。其中DNS大家都很熟悉,這裡不多說。GNS(Grid Naming Service)則是Oracle 11g R2的新功能,可以通過DHCP服務為節點和SCAN分配VIP和SCAN IP。另外還有個優點是,對於新加入叢集的節點,它會自動分配VIP地址,更新叢集資源,客戶端依然通過SCAN特性負載均衡地連線到新增叢集節點上。DNS和GNS配置與解析相關內容在下面還有說明。
     除了DNS和GNS解析方法外,SCAN也可以使用hosts檔案來解析,但用過的人都知道,此方法不僅在安裝RAC的時候產生問題,後期使用也是存在問題的,比如SCAN域名只能定義一個SCAN IP。所以這種方法也是Oracle不推薦使用的。
但儘管如此,很多生產上依然這樣使用,也就是廢棄了11g的新特性SCAN,而是依然採用VIP連線方式。

SCAN ip 工作原理:



啟用SCAN 之後,會在資料庫與客戶端之間,新增了一層虛擬的服務層,就是SCAN IP和SCAN IP Listener,在客戶端僅需要配置SCAN IP的tns資訊,通過SCANIP Listener,連線後臺叢集資料庫。這樣,不論叢集資料庫是否有新增或者刪除節點的操作,均不會對客戶端產生影響,也就不需要修改配置。

配置SCAN有3種方法:
1. 使用/etc/hosts檔案
這個是我們目前用的最多的方式,但是缺點只能對應一個SCAN IP,該方法Oracle 不推薦,但是簡單,不需要單獨的DNS 伺服器,使用該方法,客戶端還是需要VIP來連結。 Oracle 推薦使用其他的2種方法來實現SCAN 功能。
2. 在DNS中定義域名,只需要在DNS中配置即可實現SCAN 功能。


.


3. 通過Grid Naming Server(GNS),需要配置DNS 和DHCP才能實現SCAN 功能。

.

配置好之後,直接在客戶端的tnsnames裡寫SCAN NAME就可以了,如下:

RACSCAN =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = rac-scan.gns.cndba.com)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = dave)

)

)

 

以後RAC 增加刪除節點,客戶端都不需要修改。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15498/viewspace-1876370/,如需轉載,請註明出處,否則將追究法律責任。

相關文章