SCANIP是ORACLE11G資料庫的新特性,使用它可以簡化用戶端的vip配置,本單位去年搭建ORACLE11 RAC環境時,由於搭建倉促,未對SCANIP進行測試,今年由於業務需要,需在多台用戶端配置SCANIP時,發現SCANIP無法使用,報錯如下:
650) this.width=650;" src="http://www.bkjia.com/uploads/allimg/131228/2242304596-0.jpg" title="1.JPG" />
隨後在google中搜尋解決,但也遇到點問題,特將解決步驟寫下:
測試SCANIP地址
tnsping test
沒有問題。
測試連接埠
telnet 172.16.5.40 1521
正常。
查看linux伺服器hosts配置:
cat /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost
# Public Network
172.16.5.30 test1
172.16.5.31 test2
172.16.5.32 test3
# Private Network
20.20.20.1 test1-priv
20.20.20.2 test2-priv
20.20.20.3 test3-priv
# Public Virtual IP
172.16.5.35 test1-vip
172.16.5.36 test2-vip
172.16.5.37 test3-vip
# Single Client Access Name (SCAN)
172.16.5.40 tscanip
用叢集命令檢查SCANIP狀態:
srvctl status scan
SCAN VIP scan1 is enabled
SCAN VIP scan1 is running on node test1
查看初始化參數檔案
show parameter local_listener
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
local_listener string (DESCRIPTION=(ADDRESS_LIST=(AD
DRESS=(PROTOCOL=TCP)(HOST=test
1-vip)(PORT=1521))))
在這裡需修改local_listener參數,實現SCANIP地址的註冊
修改前先備份初始化參數
create pfile='/home/oracle/bak/spfilebak_20130523_scanip.ora' from spfile;
修改local_listener參數
alter system set local_listener='(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=172.16.5.35)(PORT=1521))))' scope=both sid='test1';
用命令是修改的值直接生效。
alter system register;
第二個節點修改方法和第一個節點的方法一致。分別測試SCANIP和VIP的串連都沒有問題,任務完成。
註:這裡需注意的是HOST主機參數為vip的ip地址,不是scanip的地址,如果填寫的是scanip地址的話,則修改完參數後,scanip能夠正常使用,但如果有用戶端配置使用vip的話,則會出現所示錯誤。
650) this.width=650;" src="http://www.bkjia.com/uploads/allimg/131228/2242302218-1.jpg" title="2.JPG" />
只有分別修改兩個節點的local_listener參數為兩個節點的vip的ip地址,才能夠使scanip和vip地址同時生效!!!
本文出自 “沒落的星辰” 部落格,請務必保留此出處http://260878993.blog.51cto.com/4153537/1208226