oracle的基本sql介绍linux redhat & OracleOracle数据库管理之道

sysdba连接及dbca报ora-12547丢失连接错误

2018-12-05  本文已影响0人  重庆思庄

今天在安装数据库时,除一个人外,其他人在用dbca创建数据库时,都报ora-12547的错误,

我使用conn / as sysdba,也报这样的错误:

ERROR:

ORA-12547: TNS:lost contact

分析:

1.以为是内核参数有问题,通过检查内核参数,没有看出异常

2.也有人说可能是LD_LIBRARY_PATH=$ORACLE_HOME/lib没有设置的问题,我看了我这里确实没有设置.

但我在不设置该环境变量的情况下,重新安装数据库软件,之后,再去通过dbca创建数据库,也不再出现该问题.说明与这个变量关系不大.

3.有人说通过relink all,也不解决问题

4.也有人说是$ORACLE_HOME/rdbms/lib/config.o大小为零导致,我看了我这里大小不为零

5.也看到说是$ORACLE_HOME/bin/oracle文件权限的问题,权限应为6751,我看了确实是6751,说明不只是这个单纯的问题.

[root@dbserver bin]# ls -ltr oracle

-rwsr-s--x 1 oracle dba 198796777 Jul 22 01:07 oracle

6.关键是grid用户登录都不存在这个问题,就是oracle用户有这个问题.

我突然想起前面安装时,我在付权限时,是先赋予的/u01/app/oracle的oracle:dba,后又对/u01/app赋予了 grid:dba

# chown -R oracle:dba /u01/app/oracle

# chown -R grid:dba /u01/app

# chmod -R 775 /u01/app

这样一来,/u01/app及其下的子目录(当然包含/u01/app/oracle)的所有者,都变为grid:dba了.

[root@dbserver app]# pwd

/u01/app

[root@dbserver app]# ls -ltr

total 12

drwxrwxr-x 9 grid dba 4096 Jul 22 00:43 grid

drwxrwx--- 6 grid dba 4096 Jul 22 01:07 oraInventory

drwxrwxr-x 5 grid dba 4096 Jul 22 01:07 oracle

后面安装oracle软件时,又是使用的oracle用户安装的,因此 $ORACLE_HOME/bin/oracle的所有者,就是oracle,

[root@dbserver bin]# ls -ltr oracle

-rwsr-s--x 1 oracle dba 198796777 Jul 22 01:07 oracle

由于两者不一致,就出现了这个问题,我们试图把$ORACLE_HOME的owner修改为oracle:

修改前:

[root@dbserver db_1]# ls -ld /u01/app/oracle/product/11.2.0/db_1

drwxrwxr-x 74 grid dba 4096 Jul 22 01:07 /u01/app/oracle/product/11.2.0/db_1

修改后:

[root@dbserver db_1]# chown oracle:dba /u01/app/oracle/product/11.2.0/db_1

[root@dbserver db_1]# ls -ld /u01/app/oracle/product/11.2.0/db_1

drwxrwxr-x 74 oracle dba 4096 Jul 22 01:07 /u01/app/oracle/product/11.2.0/db_1

再去以sysdba身份连接,不再报错,问题解决:

[root@dbserver db_1]# su - oracle

[oracle@dbserver ~]$ sqlplus /nolog

SQL*Plus: Release 11.2.0.4.0 Production on Sat Jul 22 02:17:38 2017

Copyright (c) 1982, 2013, Oracle. All rights reserved.

SQL> conn / as sysdba

Connected to an idle instance.

SQL>

回过头来,我们前面的操作步骤,确实是错了,正常的步骤应该是:

先执行这步:

# chown -R grid:dba /u01/app

再执行这步:

# chown -R oracle:dba /u01/app/oracle

最后修改权限:

# chmod -R 775 /u01/app

其实,这个还是ORACLE的ORACLE_BASE和GRID 的ORACLE_BASE在同一目录/u01/app下的原因导致,如果修改为不同的目录,这个问题就可以很好的解决.

附:

metalink上的一遍文章:[size=130%]ORA-600 [spstp: ORACLE_HOME uid does not match euid] When Changing Permissions On $ORACLE_HOME/bin/oracle (文档 ID 747456.1)

[size=130%]

[size=130%] 操作系统跟踪用法:

[size=130%] strace -f -o /tmp/trace.log $ORACLE_HOME/bin/sqlplus / as sysdba

[size=130%]

[size=130%]

oracle认证
上一篇下一篇

猜你喜欢

热点阅读