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