故障1:oracle监听无法启动
今天oracle服务突然挂掉,启动监听报错如下
TNS-12537: TNS:connection closed
TNS-12560: TNS:protocol adapter error
TNS-00507: Connection closed
Linux Error: 29: Illegal seek
解决方法:根据网上的各种方法挨个试探,最终解决了问题的方法是
修改listener.ora文件和tnsnames.ora文件,把这两个文件中的
HOST 都改成本机IP地址,再启动监听,可以启动
默认情况下该文件内容:
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST =你的服务器IP地址)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
修改tnsnames.ora文件
orcl =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST =你的服务器IP地址)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
故障2:监听启动以后报错
Alias LISTENER
Version TNSLSNR for Linux: Version 11.2.0.1.0 - Production
Start Date 12-SEP-2019 09:50:46
Uptime 0 days 0 hr. 48 min. 51 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /home/data/oracle/product/11.2.0/db_1/network/admin/listener.ora
Listener Log File /home/data/oracle/diag/tnslsnr/localhost/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=15.15.15.4)(PORT=1521)))
The listener supports no services
The command completed successfully
错误提示The listener supports no services
说明实例没有注册,解决方法:
修改listener.ora文件,在LISTENER前面加上
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = 你的实例ID)
)
)
实例SID_NAME查看方法
show parameter name
show parameter service_names
修改后保存,重新加载监听
lsnrctl reload
lsnrctl status
查看状态,服务成功注册