一次TNS-12537错误的诊断

地方公司的数据库出现了错误,监听启动报错TNS-12537

 

 

出现问题的数据库是RAC环境中的一个节点,另一个节点没有问题。

由于问题发生在异地数据库上,暂时无法直接连上,因此所有的信息都是通过别人获取的,想要了解什么信息或者做什么修改也只能远端遥控别人来完成。

告知我的信息是监听无法启动,详细的错误信息为:

bash-3.00$ lsnrctl start

LSNRCTL for Solaris: Version 10.2.0.3.0 - Production on 26-8 -2010 14:18:25

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

启动/data/oracle/product/10.2/database/bin/tnslsnr: 请稍候...

TNSLSNR for Solaris: Version 10.2.0.3.0 - Production
系统参数文件为/data/oracle/product/10.2/database/network/admin/listener.ora
写入/data/oracle/product/10.2/database/network/log/listener.log的日志信息

监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ser2)(PORT=1521)))

正在连接到 (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
TNS-12537: TNS:
连接关闭

 TNS-12560: TNS:
协议适配器错误
  TNS-00507:
连接已关闭

这个错误多半是由于/etc/hosts文件中缺少127.0.0.1 localhost配置造成的,检查/etc/hosts果然发现了一点问题:

bash-3.00$ more /etc/hosts
#
# Internet host table
#
::1     localhost      
127.0.0.1 localhost
172.0.2.63 ser2 loghost
172.0.2.69 ser2-vip
10.0.0.4 ser2-priv
172.0.2.62 ser1
172.0.2.68 ser1-vip
10.0.0.3 ser1-priv

虽然系统配置了127.0.0.1 localhost,但是同时设置IPV6本机配置。

由于系统没有使用IPV6,因此建议将::1 localhost去掉,排除这个IPV6的配置对数据库造成影响。

去掉这行配置后,错误依旧。

查询metalink后发现,如果系统的ORACLE_HOMELD_LIBRARY_PATH变量设置错误,也可能导致这个错误的产生,检查当前环境变量:

bash-3.00$ env | grep LD   
R_SHLIB_LD_LIBRARY_PATH=/etc/emc/rsa/rkm_client/lib
LD_LIBRARY_PATH=/etc/emc/rsa/cst/lib
OLDPWD=/data/oracle/product/10.2/database/network/admin/samples

当前的LD_LIBRARY_PATH果然没有设置OracleLIB目录,但是无论是添加$ORACLE_HOME/lib目录到LD_LIBRARY_PATH环境变量,还是直接从shell中清除掉这个环境变量,都不能解决问题。

检查LISTENER.ORASQLNET.ORA配置,检查监听对应的日志,都没有找到导致问题的真正原因。

最后直到我登陆到远端服务器上,才发现了问题并不是监听启动报错那么简单。

尝试启动监听不仅会报错,还会生成core文件,这说明并不是简单的错误。

而且ASM实例、数据库实例以及监听都没有启动,尝试不通过监听直接连接ASM实例或数据库实例都会报错:

bash-3.00$ export ORACLE_SID=+ASM2
bash-3.00$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.3.0 - Production on 星期四 8 26 14:28:45 2010

Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.

ERROR:
ORA-12547: TNS:
丢失连接


请输入用户名

ERROR:
ORA-12547: TNS:
丢失连接


请输入用户名
ERROR:
ORA-12547: TNS:
丢失连接


SP2-0157:
3 次尝试之后无法连接到 ORACLE, 退出 SQL*Plus
bash-3.00$ export ORACLE_SID=tradedb2
bash-3.00$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.3.0 - Production on 星期四 8 26 14:29:14 2010

Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.

ERROR:
ORA-12547: TNS:
丢失连接


请输入用户名
ERROR:
ORA-12547: TNS:
丢失连接


请输入用户名
ERROR:
ORA-12547: TNS:
丢失连接


SP2-0157:
3 次尝试之后无法连接到 ORACLE, 退出 SQL*Plus
bash-3.00$

感觉是系统存在问题,不然监听这么简单的程序不可能无法启动。

通过DMESG检查系统日志,除了一些光纤卡设备的错误外,并没有发现其他的错误信息:

root@ser2 # dmesg

.
.
.
Aug 25 17:09:54 ser2    Failed to create nodes for pwwn=5006016a41e0ac1c; error=5
Aug 25 17:09:54 ser2 luxadm[190]: [ID 932561 user.error] ID[luxadm.create_fabric_device.2316] configuration failed for line (/devices/pci@8,600000/QLGC,qlc@1/fp@0,0:fc::5006016a41e0ac1c) in file: /etc/cfg/fp/fabric_WWN_map. I/O error
Aug 25 17:09:54 ser2 scsi: [ID 243001 kern.warning] WARNING: /pci@8,600000/QLGC,qlc@1/fp@0,0 (fcp0):
Aug 25 17:09:54 ser2    Failed to create nodes for pwwn=500e09e00bae3f01; error=5
Aug 25 17:09:54 ser2 luxadm[190]: [ID 388738 user.error] ID[luxadm.create_fabric_device.2316] configuration failed for line (/devices/pci@8,600000/QLGC,qlc@1/fp@0,0:fc::500e09e00bae3f01) in file: /etc/cfg/fp/fabric_WWN_map. I/O error
Aug 25 17:09:54 ser2 scsi: [ID 243001 kern.warning] WARNING: /pci@8,600000/QLGC,qlc@1/fp@0,0 (fcp0):
Aug 25 17:09:54 ser2    Failed to create nodes for pwwn=500e09e00bae3f40; error=5
Aug 25 17:09:54 ser2 luxadm[190]: [ID 331394 user.error] ID[luxadm.create_fabric_device.2316] configuration failed for line (/devices/pci@8,600000/QLGC,qlc@1/fp@0,0:fc::500e09e00bae3f40) in file: /etc/cfg/fp/fabric_WWN_map. I/O error
Aug 25 17:09:54 ser2 luxadm[190]: [ID 606181 user.error] ID[luxadm.create_fabric_device.2314] Internal error to process line (/devices/pci@8,600000/QLGC,qlc@2/fp@0,0:fc::5006016241e0ac1c) in file: /etc/cfg/fp/fabric_WWN_map. No such file or directory
Aug 25 17:09:54 ser2 luxadm[190]: [ID 751977 user.error] ID[luxadm.create_fabric_device.2314] Internal error to process line (/devices/pci@8,600000/QLGC,qlc@2/fp@0,0:fc::5006016a41e0ac1c) in file: /etc/cfg/fp/fabric_WWN_map. No such file or directory
Aug 25 17:09:54 ser2 pseudo: [ID 129642 kern.info] pseudo-device: fcp0
Aug 25 17:09:54 ser2 genunix: [ID 936769 kern.info] fcp0 is /pseudo/fcp@0
.
.
.

由于监听无法启动,通过SQLPLUS / AS SYSDBA的方式试图绕开监听也会出现错误,于是打算查询系统中是否存在没有清除的共享内存,但是在执行ipcs的时候出现了更意外的情况:

bash-3.00$ ipcs
IPC status from as of Thu Aug 26 14:45:55 CST 2010
T         ID      KEY        MODE        OWNER    GROUP
Message Queues:
Bad System Call (core dumped)

连执行操作系统命令都会出现CORE DUMP,说明系统的运行状态出现了问题,显然当前的问题已经不是Oracle层面上可以解决的。最终硬件维护人员通过将其他服务器上的/kernel/sys/sparcv9目录下的semsysshmsys覆盖本机上对应的文件,再重启服务器后,错误消失。

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/4227/viewspace-671958/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/4227/viewspace-671958/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值