激情五月天婷婷,亚洲愉拍一区二区三区,日韩视频一区,a√天堂中文官网8

<ul id="buwfs"><strike id="buwfs"><strong id="buwfs"></strong></strike></ul>
    <output id="buwfs"></output>
  • <dfn id="buwfs"><source id="buwfs"></source></dfn>
      <dfn id="buwfs"><td id="buwfs"></td></dfn>
      <div id="buwfs"><small id="buwfs"></small></div>
      <dfn id="buwfs"><source id="buwfs"></source></dfn>
      1. <dfn id="buwfs"><td id="buwfs"></td></dfn>
        始創(chuàng)于2000年 股票代碼:831685
        咨詢熱線:0371-60135900 注冊有禮 登錄
        • 掛牌上市企業(yè)
        • 60秒人工響應
        • 99.99%連通率
        • 7*24h人工
        • 故障100倍補償
        全部產(chǎn)品
        您的位置: 網(wǎng)站首頁 > 幫助中心>文章內(nèi)容

        Oracle監(jiān)聽器(listener)配置心得

        發(fā)布時間:  2012/8/29 17:51:49

        一、配置初衷
        Oracle雖然用了多年,但是一直僅僅是用而已,沒有深入看過oracle的東東。第一次,自己在服務器上完整創(chuàng)建并且配置一個oracle服務器,問題馬上就出現(xiàn)了:

        嚴重: 監(jiān)聽程序未啟動或數(shù)據(jù)庫服務未注冊到該監(jiān)聽程序。啟動該監(jiān)聽程序并注冊數(shù)據(jù)庫服務, 然后重新運行 EM Configuration Assistant。

        有關詳細資料, 請參閱 D:\Oracle\cfgtoollogs\dbca\orcl\emConfig.log 中的日志文件。

        參考:http://www.linuxidc.com/Linux/2011-09/44122.htm

        但是始終沒有解決。(ps:也可能是我自身問題)

        所以,決定拎起袖子,跨界學習一下Oracle中的監(jiān)聽器吧。

        二、監(jiān)聽器的原理理解

        關于監(jiān)聽器的理解,不妨可以參考這篇文章:http://www.linuxidc.com/Linux/2011-09/42089.htm

        以下,就談談我自己的淺薄的理解吧:

        首先,我覺得監(jiān)聽器的設計使用了代理模式,而監(jiān)聽器正正是代理模式中所描述的代理。當客戶端對數(shù)據(jù)庫發(fā)生請求的時候,監(jiān)聽器就作為這個客戶端的代理,發(fā)出對數(shù)據(jù)庫實例的請求。當數(shù)據(jù)庫實例的server 進程收到監(jiān)聽器轉發(fā)過來的請求時候,會做出響應。而這個響應也是通過監(jiān)聽器轉發(fā)給客戶端。不難發(fā)現(xiàn),客戶端與數(shù)據(jù)庫實例之間的交互是間接完成的,在他們中間就存在著一個中間人-監(jiān)聽器。

        但是,有一點我們需要注意的,客戶端永遠不知道他請求的數(shù)據(jù)庫實例是什么,唯一知道的只是數(shù)據(jù)庫所在的服務器的某個服務的名字以及這個數(shù)據(jù)庫分配給他的用戶名和密碼。這就好比我們?nèi)ベI蘋果產(chǎn)品,我們買的時候去的只是代理商的店面,只知道產(chǎn)品是蘋果公司賣的,但產(chǎn)品到底是由哪家代工公司生產(chǎn)的,作為消費者的我們一無所知。

        但是,歸根到底,總該有那么一個機制,負責維護“服務”,“監(jiān)聽器”,“數(shù)據(jù)庫實例”三者之間的關系吧。答案是有的,請看下面的內(nèi)容。

        三、相應的三個配置文件:sqlnet.ora,tnsnames.ora,listener.ora(路徑:$Oracle_home\NETWORK\ADMIN;默認情況下安裝的話,大概如此:D:\app\Administrator\product\11.2.0\dbhome_2\NETWORK\ADMIN)

        考慮一下,以下的一種情況:

        假如,我們需要連接到一個數(shù)據(jù)庫上的名字為mzoa的實例并且這個數(shù)據(jù)庫實例里面有一個密碼為:a,用戶名為:sysman的賬號。但是,我們不知道這個數(shù)據(jù)庫實例的名字,只知道這個數(shù)據(jù)庫服務器向外提供了一個名為“mzoa”的“服務”,至于我們需要請求的數(shù)據(jù)庫的實例的名字是什么,我們一無所知。但是,盡管如此,我們還是能夠連接上我們需要找到的數(shù)據(jù)庫實例-mzoa。(ps:實例名字“mzoa”與服務名字“mzoa”不是必然相同的,可以在創(chuàng)建實例的時候加以修改的!)

        不信?可以看看下面……

        我們可以在cmd里面完成以下的連接操作:

        C:\Users\Administrator>sqlplus sysman/a@I_AM_SERIVCE

        SQL*Plus: Release 11.2.0.1.0 Production on 星期二 9月 2714:15:162011

        Copyright (c) 1982, 2010, Oracle.  All rights reserved.


        連接到:
        Oracle Database 11g Enterprise Edition Release 11.2.0.1.0- Production
        With the Partitioning, OLAP, Data Mining and Real Application Testing options

        SQL>
         至于為什么能這樣子?我想上面的三個配置文件:sqlnet.ora,tnsnames.ora,listener.ora足以說明問題。

        我們先將這三個配置文件分分類。sqlnet.ora,tnsnames.ora屬于客戶端,listener.ora屬于服務器端。

        第一類,客戶端文件:sqlnet.ora,tnsnames.ora

         在我們上面的操作過程中,我們使用了以下的語句:

        sqlplus sysman/a@I_AM_SERIVCE


        “I_AM_SERIVCE”不是一個“服務”的名字,但是至于這個名字有什么內(nèi)涵。我們需要Oracle客戶端做出解釋。(注意:這里的oracle客戶端指的是oracle客戶端軟件對應的進程集)

        Oracle客戶端是這樣子完成對“I_AM_SERIVCE”這一個名字作出解釋的:

        步驟一:

        查看sqlnet.ora配置文件,內(nèi)容如下:

        SQLNET.AUTHENTICATION_SERVICES= (NTS)

        NAMES.DIRECTORY_PATH= (TNSNAMES,HOSTNAME,EZCONNECT)

        其中第二個條目NAMES.DIRECTORY_PATH,從左至右,指示首先由哪些文件來解釋名字。

        如上面的例子,就是指示,先由TNSNAMES.ora文件,然后是客戶端所在系統(tǒng)的hosts文件……解釋名字

        步驟二:

        因為,sqlnet.ora文件指出先由TNSNAMES.ora文件解釋。

        我們查看TNSNAMES.ora文件,里面關于“I_AM_SERIVCE”有以下的內(nèi)容:

        I_AM_SERIVCE=         
          (DESCRIPTION =
            (ADDRESS = (PROTOCOL = TCP)(HOST =127.0.0.1)(PORT = 1521))
            (CONNECT_DATA =
              (SERVER = DEDICATED)
              (SERVICE_NAME = mzoa)
            )
          )
         

        在這里我們可以清晰看到關于這個“I_AM_SERIVCE”的名字的詳細信息了。通過這個名字,我們可以請求數(shù)據(jù)庫服務器所在地址:127.0.0.1,“服務”的名字是“mzoa”。

        而端口號:1521正是我們這篇文章的主人公監(jiān)聽器(listener)正在監(jiān)聽的端口號。

        通過以上信息,我們可以知道客戶端的請求可以通過訪問服務器“服務”的形式發(fā)送到監(jiān)聽器(listener)上。

         

        第二類,服務器端:listener.ora。

        內(nèi)容以及解釋如下:

        # listener.ora Network Configuration File: D:\app\Administrator\product\11.2.0\dbhome_2\network\admin\listener.ora
        # Generated by Oracle configuration tools.

        #下面定義監(jiān)聽器(LISTENER)進程為哪個實例提供服務
        #revised by kaiwii
        SID_LIST_LISTENER =
          (SID_LIST =
          #實例描述條目1:
            (SID_DESC = #被提供服務的實例;desc:description
              (SID_NAME = CLRExtProc)
              (Oracle_HOME = D:\app\Administrator\product\11.2.0\dbhome_2)
              (PROGRAM = extproc)
              (ENVS = "EXTPROC_DLLS=ONLY:D:\app\Administrator\product\11.2.0\dbhome_2\bin\oraclr11.dll")
            )
          #實例描述條目2:
            (SID_DESC = #被提供服務的實例;desc:description
              (SID_NAME = mzoa)
              (Oracle_HOME = D:\app\Administrator\product\11.2.0\dbhome_2)
              (GLOBAL_DBNAME = mzoa)
            )
           
          )
         
        #一臺數(shù)據(jù)庫可以有不止一個監(jiān)聽器。接下來是,其中一個監(jiān)聽器的詳細描述。
        #這個監(jiān)聽器的名字為“LISTENER”,通過 “LISTENER =”來指定。
        #再向下面就是指定監(jiān)聽器(“LISTENER”)所監(jiān)聽的位置(位置可以不止一個)。而某一個位置,我們可以通過
        #設定監(jiān)聽的協(xié)議,ip,端口等信息來指明。
        #revised by kaiwii
        LISTENER =
          (DESCRIPTION_LIST =
            (DESCRIPTION =
              (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
              (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
              (ADDRESS = (PROTOCOL = TCP)(HOST = SuDa-20110705FF)(PORT = 1521))
            )
          )

        ADR_BASE_LISTENER = D:\app\Administrator


         

        從中,我們不難發(fā)現(xiàn),其實客戶端中考究的“服務”名字貌似在服務器端不起什么作用。監(jiān)聽器都是通過監(jiān)聽某個host下的端口,得到客戶端發(fā)來的請求的,然后,再將此請求發(fā)送到實例中去的。但是,到底是不是這回事。希望看到這篇文章的朋友,可以跟我交流一下。

        三、修改監(jiān)聽器的信息

        具體步驟,可以參考這篇文章:

        Oracle: listener.ora 、sqlnet.ora 、tnsnames.ora的配置及例子 http://www.linuxidc.com/Linux/2011-09/44121.htm

        接下來,就說說我自己的一些看法。

        1、每次修改監(jiān)聽器所涉及到的三個配置文件:sqlnet.ora,tnsnames.ora,listener.ora,必須首先關閉監(jiān)聽器,修改成功后再打開。

        具體做法:a、windows用戶可以通過關閉/開啟服務的方式完成b、通過命令的方式

        2、推薦通過修改配置文件的方式,完成修改工作。

        好吧,就說這些,希望上面的內(nèi)容對你有用!。。。。。


        本文出自:億恩科技【mszdt.com】

        服務器租用/服務器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質保障!--億恩科技[ENKJ.COM]

      2. 您可能在找
      3. 億恩北京公司:
      4. 經(jīng)營性ICP/ISP證:京B2-20150015
      5. 億恩鄭州公司:
      6. 經(jīng)營性ICP/ISP/IDC證:豫B1.B2-20060070
      7. 億恩南昌公司:
      8. 經(jīng)營性ICP/ISP證:贛B2-20080012
      9. 服務器/云主機 24小時售后服務電話:0371-60135900
      10. 虛擬主機/智能建站 24小時售后服務電話:0371-60135900
      11. 專注服務器托管17年
        掃掃關注-微信公眾號
        0371-60135900
        Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權所有  地址:鄭州市高新區(qū)翠竹街1號總部企業(yè)基地億恩大廈  法律顧問:河南亞太人律師事務所郝建鋒、杜慧月律師   京公網(wǎng)安備41019702002023號
          0
         
         
         
         

        0371-60135900
        7*24小時客服服務熱線