Oracle監聽與tnsnames檔案標準配置解決監聽無法串連問題
p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Helvetica}p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Helvetica; min-height: 13.0px}
解決一則問題如下:
1.建立立監聽程式報錯:連接埠被佔用
2.ORA-12514:監聽程式當前無法識別串連描述符中請求的服務
解決如下:
1.在Oracle 11g network/admin目錄下建立lintener.ora監聽檔案,配置如下:
# listener.ora Network Configuration File: /u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(SID_NAME = orcl)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = reportdb)(PORT = 1522))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1522))
)
)
ADR_BASE_LISTENER = /u01/app/oracle
2.在 network/admin目錄下建立tnsnames.ora檔案,配置如下:
# tnsnames.ora Network Configuration File: /u01/app/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
LISTENER_ORCL =
(ADDRESS = (PROTOCOL = TCP)(HOST = reportdb)(PORT = 1522))
ORACLR_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1522))
)
(CONNECT_DATA =
(SID = CLRExtProc)
(PRESENTATION = RO)
)
)
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = reportdb)(PORT = 1522))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
3.重啟監聽程式。
lsnrct reload
4.查看監聽程式
[oracle@reportdb ~]$ lsnrctl status
LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 29-8月 -2016 14:27:30
Copyright (c) 1991, 2013, Oracle. All rights reserved.
正在串連到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=reportdb)(PORT=1522)))
LISTENER 的 STATUS
------------------------
別名 LISTENER
版本 TNSLSNR for Linux: Version 11.2.0.4.0 - Production
啟動日期 29-8月 -2016 13:53:16
正常已耗用時間 0 天 0 小時 34 分 14 秒
追蹤層級 off
安全性 ON: Local OS Authentication
SNMP OFF
監聽程式參數檔案 /u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora
監聽程式記錄檔 /u01/app/oracle/diag/tnslsnr/reportdb/listener/alert/log.xml
監聽端點概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=reportdb)(PORT=1522)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1522)))
服務摘要..
服務 "PLSExtProc" 包含 1 個執行個體。
執行個體 "PLSExtProc", 狀態 UNKNOWN, 包含此服務的 1 個處理常式...
服務 "orcl" 包含 1 個執行個體。
執行個體 "orcl", 狀態 UNKNOWN, 包含此服務的 1 個處理常式...
命令執行成功
5.Tnsping ORCL執行個體測試
[oracle@reportdb ~]$ tnsping orcl
TNS Ping Utility for Linux: Version 11.2.0.4.0 - Production on 29-8月 -2016 14:28:07
Copyright (c) 1997, 2013, Oracle. All rights reserved.
已使用的參數檔案:
已使用 TNSNAMES 適配器來解析別名
嘗試串連 (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = reportdb)(PORT = 1522)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl)))
OK (0 毫秒)