1. 无法登陆

system账户无法登陆(当然密码是正确的),出现 ORA-12547, 看提示信息像未链接到server。不过 tnsping SID 也正常。甚至其他普通帐号也能链接查看数据。

user# sqlplus system/pass as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on Tue Sep 8 09:30:04 2015
Copyright (c) 1982, 2009, Oracle. All rights reserved.
ERROR:
ORA-12547: TNS :lost contact when try to connect to Oracle.

2. 修改oracle文件权限

网上搜索了下,大部分人都说修改 $ORACLE_HOME/bin/oracle 文件的权限。

➜ ~ chmod 6751 oracle

OK, 修改之后再登陆。刚刚那个错误没有啦。但是…,又出来了另一个错误ORA-01031。

user# sqlplus system/pass as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on Tue Sep 8 09:34:04 2015
Copyright (c) 1982, 2009, Oracle. All rights reserved.
ERROR:
ORA-01031: insufficient privileges
Enter user-name:

擦,权限不足, 难道我 system 还不作为 sysdba 登录。对于这个问题,网上很多人说需要赋予更多的权限,有的说应该修改密码了。此时我都怀疑是不是我密码错误了。

3. 切换系统账户

后来才发现当前系统用户是 root ,而 oracle 的安装运行用的是 oracle 用户。切换到oracle后登录正常。擦,绕啦一圈发现这问题是最开始的一个小错误造成的。

➜ ~ su - oracle

@resources

  • http://www.dadbm.com/how-to-fix-ora-12547-tns-lost-contact-when-try-to-connect-to-oracle/
  • https://community.oracle.com/thread/2297680