PLSQL串連ORACLE詳解

來源:互聯網
上載者:User

oracle網路設定
三個設定檔 listener.ora、sqlnet.ora、tnsnames.ora ,都是放在$ORACLE_HOME/network/admin目錄下。
1.  sqlnet.ora-----通過這個檔案來決定怎麼樣找一個串連中出現的連接字串。
例如我們用戶端輸入
sqlplus sys/oracle@ora
假如我的sqlnet.ora是下面這個樣子
SQLNET.AUTHENTICATION_SERVICES= (NTS)
NAMES.DIRECTORY_PATH= (TNSNAMES,HOSTNAME)
那麼,用戶端就會首先在tnsnames.ora檔案中找ora的記錄.如果沒有相應的記錄則嘗試把ora當作一個主機名稱,通過網路的途徑去解析它的 ip地址然後去串連這個ip上GLOBAL_DBNAME=ora這個執行個體,當然我這裡ora並不是一個主機名稱
如果我是這個樣子
NAMES.DIRECTORY_PATH= (TNSNAMES)
那麼用戶端就只會從tnsnames.ora尋找ora的記錄,括弧中還有其他選項,如LDAP等並不常用。
2.  tnsnames.ora------這個檔案類似於unix 的hosts檔案,提供的tnsname到主機名稱或者ip的對應。
只有當sqlnet.ora中類似NAMES.DIRECTORY_PATH= (TNSNAMES) 這樣,也就是用戶端解析連接字串的順序中有TNSNAMES是,才會嘗試使用這個檔案。
例子:
ORA_TEST =
    (DESCRIPTION =
       (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
       )
      (CONNECT_DATA =
         (SERVER = DEDICATED)
         (SERVICE_NAME = ora)
      )
    )
ORA_TEST:用戶端串連伺服器端使用的服務別名。注意一定要頂行書寫,否則會無法識別服務別名。
PROTOCOL:用戶端與伺服器端通訊的協議,一般為TCP,該內容一般不用改。
HOST:ORACLE伺服器端IP地址或者hostname。確保伺服器端的監聽啟動正常。
PORT:資料庫偵聽正在偵聽的連接埠,可以察看伺服器端的listener.ora檔案或在資料庫偵聽所在的機器的命令提示字元下通過lnsrctl status [listener name]命令察看。此處Port的值一定要與資料庫偵聽正在偵聽的連接埠一樣。
SERVICE_NAME:在伺服器端,用system使用者登陸後,sqlplus> show parameter service_name命令查看。
3.  listener.ora------listener監聽器進程的設定檔
關於listener進程就不多說了,接受遠程對資料庫的接入申請並轉交給oracle的伺服器處理序。所以如果不是使用的遠端串連,listener進程就不是必需的,同樣的如果關閉listener進程並不會影響已經存在的資料庫連接。
例子:
#listener.ora Network Configuration File: #E:/oracle/product/10.1.0/Db_2/NETWORK/ADMIN/listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
    (SID_LIST =
         (SID_DESC =
             (GLOBAL_DBNAME = ora)
             (ORACLE_HOME = E:/oracle/product/10.1.0/Db_2)
             (SID_NAME = ora)
         )
    )
LISTENER =
    (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = hostname)(PORT = 1521))
    )
LISTENER :監聽名稱,可以配置多個監聽,多個監聽的連接埠號碼要區分開來。
GLOBAL_DBNAME :全域資料庫名。通過select * from global_name; 查詢得出
ORACLE_HOME :oracle軟體的跟目錄
SID_NAME :伺服器端(本機)的SID
PROTOCOL:監聽協議,一般都使用TCP
HOST:本機IP地址,雙機時候使用浮動IP
PORT:監聽的連接埠號碼,使用netstat –an 檢查該連接埠不被佔用。
上面一段都是從別人部落格中拷來的,原文地址是:
http://blog.csdn.net/aten_xie/article/details/6174069
最後我自己用pl/sql串連oracle的時候的配置如下:
listener.ora檔案:
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
       (GLOBAL_DBNAME = testdb)
       (ORACLE_HOME = E:\oracle\product\10.2.0\db_1)
       (SID_NAME = testdb)
    )
  )
LISTENER =
    (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 10.101.2.4)(PORT = 1521))
    )
sqlnet.ora 檔案:
SQLNET.AUTHENTICATION_SERVICES= (NTS)
NAMES.DIRECTORY_PATH= (TNSNAMES)
tnsnames.ora 檔案:
FDOL_TEST =
    (DESCRIPTION =
       (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 10.101.2.4)(PORT = 1521))
       )
      (CONNECT_DATA =
         (SERVER = DEDICATED)
         (SERVICE_NAME = testdb)
      )
    )
註:
遠程伺服器ip: 10.101.2.4
連接埠:1521
資料庫:testdb
用pl/sql登陸時候的database就填 FDOL_TEST

 

來源:http://78425665.iteye.com/blog/1201008

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.