ora-12537 TNS:connection closed的问题处理

元旦后连续3天处理了3个不同的问题,这个是问题之一。今天稍闲一点,记录如下:
 
1月5号晚上22点多了,偶正在家看书,接到同事一个急救电话,说一台11g的rac数据库通过远程连接其中的一个实例连接报ora-12537错。
通过lsnrctl service:
正在连接到 (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
服务摘要..
服务 "+ASM" 包含 1 个实例。
  实例 "+ASM2", 状态 READY, 包含此服务的 1 个处理程序...
    处理程序:
      "DEDICATED" 已建立:0 已拒绝:0 状态:ready
         LOCAL SERVER
服务 "mzhdb" 包含 1 个实例。
  实例 "mzhdb2", 状态 READY, 包含此服务的 1 个处理程序...
    处理程序:
      "DEDICATED" 已建立:0 已拒绝:12 状态:ready
         LOCAL SERVER
服务 "mzhdbXDB" 包含 1 个实例。
  实例 "mzhdb2", 状态 READY, 包含此服务的 1 个处理程序...
    处理程序:
      "D000" 已建立:0 已被拒绝:0 当前: 0 最大: 1022 状态: ready
         DISPATCHER 
         (ADDRESS=(PROTOCOL=tcp)(HOST=cpnamsii-hdb02)(PORT=37700))
有不少 拒绝的,在另外一个实例上连接正常。
看到这个错误后,我第一个想法是不是他这个数据库做了IP地址的限制,(在以前的我的一篇文章中提到过ip地址限制)如果做了ip限制的话,一般会报这个错误。通过和他沟通,这个库是他昨天新装的,现在还没有做ip限制。既然谈到是新装的(这个同事以前没有安装过rac),因此我开始在想是不是他安装的有问题。
我们知道11g中监听时有grid用户管理的,但是他需要访问oracle用户的一些文件,
grid用户下:
cd $RDBMS_HOME/bin
报权限不足。
查看$RDBMS_HOME目录的用户组和权限,果然有问题:700,而且用户所属的组也有问题。
对照另外一个好的节点修改可这个有问题的节点的目录权限和用户的属性。发现还是没有解决这个问题。
最后查看$RDBMS_HOME/bin/oracle的权限时,也是和另外一个节点一样的,但是发现下面几个文件:

nmo

nmb

nmhs

oradism

jssu

extjob

emtgtctl2

权限不一样,调整和另外一个节点一样的后问题解决,即调整为:

-rws--x--- 1 root   oinstall     44707 01-05 10:23 nmo

-rws--x--- 1 root   oinstall     34436 01-05 10:23 nmb

-rws--x--- 1 root   oinstall     66538 01-05 10:23 nmhs

-rwsr-x--- 1 root   oinstall     71758 2011-09-17 oradism

-rwsr-x--- 1 root   oinstall     43680 01-05 10:23 jssu

-rwsr-x--- 1 root   oinstall   1249619 01-05 10:23 extjob

-rwsr-s--x 1 oracle oinstall     66069 01-05 10:23 emtgtctl2

-rwsr-s--x 1 oracle asmadmin 232399463 01-05 10:24 oracle

 

参考文档:

Applies to:

Oracle Database Configuration Assistant - Version: 11.2.0.1 and later   [Release: 11.2 and later ]
Information in this document applies to any platform.

Symptoms

In environment where listener home (including SCAN listener which resides in Grid Infrastructure/ASM home) and database home are owned by different OS user, ORA-12537 could happen when connecting through listener, when creating database through DBCA, or when installing database software and creating a database in runInstaller. Job Role Separation is a typical example as SCAN and local grid home listener is owned differently than database.

Error detail

12537, 00000, "TNS:connection closed"
// *Cause: "End of file" condition has been reached; partner has disconnected.
// *Action: None needed; this is an information message.


Before the error is reported, connection could hang for a while, and a core file may also be generated.

Screen output:

SQL> conn system/xxx@OSES
ERROR:
ORA-12537: TNS:connection closed

OR

PRCR-1079 : Failed to start resource ora.db11.db
CRS-5011: Check of resource db11 failed: details at ..
CRS-2674: Start of ora.db11.db on racnode1 failed
ORA-12546: TNS:permission denied

 

listener_scann.log or listener.log

TNS-12518: TNS:listener could not hand off client connection
TNS-12546: TNS:permission denied
 TNS-12560: TNS:protocol adapter error
  TNS-00516: Permission denied
   Linux Error: 13: Permission denied

OR

TNS-12518: TNS:listener could not hand off client connection
TNS-12547: TNS:lost contact
 TNS-12560: TNS:protocol adapter error
  TNS-00517: Lost contact
   Linux Error: 32: Broken pipe

 

runInstaller error if installing

INFO: Starting Output Reader Threads for process /ocw/grid/bin/kfod
INFO: Parsing KFOD-00300: OCI error [-1] [OCI error] [ORA-12547: TNS:lost contact
INFO: Parsing ] [12547]
INFO: Parsing
INFO: The process /ocw/grid/bin/kfod exited with code 1
..
SEVERE: [FATAL] [INS-30502] No ASM disk group found.
   CAUSE: There were no disk groups managed by the ASM instance +ASM1.

 

Cause


1. Listener owner (including SCAN listener) can not access oracle binary in database home:

As listener owner:

$ ls -l $RDBMS_HOME/bin/oracle
ls: /home/oracle/app/oracle/product/11.2/db/bin/oracle: Permission denied



2. Oracle binary in database home has wrong permission:

ls -l $RDBMS_HOME/bin/oracle
-rwxr-x--x 1 oracle asmadmin 184286251 Aug  9 16:25 /home/oracle/app/oracle/product/11.2/db/bin/oracle


The permission "-rwxr-x--x" is wrong as it's missing suid bit, oracle binary should have permission of 6751:

-rwsr-s--x 1 oracle asmadmin 184286251 Aug  9 16:25 /home/oracle/app/oracle/product/11.2/db/bin/oracle


Note: If Job Role Separation is in place, the group will be , otherwise it will be


3. File System for database home does not support setuid/suid or has nosetuid/nosuid set:

mount| grep
/home/oracle on /dev/dsk/diskoracle read/write/nosuid..

 

Solution

Solution is to make sure file system for database home has setuid/suid set, database binary($RDBMS_HOME/bin/oracle) has correct ownership and permission, and listener owner is able to access database oracle binary (as listener owner, "ls -l $RDBMS_HOME/bin/oracle" will tell)

If its Job Role Separation environment, please refer to the following document:

Oracle® Grid Infrastructure
Installation Guide
11g Release 2 (11.2)

Oracle ASM Job Role Separation Option with SYSASM

References

NOTE:970619.1 - ORA-12545 or ORA-12537 Reported while Connecting to RAC through SCAN name
NOTE:975457.1 - How to Troubleshoot Connectivity Issue with 11gR2 SCAN Name

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

转载于:http://blog.itpub.net/12129601/viewspace-752415/

你可能感兴趣的:(ora-12537 TNS:connection closed的问题处理)