1. 程式人生 > >Oracle 11gR2 RAC中的SCAN IP

Oracle 11gR2 RAC中的SCAN IP

oracle scan

Oracle 11gR2 中,引入了SCAN(Single ClientAccess Name)的特性。SCAN是一個域名,可以解析至少1個IP,最多解析3個SCAN IP,客戶端可以通過這個SCAN 名字來訪問數據庫,另外SCAN ip必須與public ip和VIP在一個子網。

在11gR2之前配置TNS連接串使用的都是VIP,如果RAC集群添加節點或VIP有變化,就需要對所有的客戶端的TNS配置進行修改,這樣很麻煩,引入SCAN後就省去了這些麻煩。啟用SCAN 之後,會在數據庫與客戶端之間,添加了一層虛擬的服務層,就是SCAN IP和SCAN IP Listener,在客戶端僅需要配置SCAN IP的tns信息,通過SCANIP Listener,連接後臺集群數據庫。這樣,不論集群數據庫是否有添加或者刪除節點的操作,均不會對客戶端產生影響,也就不需要修改配置。

1、配置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 功能。

技術分享

註:這部分摘自David的博客http://blog.csdn.net/tianlesoftware/article/details/42712979,我困惑的是使用第一種方法也可以使用SCAN IP來連接到數據庫,但為什麽davide說還是需要使用VIP來連接?

配置完成後就可以在TNS連接串用SCAN IP來連接數據庫了。

2、SCAN工作流程

在啟用SCAN 特性之後,除了多幾個SCAN IP 之外,還會多幾個SCAN IP Listener,每個SCAN IP對應一個SCAN IP Listener,為了性能考慮,每個SCAN IP以及其對應的SCAN IP Listener將被獨立的分配到各個節點上。

技術分享

從Oracle給出的圖中可以看到,圖的右邊是一個4個節點的RAC 集群,所以有4個Local Listener。 配置了3個SCAN IP和3個 SCAN Listeners。這3個SCAN IP 是隨機的落在RAC節點上。

更多概念性的東西可以參考David的博客:http://blog.csdn.net/tianlesoftware/article/details/42712979。

3、實際管理SCAN

在安裝RAC的時候,需要在/etc/hosts文件中配置一條如下的信息:

技術分享

啟動集群後可以看到關於SCAN的服務,它們被分在集群資源中,可以看到有vip服務和監聽服務

技術分享

使用srvctl進行管理scan,下面為查看SCAN和SCAN_LISTENER的狀態和配置

技術分享

下面看看SCAN Listenre的狀態,和監聽的服務

技術分享從上面可以看到這一個SCAN Listener監聽著兩個實例,這是通過remote_listener參數來實現的。

從上在的配置中可以看出,現在這個集群中只有一個SCAN IP,現在增加一個SCAN IP

先在兩個節點的/etc/hosts文件中添加一個新的ip

192.168.56.27 rac-scan

添加完成後,修改SCAN服務

技術分享

從上圖中可以看到新的IP已經添加到了SCAN服務中,但還沒有運行,執行下面命令

技術分享

技術分享

技術分享

從上面的截圖中可以看到雖然報錯了,但scan2服務仍然啟動了,虛擬IP也已經綁定到了網卡上

技術分享但現在還只有一個SCAN Listener,下面啟動第二個監聽:

技術分享

技術分享

技術分享

技術分享

啟動監聽後查看第二個監聽是否有數據庫服務

技術分享測試使用新的SCAN IP連接數據庫

技術分享

連接成功。


參考:Grid Infrastructure Single Client Access Name (SCAN) Explained (文檔 ID 887522.1)

http://docs.oracle.com/cd/E11882_01/rac.112/e41960/toc.htm

http://blog.csdn.net/tianlesoftware/article/details/42712979

本文出自 “DBA Fighting!” 博客,請務必保留此出處http://hbxztc.blog.51cto.com/1587495/1932119

Oracle 11gR2 RAC中的SCAN IP