首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle 監聽配置全攻略:listener.ora、tnsnames.ora、sqlnet.ora 三劍合璧

     編輯:Oracle 資料庫基礎

監聽器角色

獨立於數據庫進程的後台服務,監聽端口(默認 1521),接收客戶端連接請求,完成「握手」後將會話移交給服務器進程,隨後退出通信鏈路。

三大配置文件

文件位置角色
listener.ora服務端定義監聽器名稱、協議/主機/端口、服務實例(SID_LIST)
sqlnet.ora雙端認證方式、名稱解析順序
tnsnames.ora客戶端網絡服務名→連接描述符映射

服務端配置 listener.ora

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
    )
  )

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = ORCL)
      (ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
      (SID_NAME = ORCL)
    )
  )

建議直接編輯文本文件,而非使用 Net Manager。

客戶端配置 tnsnames.ora

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.2)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

STDB =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.3)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = stdb)
    )
  )

常用監聽控制命令

lsnrctl start [LISTENER]      # 啟動
lsnrctl stop [LISTENER]       # 停止
lsnrctl status [LISTENER]     # 查看狀態
lsnrctl services [LISTENER]   # 查看已註冊服務

連通性測試三步驟

  1. tnsping ORCL —— 解析別名、測試網絡達到監聽器;
  2. sqlplus user/pwd@ORCL —— 完整連接測試;
  3. PL/SQL Developer 等 GUI 工具測試。

常見故障排查

  • TNS-12154:tnsnames.ora 找不到別名,或 sqlnet.ora 中 NAMES.DEFAULT_DOMAIN 導致別名被自動加後綴;
  • ORA-12514:tnsnames.ora 中 SERVICE_NAME 與監聽器註冊的不一致;
  • ORA-12541:監聽器未啟動或端口/防火牆阻斷。

關鍵術語辨析

  • DB_NAME:數據庫名(≤8 字符);
  • DB_DOMAIN:域名後綴;
  • GLOBAL_NAME = DB_NAME.DB_DOMAIN;
  • SERVICE_NAME:8i+ 引入,一個數據庫可對應多個服務名,默認 = GLOBAL_NAME;
  • SID:實例標識,單實例環境通常 = DB_NAME;
  • NET SERVICE NAME:客戶端別名,實現位置透明。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved