Oracle 11g修改RAC SCAN IP

君落塵發表於2014-11-05
在11gR2中,引入了SCAN(Single Client Access Name)的特性,該特性的好處在於,在資料庫與客戶端之間,新增了一層虛擬的服務層,就是所謂的scan ip以及scan ip listener,在客戶端僅需要配置scan ip的tns資訊,透過scan ip listener,連線後臺叢集資料庫。這樣,不論叢集資料庫是否有新增或者刪除節點的操作,均不會對client產生影響。當有客戶端應用程式使用SCAN ip訪問資料庫時,scan listener會將連線轉發到local listener上。
RAC=
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=SCAN)(PORT=1521))
(CONNECT_DATA=(SERVICE_NAME=RAC))
)
和SCAN ip 相關的ip資訊在SCAN 資源建立的時候就被初始化了。在不使用GNS的情況下:任何對DNS和/etc/hosts 中SCAN 中的變更都不會自動同步到Clusterware中而是要手工執行相關的更新操作。下面介紹一下修改scan ip的具體步驟:
實驗環境:
版本:
Clusterware :11.2.0.2
database    :11.2.0.1
舊scan ip
10.250.7.210
新scan ip
10.250.7.141
10.250.7.142
10.250.7.143
 
1 檢視scan ip的狀態資訊:
 
grid@rac1:/home/grid>srvctl config scan
SCAN 名稱: scan, 網路: 1/10.250.7.0/255.255.255.0/eth0
SCAN VIP 名稱: scan1, IP: /scan/10.250.7.210
grid@rac1:/home/grid>
2 停止scan_listener ,scan 應用
grid@rac1:/home/grid>srvctl stop scan_listener
grid@rac1:/home/grid>srvctl stop scan
 
3 確認 scan_listener,scan 的狀態
grid@rac1:/home/grid>srvctl status scan_listener
SCAN 監聽程式 LISTENER_SCAN1 已啟用
SCAN 監聽程式 LISTENER_SCAN1 未執行
grid@rac1:/home/grid>srvctl status scan
SCAN VIP scan1 已啟用    
SCAN VIP scan1 未執行
grid@rac1:/home/grid>crs_stat -t | grep  scan 
ora.scan1.vip  ora....ip.type OFFLINE   OFFLINE              
grid@rac1:/home/grid>
grid@rac1:/home/grid>
grid@rac1:/home/grid>crs_stat -t | grep  lsnr
ora....ER.lsnr ora....er.type ONLINE    ONLINE    rac1       
ora....N1.lsnr ora....er.type OFFLINE   OFFLINE              
ora....C1.lsnr application    ONLINE    ONLINE    rac1       
ora....C2.lsnr application    ONLINE    ONLINE    rac2
 
4 在所有節點中 /etc/hosts 檔案中修改 scan 對應的ip:
10.250.7.141        scan
10.250.7.142        scan
10.250.7.143        scan
grid@rac1:/home/grid>srvctl modify scan -h
修改 SCAN 名稱。
用法: srvctl modify scan -n
    -n           域名限定的 SCAN 名
    -h                       輸出用法
grid 使用者無權更改scan ip,必須使用root許可權
grid@rac1:/home/grid>srvctl modify scan -n scan 
PRCS-1034 : 無法修改單客戶機訪問名 scan
PRCR-1071 : 無法註冊或更新 資源型別 ora.scan_vip.type
CRS-0245:  User does not have enough privilege to perform. the operation
[root@rac1 ~]# /opt/11202/11.2.0/grid/bin/srvctl modify scan -n scan
 
5 變更後,進行確認:    
[root@rac1 ~]# /opt/11202/11.2.0/grid/bin/srvctl config scan
SCAN 名稱: scan, 網路: 1/10.250.7.0/255.255.255.0/eth0
SCAN VIP 名稱: scan1, IP: /scan/10.250.7.141  <====只有一個scan ip
對於/etc/hosts檔案解析scan ip,因為不能做輪訓的負載均衡,所以這時候scan ip就只能有一個了。
6 重新啟動scan,scan_listener
grid@rac1:/home/grid>srvctl start scan
grid@rac1:/home/grid>srvctl start scan_listener
 
7 確認scan 和scan_listener.ora的狀態:
grid@rac1:/home/grid>crs_stat -t | grep  scan
ora.scan1.vip  ora....ip.type ONLINE    ONLINE    rac2       
grid@rac1:/home/grid>crs_stat -t | grep  lsnr
ora....ER.lsnr ora....er.type ONLINE    ONLINE    rac1       
ora....N1.lsnr ora....er.type ONLINE    ONLINE    rac2       
ora....C1.lsnr application    ONLINE    ONLINE    rac1       
ora....C2.lsnr application    ONLINE    ONLINE    rac2
進行ping測試    
grid@rac1:/home/grid>ping 10.250.7.141
PING 10.250.7.141 (10.250.7.141) 56(84) bytes of data.
64 bytes from 10.250.7.141: icmp_seq=1 ttl=64 time=1.52 ms
64 bytes from 10.250.7.141: icmp_seq=2 ttl=64 time=0.226 ms
--- 10.250.7.141 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.226/0.873/1.520/0.647 ms
grid@rac1:/home/grid>ping 10.250.7.142
PING 10.250.7.142 (10.250.7.142) 56(84) bytes of data.
與修改private ip ,vip 不一樣,修改scan ip 無需停止資料庫例項,asm 或者重啟crs,相對比較簡單!

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

相關文章