為什麼有些客戶沒有用11gR2 RAC中scan ip連線資料庫
如果說scan可以負載均衡,可以故障轉換,這些之前版本都已經做到了,感覺不算它的優勢.個人感覺它的優勢是提供統一的名稱來連線資料庫,而且在新增刪除節點的時候不用修改客戶端.
最近發現很多客戶都沒有用scan ip,都還是用的vip,主要有三個原因:
1.資料庫是之前版本升級上來的,之前用vip已經很穩定,不願做無收益的修改.
2.客戶端的tnsnames.ora配置要根據不同的應用模組設定不同的vip順序.
3.需要TAF功能.
除了第一個原因合理外,二和三都是可以透過配置server-side TAF來進行service的優先順序設定和TAF設定來實現.
以下是配置server-side TAF:
##資料庫名:rac11g2 例項名:rac11g21,rac11g22,
##要建的服務名:ractest1,ractest2
##1.使用srvctl命令建service資源
[oracle@rh5806 ~]$ srvctl add service -d rac11g2 -s ractest1 -r rac11g21 -a rac11g22 -P BASIC -y automatic -e SELECT -z 5 -w 180
##2.檢視service資源ractest1的狀態
[oracle@rh5806 ~]$ srvctl status service -d rac11g2 -s ractest1
Service ractest1 is not running.
##3.開啟service資源ractest1的狀態
[oracle@rh5806 ~]$ srvctl start service -d rac11g2 -s ractest1
##4.檢視service資源ractest1的配置資訊
[oracle@rh5806 ~]$ srvctl config service -d rac11g2 -s ractest1
Service name: ractest1
Service is enabled
Server pool: rac11g2_ractest1
Cardinality: 1
Disconnect: false
Service role: PRIMARY
Management policy: AUTOMATIC
DTP transaction: false
AQ HA notifications: false
Failover type: SELECT
Failover method: NONE
TAF failover retries: 5
TAF failover delay: 180
Connection Load Balancing Goal: LONG
Runtime Load Balancing Goal: NONE
TAF policy specification: BASIC
Edition:
Preferred instances: rac11g21
Available instances: rac11g22
--透過lsnrctl status 可以看到在例項rac11g21節點上多出一個ractest1的服務
Service "ractest1" has 1 instance(s).
Instance "rac11g21", status READY, has 1 handler(s) for this service...
##5.相同的方法建service資源ractest2
[oracle@rh5806 ~]$ srvctl add service -d rac11g2 -s ractest2 -r rac11g22 -a rac11g21 -P BASIC -y automatic -e SELECT -z 5 -w 180
[oracle@rh5806 ~]$ srvctl start service -d rac11g2 -s ractest2
##此時可以透過配置客戶端測試是否按優先順序連線.
--以下是測試客戶端的tnsnames.ora
56_118_ractest1 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.118)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ractest1)
)
)
56_118_ractest2 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.118)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ractest2)
)
)
##測試serice資源的TAF功能
[root@rh5806 ~]# ifdown eth0
--此時可以看到service資源已經飄移到例項rac11g22上,也可以透過crs_stat -t或者lsnrctl status檢視
[oracle@rh5807 ~]$ srvctl status service -d rac11g2 -s ractest1
Service ractest1 is running on instance(s) rac11g22
--此時透過客戶端連線56_118_ractest1,連線的已經是例項rac11g22了.
##測試節點恢復後,service資源ractest1的狀態
[root@rh5806 ~]# ifup eth0
--此時需要把service資源relocate回來
[oracle@rh5807 ~]$ srvctl relocate service -h
Temporarily relocates service from one node of the cluster to another.
Usage: srvctl relocate service -d -s {-i -t | -c -n } [-f]
-d Unique name for the database
-s Service name
-i Old instance name
-t New instance name
-c Node name to relocate service from
-n Node name to relocate service to
-f Disconnect all sessions during stop or relocate service operations
-h Print usage
[oracle@rh5807 ~]$ srvctl relocate service -d rac11g2 -s ractest1 -i rac11g22 -t rac11g21
##以下是刪除不再用的service資源
[oracle@rh5807 ~]$ srvctl stop service -d rac11g2 -s ractest1
[oracle@rh5807 ~]$ srvctl remove service -d rac11g2 -s ractest1
最近發現很多客戶都沒有用scan ip,都還是用的vip,主要有三個原因:
1.資料庫是之前版本升級上來的,之前用vip已經很穩定,不願做無收益的修改.
2.客戶端的tnsnames.ora配置要根據不同的應用模組設定不同的vip順序.
3.需要TAF功能.
除了第一個原因合理外,二和三都是可以透過配置server-side TAF來進行service的優先順序設定和TAF設定來實現.
以下是配置server-side TAF:
##資料庫名:rac11g2 例項名:rac11g21,rac11g22,
##要建的服務名:ractest1,ractest2
##1.使用srvctl命令建service資源
[oracle@rh5806 ~]$ srvctl add service -d rac11g2 -s ractest1 -r rac11g21 -a rac11g22 -P BASIC -y automatic -e SELECT -z 5 -w 180
##2.檢視service資源ractest1的狀態
[oracle@rh5806 ~]$ srvctl status service -d rac11g2 -s ractest1
Service ractest1 is not running.
##3.開啟service資源ractest1的狀態
[oracle@rh5806 ~]$ srvctl start service -d rac11g2 -s ractest1
##4.檢視service資源ractest1的配置資訊
[oracle@rh5806 ~]$ srvctl config service -d rac11g2 -s ractest1
Service name: ractest1
Service is enabled
Server pool: rac11g2_ractest1
Cardinality: 1
Disconnect: false
Service role: PRIMARY
Management policy: AUTOMATIC
DTP transaction: false
AQ HA notifications: false
Failover type: SELECT
Failover method: NONE
TAF failover retries: 5
TAF failover delay: 180
Connection Load Balancing Goal: LONG
Runtime Load Balancing Goal: NONE
TAF policy specification: BASIC
Edition:
Preferred instances: rac11g21
Available instances: rac11g22
--透過lsnrctl status 可以看到在例項rac11g21節點上多出一個ractest1的服務
Service "ractest1" has 1 instance(s).
Instance "rac11g21", status READY, has 1 handler(s) for this service...
##5.相同的方法建service資源ractest2
[oracle@rh5806 ~]$ srvctl add service -d rac11g2 -s ractest2 -r rac11g22 -a rac11g21 -P BASIC -y automatic -e SELECT -z 5 -w 180
[oracle@rh5806 ~]$ srvctl start service -d rac11g2 -s ractest2
##此時可以透過配置客戶端測試是否按優先順序連線.
--以下是測試客戶端的tnsnames.ora
56_118_ractest1 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.118)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ractest1)
)
)
56_118_ractest2 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.118)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ractest2)
)
)
##測試serice資源的TAF功能
[root@rh5806 ~]# ifdown eth0
--此時可以看到service資源已經飄移到例項rac11g22上,也可以透過crs_stat -t或者lsnrctl status檢視
[oracle@rh5807 ~]$ srvctl status service -d rac11g2 -s ractest1
Service ractest1 is running on instance(s) rac11g22
--此時透過客戶端連線56_118_ractest1,連線的已經是例項rac11g22了.
##測試節點恢復後,service資源ractest1的狀態
[root@rh5806 ~]# ifup eth0
--此時需要把service資源relocate回來
[oracle@rh5807 ~]$ srvctl relocate service -h
Temporarily relocates service from one node of the cluster to another.
Usage: srvctl relocate service -d
-d
-s
-i
-t
-c
-n
-f Disconnect all sessions during stop or relocate service operations
-h Print usage
[oracle@rh5807 ~]$ srvctl relocate service -d rac11g2 -s ractest1 -i rac11g22 -t rac11g21
##以下是刪除不再用的service資源
[oracle@rh5807 ~]$ srvctl stop service -d rac11g2 -s ractest1
[oracle@rh5807 ~]$ srvctl remove service -d rac11g2 -s ractest1
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28539951/viewspace-1662701/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle 客戶端如何連線到oracle 11gR2資料庫(DNS SCAN IP)Oracle客戶端資料庫DNS
- Oracle 11g RAC通過SCAN IP連線資料庫 - JDBC連線串問題Oracle資料庫JDBC
- 顯示連線Oracle資料庫的客戶端IP地址Oracle資料庫客戶端
- 解決Oracle 11gR2 RAC 無法在客戶端通過scanIP連線資料庫Oracle客戶端資料庫
- 如何配置oracle客戶端連線10g rac 資料庫Oracle客戶端資料庫
- Oracle 11gR2 RAC修改SCAN IPOracle
- ORACLE DG為RAC時使用scan-ip連線資料庫會報 ORA-12545錯誤Oracle資料庫
- 客戶端連線資料庫的方法客戶端資料庫
- Oracle 11gR2 RAC修改SCAN IP地址Oracle
- 配置ORACLE 客戶端連線到資料庫Oracle客戶端資料庫
- oracle 客戶端連線11gR2 SCAN 報ORA-12545錯誤Oracle客戶端
- PLSQL Developer 客戶端沒有TNS監聽,無法連線資料庫SQLDeveloper客戶端資料庫
- 11gr2 rac改IP系列之三:修改SCAN IP為同網段其它IP
- 關於11G 客戶端連線資料庫 SCAN 和 Transparent Application Failover(TAF)客戶端資料庫APPAI
- 獲取SQL Server中連線的客戶端IP地址SQLServer客戶端
- 資料庫連線(2) - 為什麼C3P0連線池那麼慢資料庫
- 客戶端連不上資料庫客戶端資料庫
- 何為資料庫連線池?其工作原理是什麼?資料庫
- 客戶端無法連線資料庫的小問題客戶端資料庫
- PL/SQL developer 遠端連線資料庫 客戶端配置SQLDeveloper資料庫客戶端
- RAC重建SCAN IP
- RAC 增加SCAN IP
- Oracle11gR2 RAC 使用scan IP無法連線資料庫(ORA-12545)問題解決Oracle資料庫
- 連線RAC資料庫中單個例項(一)資料庫
- 連線RAC資料庫中單個例項(二)資料庫
- ESP作為單連線中的TCP客戶端TCP客戶端
- 解決:客戶端連線11gR2 RAC報ORA-12545錯誤客戶端
- 客戶端通過SCAN連線11g Oracle RAC報錯ORA-12537客戶端Oracle
- Oracle RAC中的Public IP, VIP和Internal IP,SCANOracle
- 記一次資料庫遷移到rac11204資料庫連線scan找不到主機資料庫
- jdon framework 為什麼沒有用Event Source 呢Framework
- RAC禁止某個客戶端登入資料庫客戶端資料庫
- 為什麼CDN對移動客戶端加速“沒有”效果客戶端
- 客戶端使用SCNAIP連線11G RAC資料庫報錯ORA-12545解決客戶端AI資料庫
- 客戶端連線RAC報ora-12545客戶端
- 大資料時代,為什麼還需要客戶之聲(VOC)?大資料
- 11.2.0.4 通過 scan ip 連線資料庫報TNS-12537 連線關閉問題總結資料庫
- python中socket建立客戶連線Python