国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

數(shù)據(jù)庫常見連接方式及規(guī)范建議

IT那活兒 / 3701人閱讀
數(shù)據(jù)庫常見連接方式及規(guī)范建議
點(diǎn)擊上方藍(lán)字關(guān)注我們


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ù)庫和客戶端連接的一個(gè)工具,如果通過TNS連接Oracle,那么客戶端必須安裝Oracle client程序。

2、JDBC:是一種針對(duì)Java語言的數(shù)據(jù)庫連接,全稱Java Database Connectivity。主要是用來規(guī)范客戶端如何訪問數(shù)據(jù)庫的應(yīng)用程序接口,并支持增刪改查等API接口。如果通過JDBC連接Oracle,需要安裝Java JDK環(huán)境及ojdbcX.jar驅(qū)動(dòng)包。不依賴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)來存儲(chǔ)數(shù)據(jù),適用于多讀少寫場(chǎng)景。LDAP本身并不支持連接數(shù)據(jù)庫,而是用來訪問解析存儲(chǔ)在LDAP中的數(shù)據(jù)庫連接配置信息。使用LDAP的優(yōu)點(diǎn)是:針對(duì)數(shù)量不斷增加的目錄信息實(shí)現(xiàn)統(tǒng)一管理,操作簡(jiǎn)單易于維護(hù),支持在任何計(jì)算機(jī)平臺(tái)上都很容易訪問LDAP目錄。

針對(duì)生產(chǎn)環(huán)境特點(diǎn),梳理應(yīng)用連接oracle數(shù)據(jù)庫的規(guī)范要求如下:

  • 不推薦配置使用scan_ip,原因是scan_ip會(huì)根據(jù)節(jié)點(diǎn)連接數(shù)和負(fù)載情況動(dòng)態(tài)解析分配會(huì)話連接的節(jié)點(diǎn),可能會(huì)導(dǎo)致GC爭(zhēng)用,影響數(shù)據(jù)庫性能。

  • 統(tǒng)一要求使用虛IP連接數(shù)據(jù)庫。

  • 推薦使用FAILOVER故障轉(zhuǎn)移配置。


二、JDBC(java進(jìn)程)


Java程序可以通過OCI和Thin兩種方式訪問ORACLE數(shù)據(jù)庫。

1、OCI是一種胖客戶端的連接方式,客戶端通過原生java方法調(diào)用clibrary(即OCI),一般而言采用這種方式需要安裝和配置oracle客戶端環(huán)境。

配置說明:

(1)url=jdbc:oracle:oci:@,可以配置tnsnames.ora然后使用TNSName別名,tnsnames.ora配置并不是必須的,不使用TNSNAME別名的情況下連接串寫法如下(以某生產(chǎn)庫為例):

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ì)自動(dòng)進(jìn)行故障轉(zhuǎn)移而不會(huì)斷開。

推薦配置樣例:

程序中使用連接串樣例:

配置文件:

配置文件中連接串的配置示例:

優(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ù)庫時(shí),是純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ū)動(dòng)文件,同時(shí)安裝JDK(建議1.6以上)。

配置說明:

(1)url=jdbc:oracle:thin:@,可以配置tnsnames.ora然后使用TNSName別名,tnsnames.ora配置并不是必須的,不使用TNSNAME別名的情況下連接串寫法如下(以某線上生產(chǎn)為例):

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ī)時(shí),客戶端程序重啟或客戶端程序自動(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 (多數(shù)據(jù)源+IP)


Weblogic連接oracle數(shù)據(jù)庫可以只依賴JDBC+oracle驅(qū)動(dòng)包,此配置不需要安裝oracle客戶端。推薦使用Weblogic多數(shù)據(jù)源方式來實(shí)現(xiàn)failover,與Weblogic多數(shù)據(jù)源配置樣例(具體前臺(tái)配置可參考多數(shù)據(jù)源+LDAP):

  1.先配置2個(gè)單數(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兩個(gè)一般數(shù)據(jù)源。


四、weblogic (多數(shù)據(jù)源+LDAP)


Weblogic連接oracle數(shù)據(jù)庫可以只依賴JDBC+oracle驅(qū)動(dòng)包,此配置不需要安裝oracle客戶端。推薦使用Weblogic多數(shù)據(jù)源方式來實(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ù)源:

五、tuxedo中間件(IP)


通過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文件中添加對(duì)應(yīng)TNS串配置:

優(yōu)先連節(jié)點(diǎn)1的配置(dbsnc1_failover):

dbsnc1_failover =
  (DESCRIPTION =
    (LOAD_BALANCE=OFF)
    (FAILOVER=ON)
    (ADDRESS_LIST =
       (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)
      (SERVER=DEDICATED)
      (FAILOVER_MODE=
        (type = session)
        (method = basic)
        (retries = 180)
        (delay = 5)
      )
    )
  )


優(yōu)先連節(jié)點(diǎn)2的配置(dbsnc2_failover):

dbsnc2_failover =
  (DESCRIPTION =
    (LOAD_BALANCE=OFF)
    (FAILOVER=ON)
    (ADDRESS_LIST =
       (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)
      (SERVER=DEDICATED)
      (FAILOVER_MODE=
        (type = session)
        (method = basic)
        (retries = 180)
        (delay = 5)
      )

 )
  )

(3)、使用tnsping命令測(cè)試數(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中間件(LDAP)


通過tuxedo中間件連接oracle數(shù)據(jù)庫時(shí),如有搭建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)

同時(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ù)庫連接,可以看到使用LDAP解析并連接成功。

(4)、使用tmloadcf命令更新tuxedo數(shù)據(jù)源配置,注意將SqlNet參數(shù)值修改為L(zhǎng)DAP中已配置好的數(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腳本


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)行連接時(shí),客戶端需要配置tnsname中的別名。

2,推薦配置樣例:

Shell腳本中連接實(shí)例(數(shù)據(jù)庫用戶名,密碼,tnsname中的別名根據(jù)實(shí)際情況填寫):

tnsnames.ora文件中連接串的配置示例(failover):

優(yōu)先連節(jié)點(diǎn)1的配置(dbsnc1_failover):

dbsnc1_failover =
  (DESCRIPTION =
    (LOAD_BALANCE=OFF)
    (FAILOVER=ON)
    (ADDRESS_LIST =
       (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)
      (SERVER=DEDICATED)
      (FAILOVER_MODE=
        (type = session)
        (method = basic)
        (retries = 180)
        (delay = 5)
      )
    )
  )

  優(yōu)先連節(jié)點(diǎn)2的配置(dbsnc2_failover):

dbsnc2_failover =
  (DESCRIPTION =
    (LOAD_BALANCE=OFF)
    (FAILOVER=ON)
    (ADDRESS_LIST =
       (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)
      (SERVER=DEDICATED)
      (FAILOVER_MODE=
        (type = session)
        (method = basic)
        (retries = 180)
        (delay = 5)
      )
    )
  )

注: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))))



END




文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/130034.html

相關(guān)文章

  • http

    摘要:響應(yīng)行由協(xié)議,狀態(tài)碼,狀態(tài)碼的文本描述組成,他們之間使用空格隔開。狀態(tài)碼的文本描述狀態(tài)碼描述說明表示客戶端請(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)一步...

    rockswang 評(píng)論0 收藏0
  • http

    摘要:響應(yīng)行由協(xié)議,狀態(tài)碼,狀態(tài)碼的文本描述組成,他們之間使用空格隔開。狀態(tài)碼的文本描述狀態(tài)碼描述說明表示客戶端請(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)一步...

    lijinke666 評(píng)論0 收藏0
  • 學(xué)Java編程需要注意的地方

    摘要:學(xué)編程真的不是一件容易的事不管你多喜歡或是多會(huì)編程,在學(xué)習(xí)和解決問題上總會(huì)碰到障礙。熟練掌握核心內(nèi)容,特別是和多線程初步具備面向?qū)ο笤O(shè)計(jì)和編程的能力掌握基本的優(yōu)化策略。   學(xué)Java編程真的不是一件容易的事,不管你多喜歡或是多會(huì)Java編程,在學(xué)習(xí)和解決問題上總會(huì)碰到障礙。工作的時(shí)間越久就越能明白這個(gè)道理。不過這倒是一個(gè)讓人進(jìn)步的機(jī)會(huì),因?yàn)槟阋恢辈粩嗟膶W(xué)習(xí)才能很好的解決你面前的難題...

    leanxi 評(píng)論0 收藏0
  • 【負(fù)載均衡 ULB】常見問題指導(dǎo)

    摘要:的運(yùn)行狀態(tài)是指什么運(yùn)行是指整個(gè)負(fù)載均衡的狀態(tài),只要后端服務(wù)器有一臺(tái)存活,負(fù)載均衡還是運(yùn)行狀態(tài)。需注意的是,后端狀態(tài)由負(fù)載均衡健康檢查確定。輪詢算法能否使所有服務(wù)節(jié)點(diǎn)請(qǐng)求數(shù)均衡負(fù)載均衡的輪詢算法是針對(duì)連接的。ULB的會(huì)話保持是如何實(shí)現(xiàn)的?請(qǐng)求代理請(qǐng)求代理模式下(HTTP、HTTPS),會(huì)話保持功能是利用cookie實(shí)現(xiàn)的。ULB會(huì)向源端寫cookie,并根據(jù)請(qǐng)求帶有的cookie信息,直接將請(qǐng)...

    Tecode 評(píng)論0 收藏0
  • 離大廠近一點(diǎn)《阿里巴巴集團(tuán)Web安全測(cè)試規(guī)范》獨(dú)家版

    摘要:今天,我們就離大廠更近一點(diǎn),共同學(xué)習(xí)阿里這份阿里巴巴集團(tuán)安全測(cè)試規(guī)范阿里巴巴集團(tuán)安全測(cè)試規(guī)范阿里巴巴集團(tuán)安全測(cè)試規(guī)范背景簡(jiǎn)介為了規(guī)避安全風(fēng)險(xiǎn)規(guī)范代碼的安全開發(fā),以及如何系統(tǒng)的進(jìn)行安全性測(cè)試,目前缺少相應(yīng)的理論和方法支撐。 很多人都知道,在學(xué)校學(xué)的技術(shù),初創(chuàng)公司的技術(shù),外包公司的技術(shù),自研公司...

    wudengzan 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<