ORA-12547: TNS:lost contact_Oracle

[oracle@ebs11fresh ~]$ cd $ORACLE_HOME/network/admin
[oracle@ebs11fresh admin]$ ls -l
total 8424
-rw-r--r--  1 oracle dba     825 Apr 26  2002 libnk59.def
-rw-r--r--  1 oracle dba    1196 Apr 27 14:08 listener.ora
drwxr-xr-x  2 oracle dba    4096 Apr 27 14:26 PROD_ebs11fresh
-rw-r--r--  1 oracle dba 8547867 Apr 27 14:28 prod.log
drwxrwxr-x  2 oracle dba    4096 Jun 25  2003 samples
-rw-r--r--  1 oracle dba     130 Mar 19  2002 shrept.lst
-rw-r--r--  1 oracle dba      24 Aug  8  2000 snmp_ro.ora
-rw-r--r--  1 oracle dba    1038 Apr 20 19:11 tnsnames.ora
[oracle@ebs11fresh admin]$ cd PROD_ebs11fresh
[oracle@ebs11fresh PROD_ebs11fresh]$ ls -l
total 40
-rw-r--r--  1 oracle dba    2 Apr 20 20:23 listener_ifile.ora
-rw-r--r--  1 oracle dba 1277 Apr 20 20:23 listener.ora
-rw-r--r--  1 oracle dba    2 Apr 20 20:23 sqlnet_ifile.ora
-rw-r--r--  1 oracle dba  687 Apr 27 14:26 sqlnet.ora
-rw-r--r--  1 oracle dba 2099 Apr 20 20:23 tnsnames.ora
[oracle@ebs11fresh PROD_ebs11fresh]$ vi sqlnet.ora

ORA-12547: TNS:lost contact_Oracle_02

ORA-12547: TNS:lost contact

现象

装完11.5.10,自己登录没有问题,从其他机器登录报ORA-12547: TNS:lost contact。查数据库Home下的network\admin\prod.log,发现信息:
TNS-12546: TNS:permission denied
 TNS-12560: TNS:protocol adapter error
  TNS-00516: Permission denied

原因

11.5.10默认情况下SQL*Net权限验证只允许本机访问。打开数据库Home下的network\admin\sqlnet.ora,有如下语句:
NAMES.DIRECTORY_PATH=(TNSNAMES, ONAMES,HOSTNAME)
SQLNET.EXPIRE_TIME= 10
sqlnet.authentication_services= (NTS)
tcp.validnode_checking = yes
tcp.invited_nodes=(HUAJHUA.leiko.com)

解决

把上面的tcp.validnode_checking设为no,或者在tcp.invited_nodes加入允许访问的IP或机器名。