Oracle數(shù)據(jù)庫的遠程連接可以通過多種方式來實現(xiàn),本文我們主要介紹線上的生產(chǎn)環(huán)境遠程連接Oracle數(shù)據(jù)庫的方法和注意事項,并通過示例來說明,接下來我們就開始介紹。
Oracle數(shù)據(jù)庫常見連接方式主要有如下兩類:
1、Oracle TNS:TNS(transparence Network Substrate透明網(wǎng)絡底層)是Oracle Net的一部分,專門用來管理和配置Oracle數(shù)據(jù)庫和客戶端連接的一個工具,如果通過TNS連接Oracle,那么客戶端必須安裝Oracle client程序。
2、JDBC:是一種針對Java語言的數(shù)據(jù)庫連接,全稱Java Database Connectivity。主要是用來規(guī)范客戶端如何訪問數(shù)據(jù)庫的應用程序接口,并支持增刪改查等API接口。如果通過JDBC連接Oracle,需要安裝Java JDK環(huán)境及ojdbcX.jar驅(qū)動包。不依賴Oracle client程序。
JDBC連接串配置一般有如下三種方式:
使用service_name,配置方式:jdbc:oracle:thin:@//
使用SID,配置方式:jdbc:oracle:thin:@
使用SID,配置方式:jdbc:oracle:thin:@
LDAP是輕量目錄訪問協(xié)議,英文全稱是LightweightDirectory AccessProtocol,目錄服務是一種特殊的數(shù)據(jù)庫系統(tǒng),以樹狀的層次結(jié)構(gòu)來存儲數(shù)據(jù),適用于多讀少寫場景。LDAP本身并不支持連接數(shù)據(jù)庫,而是用來訪問解析存儲在LDAP中的數(shù)據(jù)庫連接配置信息。使用LDAP的優(yōu)點是:針對數(shù)量不斷增加的目錄信息實現(xiàn)統(tǒng)一管理,操作簡單易于維護,支持在任何計算機平臺上都很容易訪問LDAP目錄。
針對生產(chǎn)環(huán)境特點,梳理應用連接oracle數(shù)據(jù)庫的規(guī)范要求如下:
不推薦配置使用scan_ip,原因是scan_ip會根據(jù)節(jié)點連接數(shù)和負載情況動態(tài)解析分配會話連接的節(jié)點,可能會導致GC爭用,影響數(shù)據(jù)庫性能。
統(tǒng)一要求使用虛IP連接數(shù)據(jù)庫。
推薦使用FAILOVER故障轉(zhuǎn)移配置。
Java程序可以通過OCI和Thin兩種方式訪問ORACLE數(shù)據(jù)庫。
1、OCI是一種胖客戶端的連接方式,客戶端通過原生java方法調(diào)用clibrary(即OCI),一般而言采用這種方式需要安裝和配置oracle客戶端環(huán)境。
配置說明:
(1)url=jdbc:oracle:oci:@
url=jdbc:oracle:oci:@(DESCRIPTION =(ADDRESS_LIST =(LOAD_BALANCE = off)(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.21.30)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.21.31)(PORT = 1521)) )(CONNECT_DATA = (service_name = dbsnc) (FAILOVER_MODE =(type = session) (method = basic)(retries = 60)(delay = 5)))) |
(2)JDBC-OCI支持TAF,采用這種方式可以實現(xiàn)failover,當前連接的節(jié)點宕機時,連接的會話會自動進行故障轉(zhuǎn)移而不會斷開。
推薦配置樣例:
程序中使用連接串樣例:
配置文件:
配置文件中連接串的配置示例:
優(yōu)先連節(jié)點1的配置:
url=jdbc:oracle:oci:@(DESCRIPTION =(ADDRESS_LIST =(LOAD_BALANCE = off)(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.21.30)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.21.31)(PORT = 1521)) )(CONNECT_DATA = (service_name = dbsnc) (FAILOVER_MODE =(type = session) (method = basic)(retries = 60)(delay = 5)))) |
優(yōu)先連節(jié)點2的配置:
url=jdbc:oracle:oci:@(DESCRIPTION =(ADDRESS_LIST =(LOAD_BALANCE = off)(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.21.31)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.21.30)(PORT = 1521)) )(CONNECT_DATA = (service_name = dbsnc) (FAILOVER_MODE =(type = session) (method = basic)(retries = 60)(delay = 5)))) |
2、JDBCThin驅(qū)動程序方式連接oracle數(shù)據(jù)庫時,是純java實現(xiàn)tcp/ip的c/s通信,不需要完整安裝Oracle客戶端軟件,以linux.x64+oracle11g為例,只需要下載instantclient-basic-linux.x64-11.2.0.4.0.zip并使用其中的ojdbc6.jar等驅(qū)動文件,同時安裝JDK(建議1.6以上)。
配置說明:
(1)url=jdbc:oracle:thin:@
url=jdbc:oracle:thin:@(DESCRIPTION =(ADDRESS_LIST =(LOAD_BALANCE = off)(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.21.30)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.21.31)(PORT = 1521)) )(CONNECT_DATA = (service_name = dbsnc) (FAILOVER_MODE =(type = session) (method = basic)(retries = 60)(delay = 5)))) |
(2)oracle數(shù)據(jù)庫10.2.0.1版本開始支持TNSName,盡管JDBC-THIN不支持TAF,但這種寫法使用很方便,當前連接的節(jié)點宕機時,客戶端程序重啟或客戶端程序自動重連時能很快連到另外一個節(jié)點。
推薦配置樣例:
程序中使用連接串樣例:
配置文件:
配置文件中連接串的配置示例:
優(yōu)先連節(jié)點1的配置:
url=jdbc:oracle:thin:@(DESCRIPTION =(ADDRESS_LIST =(LOAD_BALANCE = off)(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.21.30)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.21.31)(PORT = 1521)) )(CONNECT_DATA = (service_name = dbsnc) (FAILOVER_MODE =(type = session) (method = basic)(retries = 60)(delay = 5)))) |
優(yōu)先連節(jié)點2的配置:
url=jdbc:oracle:thin:@(DESCRIPTION =(ADDRESS_LIST =(LOAD_BALANCE = off)(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.21.31)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.21.30)(PORT = 1521)) )(CONNECT_DATA = (service_name = dbsnc) (FAILOVER_MODE =(type = session) (method = basic)(retries = 60)(delay = 5)))) |
Weblogic連接oracle數(shù)據(jù)庫可以只依賴JDBC+oracle驅(qū)動包,此配置不需要安裝oracle客戶端。推薦使用Weblogic多數(shù)據(jù)源方式來實現(xiàn)failover,與Weblogic多數(shù)據(jù)源配置樣例(具體前臺配置可參考多數(shù)據(jù)源+LDAP):
1.先配置2個單數(shù)據(jù)源,jdbc連接串推薦使用數(shù)據(jù)庫的虛IP
數(shù)據(jù)源1- dbsnc1:jdbc:oracle:thin@192.168.21.30/dbsnc 數(shù)據(jù)源2- dbsnc2:jdbc:oracle:thin@192.168.21.31/dbsnc |
2、配置多數(shù)據(jù)源dbsnc,選中dbsnc1和dbsnc2兩個一般數(shù)據(jù)源。
Weblogic連接oracle數(shù)據(jù)庫可以只依賴JDBC+oracle驅(qū)動包,此配置不需要安裝oracle客戶端。推薦使用Weblogic多數(shù)據(jù)源方式來實現(xiàn)failover,與Weblogic多數(shù)據(jù)源配置樣例:
1.先配置2個單數(shù)據(jù)源,jdbc連接串推薦使用LDAP
jdbc:oracle:thin:@ldap://192.125.50.245:3060/dbsnc1,cn=OracleContext,dc=chinashsnc,dc=com ldap://192.125.50.246:3060/dbsnc1,cn=OracleContext,dc=chinashsnc,dc=com |
jdbc:oracle:thin:@ldap://192.125.50.245:3060/dbsnc2,cn=OracleContext,dc=chinashsnc,dc=com ldap://192.125.50.246:3060/dbsnc2,cn=OracleContext,dc=chinashsnc,dc=com |
2.配置多數(shù)據(jù)源,選中前面配置的2個單數(shù)據(jù)源:
通過tuxedo中間件連接oracle數(shù)據(jù)庫可以使用TNS方式,需要安裝oracle客戶端。
以某線上生產(chǎn)庫為例:
(1)、如下在oracle客戶端中sqlnet.ora配置優(yōu)先使用TNS:
在oracle客戶端中sqlnet.ora配置優(yōu)先使用TNS NAMES.DIRECTORY_PATH=(TNSNAMES,HOSTNAME,ONAMES) |
(2)、在$ORACLE_HOME/network/admin/tnsnames.ora文件中添加對應TNS串配置:
優(yōu)先連節(jié)點1的配置(dbsnc1_failover):
dbsnc1_failover = |
優(yōu)先連節(jié)點2的配置(dbsnc2_failover):
dbsnc2_failover = ) |
(3)、使用tnsping命令測試數(shù)據(jù)庫連接,可以看到使用TNS解析并連接成功。
(4)、使用tmloadcf命令更新tuxedo數(shù)據(jù)源配置,注意將SqlNet參數(shù)值修改為TNS中已配置好的數(shù)據(jù)源名稱,如下:
OPENINFO="Oracle_XA:Oracle_XA+acc=P/USERNAME/PASSWORD+SesTm=150+LogDir=.+SqlNet=dbsnc1_failover+Loose_Coupling=true" |
通過tuxedo中間件連接oracle數(shù)據(jù)庫時,如有搭建LDAP服務器,推薦使用LDAP進行域名解析。
以某線上生產(chǎn)庫為例:
(1)、如下在oracle客戶端中sqlnet.ora配置優(yōu)先使用ldap:
在oracle客戶端中sqlnet.ora配置優(yōu)先使用TNS NAMES.DIRECTORY_PATH=(LDAP,TNSNAMES,HOSTNAME,ONAMES) |
同時創(chuàng)建ldap.ora文件并添加LDAP服務器配置
(2)、在LDAP服務器(192.125.50.245,192.125.50.246)中添加對應LDAP連接串配置:
優(yōu)先連節(jié)點1的配置(dbsnc1_failover):
# dbsnc1_failover, OracleContext, chinashsnc.com dn: cn=dbsnc1_failover,cn=OracleContext,dc=chinashsnc,dc=com cn: dbsnc1_failover objectclass: top objectclass: orclNetService orclnetdescstring: (DESCRIPTION=(ADDRESS_LIST=(LOAD_BALANCE=off)(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.21.30)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.21.31)(PORT=1521)))(CONNECT_DATA=(service_name=dbsnc)(FAILOVER_MODE=(type=session)(method=basic)(retries=180)(delay=5)))) |
優(yōu)先連節(jié)點2的配置(dbsnc2_failover):
# dbsnc2_failover, OracleContext, chinashsnc.com dn: cn=dbsnc2_failover,cn=OracleContext,dc=chinashsnc,dc=com cn: dbsnc2_failover objectclass: top objectclass: orclNetService orclnetdescstring: (DESCRIPTION=(ADDRESS_LIST=(LOAD_BALANCE=off)(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.21.31)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.21.30)(PORT=1521)))(CONNECT_DATA=(service_name=dbsnc)(FAILOVER_MODE=(type=session)(method=basic)(retries=180)(delay=5)))) |
(3)、使用tnsping命令測試數(shù)據(jù)庫連接,可以看到使用LDAP解析并連接成功。
(4)、使用tmloadcf命令更新tuxedo數(shù)據(jù)源配置,注意將SqlNet參數(shù)值修改為LDAP中已配置好的數(shù)據(jù)源名稱,如下:
OPENINFO="Oracle_XA:Oracle_XA+acc=P/USERNAME/PASSWORD+SesTm=150+LogDir=.+SqlNet=dbsnc1_failover+Loose_Coupling=true" |
(5)、使用tmadm-g命令可以查看當前tuxedo已配置的服務。
Shell腳本連接oracle數(shù)據(jù)庫一般可通過oracle數(shù)據(jù)庫自帶的sqlplus工具,使用靈活方便,需要依賴于客戶端上已安裝oracle客戶端。
1,配置說明:
(1)安裝配置oracle客戶端,設置環(huán)境變量;
(2)oracle客戶端tnsnames.ora文件中連接串配置為failover方式,tnsnames位置:$ORACLE_HOME/network/admin/tnsnames.ora
(3)sqlplus用戶名/密碼@“tnsname中的別名”的方式進行連接時,客戶端需要配置tnsname中的別名。
2,推薦配置樣例:
Shell腳本中連接實例(數(shù)據(jù)庫用戶名,密碼,tnsname中的別名根據(jù)實際情況填寫):
tnsnames.ora文件中連接串的配置示例(failover):
優(yōu)先連節(jié)點1的配置(dbsnc1_failover):
dbsnc1_failover = |
優(yōu)先連節(jié)點2的配置(dbsnc2_failover):
dbsnc2_failover = |
注:tnsnames.ora配置并不是必須的,不使用TNSNAME別名的情況下寫法如下:
sqlplus dbauser/********@(DESCRIPTION=(ADDRESS_LIST=(LOAD_BALANCE=off)(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.21.30)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.21.31)(PORT=1521)))(CONNECT_DATA=(service_name=dbsnc)(FAILOVER_MODE=(type=session)(method=basic)(retries=180)(delay=5)))) |
文章版權歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/130034.html
摘要:響應行由協(xié)議,狀態(tài)碼,狀態(tài)碼的文本描述組成,他們之間使用空格隔開。狀態(tài)碼的文本描述狀態(tài)碼描述說明表示客戶端請求成功。 簡介 在1990年,HTTP就成為WWW的支撐協(xié)議。當時由其創(chuàng)始人WWW之父蒂姆·貝納斯·李(TimBemers—Lee)提出,隨后WWW聯(lián)盟(WWW Consortium)成立,組織了IETE(Internet Engineering Task Force)小組進一步...
摘要:學編程真的不是一件容易的事不管你多喜歡或是多會編程,在學習和解決問題上總會碰到障礙。熟練掌握核心內(nèi)容,特別是和多線程初步具備面向?qū)ο笤O計和編程的能力掌握基本的優(yōu)化策略。 學Java編程真的不是一件容易的事,不管你多喜歡或是多會Java編程,在學習和解決問題上總會碰到障礙。工作的時間越久就越能明白這個道理。不過這倒是一個讓人進步的機會,因為你要一直不斷的學習才能很好的解決你面前的難題...
摘要:的運行狀態(tài)是指什么運行是指整個負載均衡的狀態(tài),只要后端服務器有一臺存活,負載均衡還是運行狀態(tài)。需注意的是,后端狀態(tài)由負載均衡健康檢查確定。輪詢算法能否使所有服務節(jié)點請求數(shù)均衡負載均衡的輪詢算法是針對連接的。ULB的會話保持是如何實現(xiàn)的?請求代理請求代理模式下(HTTP、HTTPS),會話保持功能是利用cookie實現(xiàn)的。ULB會向源端寫cookie,并根據(jù)請求帶有的cookie信息,直接將請...
摘要:今天,我們就離大廠更近一點,共同學習阿里這份阿里巴巴集團安全測試規(guī)范阿里巴巴集團安全測試規(guī)范阿里巴巴集團安全測試規(guī)范背景簡介為了規(guī)避安全風險規(guī)范代碼的安全開發(fā),以及如何系統(tǒng)的進行安全性測試,目前缺少相應的理論和方法支撐。 很多人都知道,在學校學的技術,初創(chuàng)公司的技術,外包公司的技術,自研公司...
閱讀 1353·2023-01-11 13:20
閱讀 1699·2023-01-11 13:20
閱讀 1211·2023-01-11 13:20
閱讀 1902·2023-01-11 13:20
閱讀 4161·2023-01-11 13:20
閱讀 2751·2023-01-11 13:20
閱讀 1397·2023-01-11 13:20
閱讀 3664·2023-01-11 13:20