RAC+Dataguard環境中JDBC Failover配置
在rac+dataguard的環境中,為了減少應用當機時間及改動,提高業務的可用性,要求jdbc客戶端配置failover。同時為了很好地做應用分割,又不能load balance。
即在第一個例項不行時,去償試第二個例項,兩個例項都不行時,去償試data guard。這樣的目的看起來簡單,其實有些細小的地方值的注意。
下面是一個配置的例子:
jdbc:oracle:thin:@(description=
(ADDRESS_LIST =
(LOAD_BALANCE=OFF)(FAILOVER=ON)
(ADDRESS = (PROTOCOL = TCP)(HOST = x)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = y)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = z)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = aaaa)
(failover_mode=(type=select)(method=basic))
)
)
其中host x和host y是rac的兩個instance的service ip
z是data guard的ip地址。
這種配置在,應用在第一個例項連不上的情況下(包括主機宕掉;監聽宕掉;例項宕掉但監聽不宕掉三種情況)會去償試第二個例項,第二個例項也連不上的情況下會去償試第三個。
這裡有幾點需要注意:
1。為了達到例項宕掉,但監聽不宕的情況下也行,監聽需要全部是動態註冊的,不允許靜態配置的service name。這個理由很明顯。因為動態註冊的話,當instance宕掉後,其service name就會從監聽中消失,此時應用才會去償試第二個IP地址。如果有靜態配置的話,則由於監聽是可以接受客戶端的請求,將不會去償試第二個IP地址,而是報出oracle not available的錯誤。
2.data guard的監聽配置兩個,平時啟著1526埠,用於歸檔日誌的傳輸,當需要切到data guard時,才將1521埠起來。這樣會防止某些情況下,應用連線到data guard上面來。
3.不能設定remote_listener引數,否則會發生監聽層面的load balance。同時在配置中需要將load_balance設為no或false,以防止發生client 層面的load balance。
ref:
[@more@]來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/350519/viewspace-1051468/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 搭建rac+DataGuard的測試環境
- 請問在JBoss3.0.4環境中怎能配置mysql JDBC?S3MySqlJDBC
- openGauss資料庫JDBC環境連線配置(Eclipse)資料庫JDBCEclipse
- RAC環境STANDBY的FAILOVER切換AI
- 【配置】Mac 中 PyCharm 配置 Anaconda環境MacPyCharm
- app自動化測試環境配置:adb環境配置、monkey環境配置、appium環境配置大全APP
- 環境配置
- java中Hibernate的環境配置Java
- Mac 中 PyCharm 配置 Anaconda環境MacPyCharm
- RAC環境LOGICAL STANDBY的FAILOVER切換AI
- 配置開發環境、生成環境、測試環境開發環境
- Can the JDBC Thin Driver Do Failover by Specifying FAILOVER_MODE?JDBCAI
- Linux中Go環境配置和GoModuleLinuxGo
- LNMP環境中phpadmin配置文件LNMPPHP
- Flutter環境配置Flutter
- php環境配置PHP
- vue – 環境配置Vue
- JAVA環境配置Java
- 一、環境配置
- oracle中的全域性環境變數配置Oracle變數
- 開發環境配置開發環境
- windows 配置JAVA環境WindowsJava
- Mac PHP 環境配置MacPHP
- CentOS 配置 PHP 環境CentOSPHP
- Windows配置java環境WindowsJava
- JAVA 環境配置 CentOSJavaCentOS
- vue 多環境配置Vue
- 配置python環境Python
- 配置聯網環境
- Linux環境配置Linux
- 安卓SDK環境配置安卓
- Java環境配置大全Java
- 配置環境變數變數
- conda環境配置
- IDEA配置環境Idea
- Xcode配置測試環境和線上環境XCode
- 使用Flashback讓Failover資料庫重新加入DG環境AI資料庫
- emacs開發環境配置(4)——rust開發環境Mac開發環境Rust