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