一次oralce数据库启动不起来的解决过程
2017-07-10 17:38
225 查看
前两天,开发的oracle库连不上,连接数据库时候报:连接Oracle时报错ORA-12541: TNS: 无监听程序。
表面现象:windows服务管理中,service服务正常启动、listener服务也正常启动,但连接不上。
当时也没有在意,把所有oracleservice关了再启动试试,还是报连不上。由于上面存在多个sid,不是十分必要,手下小兄弟,一股脑给删掉了,orcl服务倒是能用了。但保留的另一个sid还是不行。他尝试网上的方法,重新建立了监听,修改了 dbhome_1\NETWORK\ADMIN下的listener.ora 和tnsnames.ora 也于事无补。
没办法,只能我来搞了,听了他的解决思路,我分析了下,还是要修改listener.ora 等文件,但不能像没头苍蝇一样去解决。重建了listener,在服务里看上去貌似是好的,可能存在问题我们不可知。于是我先查看listener状态:
lsnrctl status
果然发现监听状态不正常,报错 ORA-12571 : TNS 包写入程序失败。
网上查了下解决方案:将/network/admin目录下sqlnet.ora 中“SQLNET.AUTHENTICATION_SERVICES=(NTS)”中的NTS改为NONE。
重启监听,再次用lsnrctl status查看状态,发现已经不报tns之类的错误,但是也没有显示状态是正常的,而是指到了tnsnames.ora,类似于(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=“主机名”)(PORT=1521))) 这样的话上。显然这个配置有问题。
此时尝试用客户端连接数据库,报ORA-12505: TNS: 监听程序当前无法识别连接描述符中所给出的SID。
利用以下语句查看hostname
select HOST_NAME from v$instance
发现tnsnames.ora配置中主机名多了域,比如查询主机名叫 dirful,配置里叫(PROTOCOL=TCP)(HOST=“dirful.xx.yy”)(PORT=1521))) ,也就是大家说的要么主机名不对,要么ip不对。进行了修改。
再次重启监听,查看状态
看到了如下类似的话:
经测试,数据库已经正常。
此次总结,对于数据库启动不起来的问题,先从查看监听状态入手。lsnrctl status
表面现象:windows服务管理中,service服务正常启动、listener服务也正常启动,但连接不上。
当时也没有在意,把所有oracleservice关了再启动试试,还是报连不上。由于上面存在多个sid,不是十分必要,手下小兄弟,一股脑给删掉了,orcl服务倒是能用了。但保留的另一个sid还是不行。他尝试网上的方法,重新建立了监听,修改了 dbhome_1\NETWORK\ADMIN下的listener.ora 和tnsnames.ora 也于事无补。
没办法,只能我来搞了,听了他的解决思路,我分析了下,还是要修改listener.ora 等文件,但不能像没头苍蝇一样去解决。重建了listener,在服务里看上去貌似是好的,可能存在问题我们不可知。于是我先查看listener状态:
lsnrctl status
果然发现监听状态不正常,报错 ORA-12571 : TNS 包写入程序失败。
网上查了下解决方案:将/network/admin目录下sqlnet.ora 中“SQLNET.AUTHENTICATION_SERVICES=(NTS)”中的NTS改为NONE。
重启监听,再次用lsnrctl status查看状态,发现已经不报tns之类的错误,但是也没有显示状态是正常的,而是指到了tnsnames.ora,类似于(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=“主机名”)(PORT=1521))) 这样的话上。显然这个配置有问题。
此时尝试用客户端连接数据库,报ORA-12505: TNS: 监听程序当前无法识别连接描述符中所给出的SID。
利用以下语句查看hostname
select HOST_NAME from v$instance
发现tnsnames.ora配置中主机名多了域,比如查询主机名叫 dirful,配置里叫(PROTOCOL=TCP)(HOST=“dirful.xx.yy”)(PORT=1521))) ,也就是大家说的要么主机名不对,要么ip不对。进行了修改。
再次重启监听,查看状态
看到了如下类似的话:
服务 "TESTXDB" 包含 1 个实例。 实例 "test", 状态 READY, 包含此服务的 1 个处理程序... 服务 "test" 包含 1 个实例。 实例 "test", 状态 READY, 包含此服务的 1 个处理程序... 服务 "orcl" 包含 1 个实例。 实例 "orcl", 状态 READY, 包含此服务的 1 个处理程序... 服务 "orclXDB" 包含 1 个实例。 实例 "orcl", 状态 READY, 包含此服务的 1 个处理程序... 命令执行成功
经测试,数据库已经正常。
此次总结,对于数据库启动不起来的问题,先从查看监听状态入手。lsnrctl status
相关文章推荐
- 【windows】查询占用端口的程序——记一次解决webloigc启动失败的过程
- 你所不知道的SQL Server数据库启动过程,以及启动不起来的各种问题的分析及解决技巧
- 记录今天客户的SQLSERVER启动不起来( 错误9003)的解决过程2013-11-26
- 记录一次客户Oracle启动不了的解决过程
- 你所不知道的SQL Server数据库启动过程,以及启动不起来的各种问题的分析及解决技巧
- 你所不知道的SQL Server数据库启动过程,以及启动不起来的各种问题的分析及解决技巧(转)
- 记一次公司仓库数据库服务器死锁过程及解决办法
- 一次误修改sga_max_size值过大后导致数据库无法启动的解决方法
- oralce文件丢失无法启动实例解决过程分享
- 你所不知道的SQL Server数据库启动过程,以及启动不起来的各种问题的分析及解决技巧
- 一次导如数据库时主表数据丢失的解决过程
- SQL Server数据库启动过程,以及启动不起来的各种问题的分析及解决技巧
- sqlserver2017 重装过程中出现“无法找到数据库引擎启动句柄”错误的解决办法
- 记一次公司仓库数据库服务器死锁过程及解决办法
- 你所不知道的SQL Server数据库启动过程,以及启动不起来的各种问题的分析及解决技巧
- 记一次IHS无法启动解决过程
- 一次由于arch参数导致oracle11g2 rac 无法启动解决过程
- 用oralce连接.net客户端出现问题:“数据连接不成功,请检查该数据库是否已启动尝试加载oracle客户端时引发BadImageFormatException.如果在安装32位Oracle客户端组件的情况下以64位模式运行,”的解决办法
- 记一次本机InetAddress.getLocalHost()引起的项目启动变慢及解决过程
- ++编译过程中"没有找到MFC80UD.DLL,因此这个程序未能启动.重新安装应用程序可能会修复此问题"? 的彻底解决