ps -ef|grep tns执行结果如下:
oracle 5516 1 0 2008 ? 00:28:10 /oracle/product/10g/bin/tnslsnr LISTENER -inherit
oracle 5517 5516 0 2008 ? 00:00:00 /oracle/product/10g/bin/tnslsnr LISTENER -inherit
oracle 5518 5517 0 2008 ? 00:00:00 /oracle/product/10g/bin/tnslsnr LISTENER -inherit
oracle 5519 5517 0 2008 ? 00:00:00 /oracle/product/10g/bin/tnslsnr LISTENER -inherit
oracle 13893 5516 0 02:50 ? 00:00:00 /oracle/product/10g/bin/tnslsnr LISTENER -inherit
oracle 15258 15190 0 09:58 pts/3 00:00:00 grep tns
总结如下:
现象:新建oracle数据库的连接不能连上,但是以前数据库连接正常。
原因:oracle监听服务重复,多个进程运行,可能是程序多次启动连接引起,是oracle10g的一个bug
解决办法:kill掉所有重复oracle监听进程,然后再重启监听.
用命令启动TNS:ps -ef|grep tns|grep -v grep|cut -c 9-15|xargs kill -9|lsnrctl start
其它原因:
1、看下监听日志是不是太大了,要是超过1G就清空一下
2、用命令lsof -i tcp:1521 看下端口是不是被占用了。