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

作者: 重庆思庄 | 来源:发表于2018-12-05 15:35 被阅读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认证

    相关文章

      网友评论

        本文标题:sysdba连接及dbca报ora-12547丢失连接错误

        本文链接:https://www.haomeiwen.com/subject/mchwcqtx.html