使用12c PDB整合環境的總結
從開始使用12c PDB整合環境以來,發現確實不錯,原來11g中整合的難題在這裡得到了解決。
目前存在多套的測試環境,之前整合了一批,基本是採用整合schema的方式,但是後來發現這種方式侷限性太大,最後就是如下圖所示的結構,一半的系統整合完了,還有一半是保留了原來的樣子。
所以整合需要解決的問題就很明顯了,大體總結了下,有下面幾個主要問題。
對於遷移後的連線問題,其實在12c中還是碰到了不少小問題,簡單總結下來。
1.JDBC URL配置變化
如果使用JDBC的連線配置,假設資料庫為testdb
jdbc:oracle:thin:@10.127.xxx: 1525:testdb
修改為:
jdbc:oracle:thin:@10.127.xxx:1525/testdb
2.tnsnames.ora配置
如果使用tnsnames.ora的配置,原有的配置在新版本中SID識別會有問題,需要修改為SERVICE_NAE
testdb =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.127.xxx)(PORT = 1521))
)
(CONNECT_DATA =
(SID = testdb)
(SERVER = DEDICATED)
)
)
修改為:
testdb =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.127.xxx)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = testdb)
(SERVER = DEDICATED)
)
)
3.對於低版本的相容性
如果JDK的版本和驅動版本太低,會丟擲如下的錯誤
java.sql.SQLException: ORA-28040: No matching authentication protocol
這種方式的直接解決就是升級JDK或者客戶端的版本
官方文件 ORA-28040 Using JDBC Connection to 12c Database (Doc ID 2111118.1)明確提到在12c中已經不支援9i的客戶端了。
而對於JDBC的驅動而言,其實想想也蠻有意思,以前的jdbc驅動清一色都是classes12.jar 其實和Java 1.2是有關係的,後面有了ojdbc14.jar,這個和JDK1.4是有關係對的,然後就是ojdbc5.jar,那個時候Java已經改了名稱為Java 5而不是1.5,然後就是ojdbc6.jar,當然就是Java 6,還有現在的ojdbc7.jar,和Java 7有關。滿滿的套路。
目前存在多套的測試環境,之前整合了一批,基本是採用整合schema的方式,但是後來發現這種方式侷限性太大,最後就是如下圖所示的結構,一半的系統整合完了,還有一半是保留了原來的樣子。
所以整合需要解決的問題就很明顯了,大體總結了下,有下面幾個主要問題。
1. 大量的使用者在多個資料庫環境重複
2. 重複的表和資料不易管理
3. 大量的表空間資訊混亂,多則300多個表空間
4. 資料庫版本低,為10gR2
5. 遺留環境目前沒有災備,只有每天的全備匯出
6. 伺服器配置較差,存在當機風險和資料丟失風險
所以基於以上的問題總結,決定遷移至Oracle 12c提高資源使用率,方便統一管理,伺服器最後都會整合到一臺伺服器上,留有一臺作為災備即可。對於遷移後的連線問題,其實在12c中還是碰到了不少小問題,簡單總結下來。
1.JDBC URL配置變化
如果使用JDBC的連線配置,假設資料庫為testdb
jdbc:oracle:thin:@10.127.xxx: 1525:testdb
修改為:
jdbc:oracle:thin:@10.127.xxx:1525/testdb
2.tnsnames.ora配置
如果使用tnsnames.ora的配置,原有的配置在新版本中SID識別會有問題,需要修改為SERVICE_NAE
testdb =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.127.xxx)(PORT = 1521))
)
(CONNECT_DATA =
(SID = testdb)
(SERVER = DEDICATED)
)
)
修改為:
testdb =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.127.xxx)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = testdb)
(SERVER = DEDICATED)
)
)
3.對於低版本的相容性
如果JDK的版本和驅動版本太低,會丟擲如下的錯誤
java.sql.SQLException: ORA-28040: No matching authentication protocol
這種方式的直接解決就是升級JDK或者客戶端的版本
官方文件 ORA-28040 Using JDBC Connection to 12c Database (Doc ID 2111118.1)明確提到在12c中已經不支援9i的客戶端了。
而對於JDBC的驅動而言,其實想想也蠻有意思,以前的jdbc驅動清一色都是classes12.jar 其實和Java 1.2是有關係的,後面有了ojdbc14.jar,這個和JDK1.4是有關係對的,然後就是ojdbc5.jar,那個時候Java已經改了名稱為Java 5而不是1.5,然後就是ojdbc6.jar,當然就是Java 6,還有現在的ojdbc7.jar,和Java 7有關。滿滿的套路。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23718752/viewspace-2127299/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle 12C -- 使用seed PDB建立新的pdbOracle
- 12C關於CDB、PDB建立AWR的方法和總結
- OpenMP 環境變數使用總結變數
- 12C關於CDB、PDB引數的區別和總結
- vi 命令使用--AIX環境下總結AI
- 12C關於CDB、PDB 臨時temp表空間的總結
- 12C關於CDB、PDB 回滾undo表空間的總結
- 12C關於CDB、PDB 日誌檔案redo log的總結
- oracle 12c PDB隨CDB啟動和連結PDB的方式Oracle
- Mongodb總結4-Spring環境使用MongodbMongoDBSpring
- oracle 12c使用dblink克隆pdbOracle
- js執行環境總結JS
- 瑞數6補環境的總結
- 使用Maven整合SSH總結Maven
- 基於 Laradock 環境 Project 的總結Project
- 12c pdb基本操作
- Oracle 12c Relocate PDBOracle
- Oracle 12c 使用Non-CDB來建立PDBOracle
- Oracle 12C 建立使用者連線pdbOracle
- PHPWAMP的優點以及使用方式、PHPWAMP綠色環境和其他整合環境的區別PHP
- Eureka:生產環境優化總結。優化
- SSM整合之CRUD環境搭建整合SSM
- Oracle 12c系列(二)|PDB的建立Oracle
- 當12C PDB遇上JDBCJDBC
- Oracle 12c PDB淺析Oracle
- 12C PDB使用RMAN的4種完全恢復場景
- FreaMarker入門教程,環境整合到使用例項
- Android及Robotium學習總結【環境…Android
- Wp8開發環境搭建總結開發環境
- Oracle 12C RMAN transport tablespace from PDB of RAC CDB to remote PDBOracleREM
- EhCache快取系統在整合環境中的使用詳解快取
- Oracle 12c PDB遷移(一)Oracle
- Oracle 12c系列(六)|Relocate a PDBOracle
- Oracle 12c系列(五)|PDB RefreshOracle
- oracle 12c rman備份pdbOracle
- Oracle 12c PDB淺析(二)Oracle
- 整合開發環境(IDE)的用途?開發環境IDE
- Spring與Web環境整合SpringWeb