lsnrctl status
ps -ef | grep tnslsnr
cd $ORACLE_HOME/network/log
vi listener.log
lsnrctl stop
lsnrctl start
检查监听配置文件
cd $ORACLE_HOME/network/admin
vi listener.ora
检查端口冲突
netstat -tulnp | grep <监听端口>
如果端口被占用,可修改listener.ora中的端口配置
检查环境变量
echo $ORACLE_HOME
echo $PATH
确保ORACLE_HOME设置正确且PATH包含$ORACLE_HOME/bin
检查服务注册
lsnrctl services
如果服务未显示,可能需要手动注册
检查数据库实例状态
SQL> select status from v$instance;
检查动态注册参数
SQL> show parameter service_names
SQL> show parameter local_listener
SQL> show parameter instance_name
手动注册服务
SQL> alter system register;
清理监听日志
> listener.log
配置日志轮转 修改listener.ora添加:
LOG_DIRECTORY_LISTENER=/path/to/logs
LOG_FILE_LISTENER=listener.log
LOG_FILE_SIZE_LISTENER=10240 # 10MB
使用TRACE功能
lsnrctl
LSNRCTL> set current_listener <监听名称>
LSNRCTL> set trc_level admin
LSNRCTL> set trc_file <跟踪文件名>
LSNRCTL> set trc_directory <跟踪目录>
使用tnsping测试连接
tnsping <服务名>
定期监控监听状态
备份配置文件
cp listener.ora listener.ora.bak
cp tnsnames.ora tnsnames.ora.bak
保持系统资源充足
定期维护
通过以上方法,可以系统地诊断和解决Oracle监听服务器的各种异常情况,确保数据库服务的稳定运行。