為什麼有些客戶沒有用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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- RAC 增加SCAN IP
- 記一次資料庫遷移到rac11204資料庫連線scan找不到主機資料庫
- 為什麼我的 PHP 資料庫連線失敗?PHP資料庫
- Oracle RAC修改Scan IP,Public IP的方法Oracle
- Oracle RAC修改public, VIP, SCAN IPOracle
- 資料庫連線(2) - 為什麼C3P0連線池那麼慢資料庫
- Oracle 11gr2修改RAC叢集的scan ip,並處理ORA-12514問題Oracle
- jdbc連線oracle rac資料庫的寫法JDBCOracle資料庫
- 【RAC】如何修改SCAN IP的IP地址、名稱、埠等資訊
- ESP作為單連線中的TCP客戶端TCP客戶端
- python中socket建立客戶連線Python
- IDEA中資料庫連線Idea資料庫
- mysql資料庫連線失敗是什麼原因MySql資料庫
- 11g RAC 修改PUBLIC-IP、VIP、PRIV-IP、SCAN-IP
- 關於go和資料庫連線,客戶端以及驅動的疑問?Go資料庫客戶端
- 大資料時代,為什麼還需要客戶之聲(VOC)?大資料
- iis網站怎麼連線資料庫連線網站資料庫
- mysql資料庫怎麼連線MySql資料庫
- python怎麼連線資料庫Python資料庫
- Java技術分享:什麼是資料庫連線池?Java資料庫
- impala客戶端連線客戶端
- Oracle 11g RAC SCAN ip的原理及配置Oracle
- 用Navicat連線資料庫-資料庫連線(MySQL演示)資料庫MySql
- Oracle 19c中連線RMAN客戶端的連線方法Oracle客戶端
- 什麼是客戶分析,為什麼它很重要?
- Pycharm 怎麼連線 MySQL 資料庫PyCharmMySql資料庫
- 智雲通CRM:CRM資料庫在經營客戶中有什麼作用?資料庫
- 連線資料庫資料庫
- 記錄一次網路連線除錯問題只有tcp客戶端為什麼自己會連線上自己除錯TCP客戶端
- 如何在weka中連線資料庫資料庫
- PHP中的資料庫連線方法PHP資料庫
- 客戶端怎麼連線到伺服器?客戶端伺服器
- Google 工程師:為什麼 CDN 對移動客戶端加速“沒有”效果Go工程師客戶端
- 為什麼有些人沒辦法通過比特幣賺錢?比特幣
- vue專案為什麼有些是pages有些是viewsVueView
- 為什麼連線資料庫的埠號與配置檔案中的埠號不一致?資料庫
- 幽默:為什麼需要後臺?前臺直接連線到資料庫不可以嗎?資料庫
- 資料庫連線池-Druid資料庫連線池原始碼解析資料庫UI原始碼
- 網站連線資料庫怎麼辦網站資料庫