使用12c PDB整合環境的總結

jeanron100發表於2016-10-28
從開始使用12c PDB整合環境以來,發現確實不錯,原來11g中整合的難題在這裡得到了解決。
目前存在多套的測試環境,之前整合了一批,基本是採用整合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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章