重庆思庄Oracle、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3968|回复: 1
打印 上一主题 下一主题

[安装] sysdba连接及dbca报ora-12547丢失连接错误

[复制链接]
跳转到指定楼层
楼主
发表于 2017-7-22 02:26:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天在安装数据库时,除一个人外,其他人在用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%]


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

沙发
发表于 2019-5-29 14:17:59 | 只看该作者
很好,谢谢,解决了我的问题
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2024-5-5 19:15 , Processed in 0.084691 second(s), 19 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表