记录ora-12514TNS监听无法识别连接描述符问题
解决方法:
编辑服务器上的listener.ora
以oracle用户执行:
cd $ORACLE_HOME/network/admin/
编辑监听文件
vim listener.ora
# listener.ora Network Configuration File: /oracle/db/11g/network/admin/listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /oracle/db/11g)#oralce的安装目录
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = testdb) #改成实例的sid
(ORACLE_HOME = /oracle/db/11g) #oralce的安装目录
(SID_NAME = testdb) #填写sid
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.81.240)(PORT = 1521))
)
)
ADR_BASE_TESTDB = /oracle/db
很多人在这里认为就完事,然后重启监听就好了。但是不知道我的为啥就是不行,可能是因为数据库没有重启?所以我在这里重新注册我的服务。
SQL> show parameter local_listen
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
local_listener string
SQL> alter system set local_listener='(ADDRESS=(PROTOCOL=TCP)(HOST=137.0.245.181)(PORT=1521))';
System altered.
SQL> alter system register;
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(ORACLE_HOME = /oracle/db/11g)
(SID_NAME = orcl)
)
)
LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracledb)(PORT = 1521))
)
接着在工具重新连接就可以了,有的时候这个问题换个版本的工具或者instance client就好了。也许这个注册可能和hosts解析又关系,但是在正确的情况下还是无法连接。没有深入了解这到底是为啥,这类解决方案太多了,就当是记录一下。致敬还在自建博客的人。。。。
本文由 xiaobo 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。