美文网首页DBA宝典我爱编程
造成错误“ORA-12547: TNS:lost contact

造成错误“ORA-12547: TNS:lost contact

作者: 小麦苗DB宝 | 来源:发表于2018-02-07 15:06 被阅读36次

    造成错误“ORA-12547: TNS:lost contact”的常见原因有哪些?

    真题1、造成错误“ORA-12547: TNS:lost contact”的常见原因有哪些?

    答案:在执行“sqlplus / as sysdba”时可能会报“ORA-12547: TNS:lost contact”的错误,常见原因有如下几点:

    1、查看操作系统内核参数是否无误

    core file size          (blocks, -c) 0

    data seg size           (kbytes, -d) unlimited

    scheduling priority             (-e) 0

    file size               (blocks, -f) unlimited

    pending signals                 (-i) 16384

    max locked memory       (kbytes, -l) 32

    max memory size         (kbytes, -m) unlimited

    open files                      (-n) 1024

    pipe size            (512 bytes, -p) 8

    POSIX message queues     (bytes, -q) 819200

    real-time priority              (-r) 0

    stack size              (kbytes, -s) 10240

    cpu time               (seconds, -t) unlimited

    max user processes              (-u) 16384

    virtual memory          (kbytes, -v) unlimited

    file locks                      (-x) unlimited

    对于文件/etc/security/limits.conf中的“oracle  hard  stack”值至少应该是10240。

    2、确认$ORACLE_HOME/bin/oracle文件权限和属主是否有问题

    需要注意的是,在rac环境下需要查看$ORACLE_HOME/bin/oracle和$GRID_HOME/bin/oracle两个文件。在没有安装GI的环境下,正确权限为:

    [oracle@OCPLHR ~]$ ll $ORACLE_HOME/bin/oracle

    -rwsr-s--x 1 oracle oinstall 232424392 Feb  2 10:30 /u01/app/oracle/product/11.2.0/dbhome_1/bin/oracle

    [oracle@OCPLHR ~]$

    在有grid用户的情况下,oracle可执行文件正确属主应该是oracle:asmadmin,并且权限必须有s才可以,如下所示:

    [root@orclalhr ~]$ which setasmgidwrap

    /u01/app/11.2.0/grid/bin/setasmgidwrap

    [root@orclalhr ~]$ setasmgidwrap -o /u01/app/oracle/product/11.2.0/dbhome_1/bin/oracle

    [root@orclalhr ~]$ ll /u01/app/oracle/product/11.2.0/dbhome_1/bin/oracle

    -rwsr-s--x 1 oracle asmadmin 232399083 Apr 21  2015 /u01/app/oracle/product/11.2.0/dbhome_1/bin/oracle

    [root@orclalhr ~]# ll /u01/app/11.2.0/grid/bin/oracle

    -rwsr-s--x. 1 grid oinstall 203972117 Jan  5  2015 /u01/app/11.2.0/grid/bin/oracle

    [root@orclalhr ~]# chmod 6751 /u01/app/oracle/product/11.2.0/dbhome_1/bin/oracle

    [root@orclalhr ~]# ll /u01/app/oracle/product/11.2.0/dbhome_1/bin/oracle

    -rwsr-s--x 1 oracle asmadmin 232399083 Apr 21  2015 /u01/app/oracle/product/11.2.0/dbhome_1/bin/oracle

    [root@orclalhr bin]# cd /u01/app/oracle/product/11.2.0/dbhome_1/bin/

    [root@orclalhr bin]# which stat

    /usr/bin/stat

    [root@orclalhr bin]# stat oracle

      File: `oracle'

      Size: 210823844       Blocks: 411776     IO Block: 4096   regular file

    Device: 802h/2050d      Inode: 1717737     Links: 1

    Access: (6751/-rwsr-s--x)  Uid: (  501/  oracle)   Gid: (  504/asmadmin)

    Access: 2017-03-16 12:33:44.809363974 +0800

    Modify: 2014-05-18 17:09:50.508549983 +0800

    Change: 2017-03-16 11:05:15.733816820 +0800

    文件权限的详细说明如下:

    u:User,即文件或目录的拥有者。

    g:Group,即文件或目录的所属群组。

    o:Other,除了文件或目录拥有者或所属群组之外,其他用户皆属于这个范围。

    a:All,即全部的用户,包含拥有者,所属群组以及其他用户。

    有关权限代号的部分,列表于下:

    r:读取权限,数字代号为4。

    w:写入权限,数字代号为2。

    x:执行或切换权限,数字代号为1。

    -:不具任何权限,数字代号为0。

    s:当文件被执行时,根据who参数指定的用户类型设置文件的setuid或者setgid权限。

    如果权限不对,那么可以执行以下命令进行修复:

    chmod 6751 $ORACLE_HOME/bin/oracle 

    如果权限不对,那么使用strace跟踪命令也可以看到如下信息:

    $strace -f -o /tmp/trace.1.log $ORACLE_HOME/bin/sqlplus / as sysdba

    在trace.1.log文件中可以看到如下的内容:

    21810 open("/oracle/PROD/db/tech_st/11.1.0/admin/PROD_erptest/diag/rdbms/prod/PROD/alert/log.xml", O_WRONLY|O_CREAT|O_APPEND, 0664) = -1 EACCES(Permission denied)

    ......

    21810 open("/oracle/PROD/db/tech_st/11.1.0/admin/PROD_erptest/diag/rdbms/prod/PROD/trace/alert_PROD.log", O_WRONLY|O_CREAT|O_APPEND, 0664) = -1 EACCES (Permission denied)

    3、检查一下环境变量

    echo $ORACLE_HOME 

    echo $ORACLE_SID 

    echo $LD_LIBRARY_PATH --注意:不同的操作系统此环境变量会不同

    echo $PATH

    4、检查$ORACLE_HOME/bin/oracle和$ORACLE_HOME/rdbms/lib/config.o的文件大小是否为0

    [oracle@OCPLHR ~]$ ll $ORACLE_HOME/bin/oracle

    -rwsr-s--x 1 oracle oinstall 232424392 Feb  2 10:30 /u01/app/oracle/product/11.2.0/dbhome_1/bin/oracle

    [oracle@OCPLHR ~]$ ll $ORACLE_HOME/rdbms/lib/config.o

    -rw-r--r-- 1 oracle oinstall 1248 Jan 15 21:45 /u01/app/oracle/product/11.2.0/dbhome_1/rdbms/lib/config.o

    [oracle@OCPLHR ~]$

    如果大小为0,那么需要先备份config.o文件,然后重新编译oracle软件:

    % cd $ORACLE_HOME/rdbms/lib

    % mv config.o config.o.bad

    [oracle@OCPLHR ~]$ relink all

    writing relink log to: /u01/app/oracle/product/11.2.0/dbhome_1/install/relink.log

    5、检查$ORACLE_HOME/network/admin/sqlnet.ora文件中的内容

    查看是否设置了限制某些IP地址登录的内容,此时可以通过查看监听日志的内容来确定。如果设置了限制登录的内容,则可以把tcp.validnode_checking设为no,或者在tcp.invited_nodes加入允许访问的IP或机器名。

    6、检查监听日志文件的大小,确保监听日志文件的大小不能超过2G。如果超过2G,那么可以使用如下的方法解决:

    [oracle@test ~]$ cd $ORACLE_HOME/network/log

    [oracle@test log]$ cat /dev/null > listener.log

    7、检查文件/etc/hosts文件中是否含有以下内容:

    [oracle@OCPLHR ~]$ cat /etc/hosts

    # Do not remove the following line, or various programs

    # that require network functionality will fail.

    127.0.0.1               localhost.localdomain localhost

    ::1             localhost6.localdomain6 localhost6

    192.168.59.155 OCPLHR

    必须确保/etc/hosts文件中含有127.0.0.1这行。

    8、查看系统是否缺少必要安装包,例如glibc、glibc-devel、libaio、libaio-devel

    9、使用操作系统跟踪命令跟踪sqlplus连接过程,从而观察跟踪文件

    Linux系统的跟踪命令:

    strace -o /tmp/output.txt -T -tt -e trace=all  sqlplus / as sysdba

    strace -t -p 4545

    Unix跟踪sqlplus进程:

    truss -dfaie -o /tmp/sched_trace.out.02271 sqlplus '/as sysdba'

    Local SQL*Plus Connection and DBCA Fails With: ORA-12547: TNS:Lost Contact (文档 ID 422173.1)

    https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=346867971665735&id=422173.1&displayIndex=3&_afrWindowMode=0&_adf.ctrl-state=17yvi1ujp4_126#REF

    DBCA and Local SQL*Plus Connection Fails With: ORA-12547: TNS:Lost Contact ORA-12753 (文档 ID 2206832.1)

    Troubleshooting ORA-12547 TNS: Lost Contact (文档 ID 555565.1)转到底部

    Oracle Database (RDBMS) on Unix AIX,HP-UX,Linux,Mac OS X,Solaris,Tru64 Unix Operating Systems Installation and Configuration Requirements Quick Reference (8.0.5 to 11.2) (文档 ID 169706.1)

    About Me

    .............................................................................................................................................

    ● 本文作者:小麦苗,部分内容整理自网络,若有侵权请联系小麦苗删除

    ● 本文在itpub(http://blog.itpub.net/26736162/abstract/1/)、博客园(http://www.cnblogs.com/lhrbest)和个人微信公众号(xiaomaimiaolhr)上有同步更新

    ● 本文itpub地址:http://blog.itpub.net/26736162/abstract/1/

    ● 本文博客园地址:http://www.cnblogs.com/lhrbest

    ● 本文pdf版、个人简介及小麦苗云盘地址:http://blog.itpub.net/26736162/viewspace-1624453/

    ● 数据库笔试面试题库及解答:http://blog.itpub.net/26736162/viewspace-2134706/

    ● DBA宝典今日头条号地址:http://www.toutiao.com/c/user/6401772890/#mid=1564638659405826

    .............................................................................................................................................

    ● QQ群号:230161599(满)、618766405

    ● 微信群:可加我微信,我拉大家进群,非诚勿扰

    ● 联系我请加QQ好友(646634621),注明添加缘由

    ● 于 2018-02-01 06:00 ~ 2018-02-31 24:00 在魔都完成

    ● 文章内容来源于小麦苗的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解

    ● 版权所有,欢迎分享本文,转载请保留出处

    .............................................................................................................................................

    ● 小麦苗的微店:https://weidian.com/s/793741433?wfr=c&ifr=shopdetail

    ● 小麦苗出版的数据库类丛书:http://blog.itpub.net/26736162/viewspace-2142121/

    ● 好消息:小麦苗OCP、OCM开班啦,详情请点击:http://blog.itpub.net/26736162/viewspace-2148098/

    .............................................................................................................................................

    使用微信客户端扫描下面的二维码来关注小麦苗的微信公众号(xiaomaimiaolhr)及QQ群(DBA宝典),学习最实用的数据库技术。

    小麦苗的微信公众号      小麦苗的DBA宝典QQ群2 《DBA笔试面试宝典》读者群 小麦苗的微店

    .............................................................................................................................................

    相关文章

      网友评论

        本文标题:造成错误“ORA-12547: TNS:lost contact

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