第 1章   数据库server监听错误

1.1.1数据库监听错误

1.1.1.1 问题及现象

server环境为ORACLE11G RAC环境,系统启动后,监听没起来。

[oracle@RAC4 ~]$ lsnrctl status

LSNRCTL for Linux: Version 11.2.0.3.0 - Production on 29-JUN-2015 10:44:45

Copyright (c) 1991, 2011, Oracle.  All rights reserved.



Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))

TNS-12541: TNS:no listener

 TNS-12560: TNS:protocol adapter error

  TNS-00511: No listener

   Linux Error: 111: Connection refused

1.1.1.2 检查思路

当时同事已经检查过CRS、也尝试过使用命令启动监听等步骤。可是启动监听的时候会有下面报错

[oracle@RAC4 ~]$ lsnrctl start

LSNRCTL for Linux: Version 11.2.0.3.0 - Production on 29-JUN-2015 10:51:46

Copyright (c) 1991, 2011, Oracle.  All rights reserved.

Starting /u01/app/oracle/product/11.2.0/db_1/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 11.2.0.3.0 - Production

Log messages written to /u01/app/oracle/diag/tnslsnr/RAC4/listener/alert/log.xml

Error listening on: (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))

TNS-12542: TNS:address already in use

 TNS-12560: TNS:protocol adapter error

  TNS-00512: Address already in use

   Linux Error: 98: Address already in use



Listener failed to start. See the error message(s) above...

竟然说系统已使用,那么理所当然的就去查看1521port和lsn进程

 

[root@RAC4 ~]# ps-ef | grep lsn

grid     52181     1  0 10:04?        00:00:11/u01/*/*/bin/tnslsnrLISTENER_SCAN1 -inherit

root    101600 100759  0 22:30 pts/0    00:00:00 grep lsn

[root@RAC4 ~]#netstat-anp | grep 1521

tcp       0     0xxx.xxx.xxx.xxx:1521          0.0.0.0:*                  LISTEN      52181/tnslsnr     (有些内容不便列出)

发现1521port和/u01/11.2.0/grid/bin/tnslsnrLISTENER_SCAN1-inherit进程存在。所以尝试杀掉此进程

 

[root@RAC4 ~]#kill -9 52181

-bash: kill:(52181) - No suchprocess

杀掉后发现系统提示没有这个进程,再次查询

[root@RAC4 ~]# ps-ef |grep lsn

grid    104147     1  0 23:23?        00:00:00/u01/*/*/bin/tnslsnrLISTENER_SCAN1 -inherit

root    104379 104353  0 23:28 pts/0    00:00:00 grep lsn

又有了。应该是父进程自己主动又给他启动了。查看其父进程是init进程。

[grid@RAC4 ~]$pstree 1

init─┬─MBADataMover───MBADataMover───MBADataMover

├─2*[tnslsnr───2*[{tnslsnr}]]

 

1.1.1.3 出现故障的原因

由于我记得在书上看到过,11G的RAC中SRVCTL能够管理监听,于是尝试使用此命令来启动监听。

1.1.1.4 解决方法

[grid@RAC4 ~]$srvctl start listener -n RAC4

 

[grid@RAC4~]$ exit

logout

[root@RAC4~]# su -oracle

[oracle@RAC4~]$lsnrctl status;

LSNRCTLfor Linux:Version 11.2.0.3.0 - Production on 01-JUL-2015 11:32:45

Copyright(c) 1991,2011, Oracle.  All rightsreserved.

Connectingto(ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))

STATUSof theLISTENER

------------------------

Alias                    LISTENER

Version                  TNSLSNR for Linux: Version11.2.0.3.0 - Production

StartDate               01-JUL-2015 10:38:57

Uptime                   0 days 0 hr. 53 min. 47 sec

TraceLevel              off

Security                 ON: Local OS Authentication

SNMP                     OFF

ListenerParameterFile  /u01/11.2.0/grid/network/admin/listener.ora

ListenerLogFile        /u01/app/oracle/diag/tnslsnr/RAC4/listener/alert/log.xml

ListeningEndpointsSummary...

(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER)))

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=11.10.110.23)(PORT=1521)))

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=11.10.110.25)(PORT=1521)))

ServicesSummary...

Service"+ASM"has 1 instance(s).

Instance"+ASM2", status READY, has1 handler(s) for this service...

Service"RAC3"has 1 instance(s).

Instance"RAC32", status READY, has1 handler(s) for this service...

Service"RAC3XDB"has 1 instance(s).

Instance"RAC32", status READY, has1 handler(s) for this service...

Service"RACDB007"has 1 instance(s).

Instance "RACDB0072",status READY, has1 handler(s) for this service...

Service"RACDB007JL_BJ"has 1 instance(s).

Instance"RACDB007JL2", status READY,has 1 handler(s) for this service...

Service"RACDB007JL_BJXDB"has 1 instance(s).

Instance"RACDB007JL2", status READY,has 1 handler(s) for this service...

Service"RACDB007XDB"has 1 instance(s).

Instance"RACDB0072", status READY, has1 handler(s) for this service...

The commandcompleted successfully

1.1.1.5 知识点

经过这次问题的解决,发现oracle 11G的RAC中有非常多功能都通过集群命令来控制,而不能单一的通过单机管理的方法来控制集群的某些功能

TNS-12541,TNS-12560,TNS-00511,TNS-12542,TNS-12560,TNS-00512数据库启动监听报错的更多相关文章

  1. 启动监听报错:TNS-12537: TNS:connection closed TNS-12560: TNS:protocol adapter error TNS-00507: Connection closed Linux Error: 29: Illegal seek

    启动监听程序报错: 说明:在rhel5.8上安装完成oracle11g数据库后,使用netca创建完监听,启动监听时报错.还未使用dbca创建实例. [oracle@rusky-oracle11g ~ ...

  2. oracle 启动监听报错TNS-12547: TNS:lost contact

    https://blog.csdn.net/liqfyiyi/article/details/7534018

  3. 监听报错 TNS-00525: Insufficient privilege for operation 11gR2 + 连接报错ORA-12537: TNS:connection closed

    1.TNS-00525: Insufficient privilege for operation Started with pid= Listening on: (DESCRIPTION=(ADDR ...

  4. Linux中Oracle启动侦听报错TNS:permission denied的解决方法

    最近在开发环境 oracle 启动侦听的时候,出现了 TNS:permission denied 的问题,通过网上和咨询朋友,最终找到了解决方案,现在共享出来给有需要的朋友. [oracle@orac ...

  5. Oracle几个基础配置问题:ORA-12154: TNS: 无法解析指定的连接标识符、ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务、ORA-12516 TNS监听程序找不到符合协议堆栈要求的可用处理程序

    问题1:ORA-12154: TNS: 无法解析指定的连接标识符 在一台服务器上部署了Oracle客户端,使用IP/SID的方式访问,老是报ORA-12154错误,而使用tnsnames访问却没有问题 ...

  6. 使用PLSql连接Oracle时报错ORA-12541: TNS: 无监听程序

    非常多时候为了优化我们的启动项把oracle的服务禁止了.但是重新启动启动之后使用PLSQL登陆oracle时会出现无监听程序,这说明我们有一些服务没有启动.我们先查看一下oracle的服务是否启动, ...

  7. lsnrctl start 命令未找到 数据库连接报错“ORA-12541: TNS: 无监听程序”

    1. lsnrctl start 命令未找到 或者bash:lsnrctl:command not found. su - oralce        切换用户的时候,中间要有-,而且-的两边有空格, ...

  8. plsql远程访问数据库 解决ora-12541:TNS:无监听程序

    今天在windows server 2012上安装了一个oracle 11g的数据库,但是安装 完成以后发现在我的机器上访问数据库出现错误,ora-12541:TNS:无监听程序. 后来查询了很多资料 ...

  9. 解决PL/SQL Developer连接数据库时出现 “ORA-12541:TNS:无监听程序”错误

    在用PL/SQL Developer连接数据库时出现“ORA-12541:TNS:无监听程序”错误. 1.检查listener.log日志发现下面错误:TNSLSNR for 32-bit Windo ...

  10. 解决windows7无法连接CentOS7系统中oracle问题:ORA-12514 TNS 监听程序当前无法识别

    linux开启后终端按下面输入(容易忘记,记录下): [oracle@localhost ~]$ lsnrctl stop                #先关闭监听服务 [oracle@localh ...

随机推荐

  1. Python 自动化脚本学习(二)

    流程控制 布尔值 temp = True temp = False 比较符号 == != < <= > >= 与或非 and or not 混合布尔的比较 (4<5)an ...

  2. .NET 4 并行(多核)编程系列之一入门介绍

    .NET 4 并行(多核)编程系列之一入门介绍 本系列文章将会对.NET 4中的并行编程技术(也称之为多核编程技术)以及应用作全面的介绍. 本篇文章的议题如下:  1. 并行编程和多线程编程的区别.  ...

  3. 用数据说话,外贸B2C产品选择(上篇)-热门搜索法

    当选择了外贸这条路,那就是选择了跟外国人做生意.那面对全球这么大的市场究竟选什么样的产品才干脱颖而出?什么样的产品才是全球卖家喜欢的呢?什么样的产品才干让自己財源滚滚?我想这都是全部刚開始外贸创业的人 ...

  4. cocos2d-x(quick-lua)读取csv文件

    一.准备一份csv文件 ID,Name,Des,Model ID,名字,描写叙述,图片模型 1,广告,www.benmutou.com,csv.png 2,否认,呵呵,广告什么的,我才不会加,good ...

  5. Linux 下mysql修改数据库存放目录方法和可能遇到的问题

    MySQL版本:5.6.23-enterprise-commercial-advanced ,使用rpm安装linux:Red Hat Enterprise Linux Server release ...

  6. VLC各个Module模块之间共享变量的实现方法

    在做VLC开发的时候,想使用一个模块访问另外一个模块的数据, 比如在网络模块得到了一些数据,想在其他模块得到这些数据进行处理,这时候就需要两个模块共享一些变量. 查看VLC的源码,发现VLC专门有va ...

  7. JavaScript关闭浏览器

    (*^__^*) 嘻嘻……,以前我找关闭浏览器选项卡的代码找不到,我还以为要用后台代码关呢?今天发现只要简单2句JavaScipt代码就可以了.看来很多东西还是在于平时的积累啊的说! 模仿延儿的口气了 ...

  8. jquery创建动态的div

    参考:http://blog.csdn.net/ge_zhiqiang/article/details/6958230

  9. android中页面的返回刷新

    android中从A activity 打开B activity 操作之后返回A activity,并且A activity状态改变就要用到刷新 我就介绍一下我开发中最常用的方法 引用函数 setRe ...

  10. Oracle如何只显示重复数据,或不显示重复数据

    思路:  一.对所有字段进行分组并计数  二.计数大于1的就显示 select * from 表名 group by 字段1,字段2 having count(*)>1 (显示重复)