java應用通過jdbc連線資料庫jdbc的串的3種寫法:
1、通過service_name連線的串寫法:jdbc:oracle:thin:@192.168.0.214:1521/db
或jdbc:oracle:thin:@//
如果service_name輸入錯誤,報錯資訊如下:
javax.servlet.ServletException: java.sql.SQLException: Listener refused the connection with the following error: ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
測試執行Java 類,報錯:
java.sql.SQLException: The Network Adapter could not establish the connection
可以嘗試更換對應的 jdbc connection driver,官網的說明如下:
JDBC Thin Driver 11g Causes"Java.Sql.Sqlexception: Io Exception: The Network Adapter Could NotEstablish The Connection" While Connecting to Oracle Database 11g [ID947653.1]
Change the JDBC connection driver class inyour application server from:
oracle.jdbc.driver.OracleDriver
to
oracle.jdbc.OracleDriver
2、通過SID連線的串的寫法:
jdbc:oracle:thin:@192.168.0.30:1521:db
jdbc:oracle:thin:@
如果SID輸入錯誤,報錯資訊如下:
javax.servlet.ServletException: java.sql.SQLException: Listener refused the connection with the following error: ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
3、使用tnsname
jdbc:oracle:thin:@
填寫完全也可:
jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.3)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=db)))
連線rac叢集,最好使用service_name連線:jdbc:oracle:thin:@scan-name:1521/db(scan_ip是寫死在hosts檔案中,如果使用dns伺服器不知是否可以正常連線?),也可以實現分發的功能
針對DG切換問題,如果不考慮IP問題,建議在備庫增加一個service_name,值與主庫一致:alter system set service_names=sdb,db scope=both;增加後即可以保證主備有相同的service_name可以進行連線。
Db_name:對一個資料庫的唯一標識,db_name最多8個字元。
Db_domain:定義一個資料庫所在的域,是資料庫管理員為了更好的管理分散式資料庫而根據實際情況決定的,為了方便管理,可以將其等於網際網路的域。
Global_name:對一個資料庫的唯一標識,oracle建議使用此種方法命名資料庫,該值是在建立資料庫時決定的,預設值為db_name.db_domain,在以後對引數檔案中db_name與db_domain引數的任何修改均不影響global_name的值,如果要修改global_name,只能使用alter database rename golbal_name to
Service_name:該引數是8i後引進的,在之前,使用SID來標識資料庫的一個例項,但是在rac環境中,一個資料庫對應多個例項,設定比較反鎖,因此引進了service_name引數,該引數對應一個資料庫,而不是一個例項,預設值為db_name.db_domain,即等於global_name,一個資料庫可以對應多個service_name,以便實現靈活的配置,可以與SID不相同。
SID、instance_name:例項名稱,用來區分不同的例項,在10G之後instance_name的值是動態從系統中獲得,預設是取自ORACLE_SID,instance_name除了用來區分不同例項之外,在監聽器動態註冊時,還會用於向監聽器註冊。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28258625/viewspace-1442757/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Java的JDBC通過SSH Tunnel連線MySQL資料庫JavaJDBCMySql資料庫
- 常用資料庫JDBC連線寫法資料庫JDBC
- jdbc連線oracle rac資料庫的寫法JDBCOracle資料庫
- java通過jdbc連結資料庫JavaJDBC資料庫
- 常用資料庫JDBC連線寫法 (轉)資料庫JDBC
- java jdbc連線資料庫JavaJDBC資料庫
- [ 轉載]常用資料庫JDBC連線寫法資料庫JDBC
- JDBC連線各種資料庫的字串JDBC資料庫字串
- Oracle 11g RAC通過SCAN IP連線資料庫 - JDBC連線串問題Oracle資料庫JDBC
- JAVA中十六種主流資料庫的JDBC連線字串Java資料庫JDBC字串
- 【LISTENER】資料庫連線串的幾種寫法資料庫
- JDBC連線三種資料庫例子JDBC資料庫
- 各種資料庫的JDBC驅動下載及連線字串URL寫法資料庫JDBC字串
- JDBC 連線資料庫的類JDBC資料庫
- JDBC連線資料庫JDBC資料庫
- JDBC連線各種資料庫的方法(經典)JDBC資料庫
- 【轉載】JDBC連線各種資料庫的字串JDBC資料庫字串
- jdbc獲取對各種資料庫的連線JDBC資料庫
- jdbc獲取各種資料庫連線JDBC資料庫
- java Jdbc連線oracle資料庫連線測試JavaJDBCOracle資料庫
- JDBC、JDBC框架、資料庫事務、資料庫連線池JDBC框架資料庫
- Java 的JDBC 資料庫連線池實現方法JavaJDBC資料庫
- 單例模式在JDBC資料庫連線操作裡的應用單例模式JDBC資料庫
- [zt] JDBC連線Oracle RAC的連線串配置JDBCOracle
- [Sqlite] Java使用jdbc連線Sqlite資料庫進行各種資料操作的詳細過程SQLiteJavaJDBC資料庫
- Java各資料庫jdbc連線,和需要的jar包Java資料庫JDBCJAR
- 應用JDBC連線SQLiteJDBCSQLite
- 【JavaWeb】JDBC連線MySQL資料庫JavaWebJDBCMySql資料庫
- JDBC之連線sqlserver資料庫JDBCSQLServer資料庫
- JDBC連線資料庫步驟JDBC資料庫
- JDBC連線資料庫經驗JDBC資料庫
- JDBC連線各資料庫大全JDBC資料庫
- jdbc獲取資料庫連線JDBC資料庫
- java通過jdbc連線oracle報錯No suitable driverJavaJDBCOracleUI
- oracle連線串的一種寫法Oracle
- JDBC中連線資料庫的常用jar包JDBC資料庫JAR
- 各種資料庫的jdbc驅動下載及連線方式資料庫JDBC
- java連線資料庫時jdbc設定編碼Java資料庫JDBC