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

資訊專欄INFORMATION COLUMN

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

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


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)移配置。


二、JDBC(java進程)


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,采用這種方式可以實現(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:@,可以配置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,但這種寫法使用很方便,當前連接的節(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 (多數(shù)據(jù)源+IP)


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 (多數(shù)據(jù)源+LDAP)


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中間件(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文件中添加對應TNS串配置:

優(yōu)先連節(jié)點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é)點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命令測試數(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ù)庫時,如有搭建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腳本


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 =
  (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é)點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




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

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

相關文章

  • http

    摘要:響應行由協(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)小組進一步...

    rockswang 評論0 收藏0
  • http

    摘要:響應行由協(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)小組進一步...

    lijinke666 評論0 收藏0
  • 學Java編程需要注意的地方

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

    leanxi 評論0 收藏0
  • 【負載均衡 ULB】常見問題指導

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

    Tecode 評論0 收藏0
  • 離大廠近一點《阿里巴巴集團Web安全測試規(guī)范》獨家版

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

    wudengzan 評論0 收藏0

發(fā)表評論

0條評論

IT那活兒

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<