本地服务端 使用 sqlplus / as sysdba 报ORA-12547: TNS:lost contact
来源:互联网 发布:c语言分析图书管理系统 编辑:程序博客网 时间:2024/05/04 08:28
在某个时候 突然 接到 运维 人员反馈, 今天业务相关的数据 都堆积 很多了, 原因是文件入库失败, 后台数据库直接 报如下错
[oracle@ORACLEMAIN ~]$ sqlplus / as sysdbaSQL*Plus: Release 11.2.0.1.0 Production on Sat Jul 23 13:27:09 2016Copyright (c) 1982, 2009, Oracle. All rights reserved.ERROR:ORA-12547: TNS:lost contactEnter user-name: ERROR:ORA-12547: TNS:lost contactEnter user-name: ERROR:ORA-12547: TNS:lost contactSP2-0157: unable to CONNECT to ORACLE after 3 attempts, exiting SQL*Plus
原因分析, 后台本地登录数据库 居然要 TNS ?
1/ 产看数据后台进程,发现正常
[oracle@ORACLEMAIN ~]$ ps -ef | grep ora_oracle 824 1 0 13:29 ? 00:00:00 ora_w000_ora11goracle 849 769 0 13:37 pts/1 00:00:00 grep ora_oracle 3468 1 0 11:33 ? 00:00:00 ora_pmon_ora11goracle 3470 1 0 11:33 ? 00:00:02 ora_vktm_ora11goracle 3474 1 0 11:33 ? 00:00:00 ora_gen0_ora11goracle 3476 1 0 11:33 ? 00:00:00 ora_diag_ora11goracle 3478 1 0 11:33 ? 00:00:00 ora_dbrm_ora11goracle 3480 1 0 11:33 ? 00:00:00 ora_psp0_ora11goracle 3482 1 0 11:33 ? 00:00:01 ora_dia0_ora11goracle 3484 1 0 11:33 ? 00:00:02 ora_mman_ora11goracle 3486 1 0 11:33 ? 00:00:00 ora_dbw0_ora11goracle 3488 1 0 11:33 ? 00:00:00 ora_lgwr_ora11goracle 3490 1 0 11:33 ? 00:00:03 ora_ckpt_ora11goracle 3492 1 0 11:33 ? 00:00:00 ora_smon_ora11goracle 3494 1 0 11:33 ? 00:00:00 ora_reco_ora11goracle 3496 1 0 11:33 ? 00:00:01 ora_mmon_ora11goracle 3498 1 0 11:33 ? 00:00:01 ora_mmnl_ora11goracle 3500 1 0 11:33 ? 00:00:00 ora_d000_ora11goracle 3502 1 0 11:33 ? 00:00:00 ora_s000_ora11goracle 3542 1 0 11:33 ? 00:00:00 ora_qmnc_ora11goracle 3570 1 0 11:34 ? 00:00:00 ora_q000_ora11goracle 3572 1 0 11:34 ? 00:00:00 ora_q001_ora11goracle 3582 1 0 11:38 ? 00:00:00 ora_smco_ora11g
2 产看数据的 警告文件
<pre name="code" class="html">[oracle@ORACLEMAIN trace]$ grep "ORA-" alert_ora11g.log[oracle@ORACLEMAIN trace]$
警告文件 没有报 任何错误, 说明数据 运行还是很正常的,
查了 官方资料, 有下面几点 方法
1. 检查 $ORACLE_HOME/bin/oracle 文件的 权限是否 为 6751
[oracle@ORACLEMAIN bin]$ ls -l $ORACLE_HOME/bin/oracle-rwsr-s--x 1 oracle oinstall 210824714 Dec 14 2014 /opt/app/oracle/product/11.2.0/db_1/bin/oracle[oracle@ORACLEMAIN bin]$如果不为 上面结果 那么就需要 把权限 改回来
chmod 6751 oracle
ORACLE_BASE,
ORACLE_HOME,
LD_LIBRARY_PATH,
PATH
[oracle@ORACLEMAIN bin]$ env | grep ORAHOSTNAME=ORACLEMAINORACLE_SID=ora11gORACLE_BASE=/opt/app/oracleORACLE_HOME=/opt/app/oracle/product/11.2.0/db_1[oracle@ORACLEMAIN bin]$如果没有上述变量,请添加上
环境变量配置是正确的, 应为生产库已经使用了好几年了,所以这个出问题 的可能性应该不大
3 . 检查操作 系统内核参数
根据 oracle 官方文档的 检查
orcle 官方 文档 要求配置如下
shmmni4096/proc/sys/kernel/shmmnifile-max6815744/proc/sys/fs/file-maxip_local_port_rangeMinimum: 9000Maximum: 65500/proc/sys/net/ipv4/ip_local_port_rangermem_default262144/proc/sys/net/core/rmem_defaultrmem_max4194304/proc/sys/net/core/rmem_maxwmem_default262144/proc/sys/net/core/wmem_defaultwmem_max1048576/proc/sys/net/core/wmem_maxaio-max-nr1048576Note: This value limits concurrent outstanding requests and should be set to avoid I/O subsystem failures./proc/sys/fs/aio-max-nr
</pre>我根据 上述检查后 系统配置 都达到 要求<p></p><p></p><p>然后我们再来看 软/硬 限 参数配置</p><p>官方最低要求是</p><p></p><pre name="code" class="html">Resource Shell Limit ResourceSoft Limit Hard LimitOpen file descriptors nofile at least 1024 at least 65536Number of processes available nproc at least 2047 at least 16384to a single userSize of the stack segment stack at least 10240 KB at least 10240 KB, and at most 32768 KBof the process
通过下面的命令检查 我系统参数的配置
[oracle@ORACLEMAIN ~]$ ulimit -Hn65536[oracle@ORACLEMAIN ~]$ ulimit -Sn1024[oracle@ORACLEMAIN ~]$ ulimit -Hu16384[oracle@ORACLEMAIN ~]$ ulimit -Su16384[oracle@ORACLEMAIN ~]$ ulimit -Hs<span style="color:#ff0000;">1024</span>[oracle@ORACLEMAIN ~]$ ulimit -Ss<span style="color:#ff0000;">1024</span>[oracle@ORACLEMAIN ~]$
问题已经 找到 stack oracle 的最低要求是 10240 而我的是 1024
[root@ORACLEMAIN ~]# tail -l /etc/security/limits.conf #@student - maxlogins 4# End of fileoracle soft nofile 1024oracle hard nofile 65536oracle soft noproc 2047oracle hard noproc 16384<span style="color:#ff0000;">oracle soft stack 10240oracle hard stack 10240</span>[root@ORACLEMAIN ~]#
切换 到 oracle 用户 检查参数
<pre name="code" class="html">[root@ORACLEMAIN ~]# su - oracle[oracle@ORACLEMAIN ~]$ ulimit -s1024[oracle@ORACLEMAIN ~]$
发现参数 并没有变,, 这种情况是不应该的, 当修改完后 就应该立马生效的, 所以想到的是 立马重启服务器, 但是 改服务器上 有很多业务, 所以 重启 那是不可能的事情了,所以怀疑是设置 全局变量
检查 /etc/profile 发现这个文件的最后 ulimit -s 1024 靠!!!!, 谁在环境变量做了配置, 害的我花了 将近三个小时
把这一行 去掉 , 再切换 到 oracle用户 产看参数 正常 登录数据库也正常
[root@ORACLEMAIN ~]# su - oracle[oracle@ORACLEMAIN ~]$ ulimit -s10240[oracle@ORACLEMAIN ~]$ sqlplus / as sysdbaSQL*Plus: Release 11.2.0.1.0 Production on Sat Jul 23 15:01:01 2016Copyright (c) 1982, 2009, Oracle. All rights reserved.Connected to:Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit ProductionWith the Partitioning, OLAP, Data Mining and Real Application Testing optionsSQL> SQL>
问题解决, 如果 你到这里 , unlimt -s 值还是没有变的话, 建议 在 /etc/profile 的最后 加上 ulimit -s 10240
如果 上述 三个步骤 还没有 解决你的 问题 那么请用 步骤4
4 . relink all (在oracle 用户下 使用这个命令)
0 0
- 本地服务端 使用 sqlplus / as sysdba 报ORA-12547: TNS:lost contact
- Linux环境下使用sqlplus登录Oracle,报'ORA-12547: TNS:lost contact’丢失连接错误
- sqlplus登录报错TNS-12547: TNS:lost contact
- 【SDE错误搜集】sde用户下使用sqlplus登录错误ORA-12547: TNS:lost contact
- ORA-12547: TNS:lost contact
- ORA-12547: TNS:lost contact
- ORA-12547: TNS:lost contact
- ORA-12547: TNS:lost contact
- ORA-12547: TNS:lost contact
- ORA-12547:TNS:lost contact
- ORA-12547: TNS:lost contact
- ORA-12547: TNS:lost contact
- TNS-12547: TNS:lost contact TNS-12537: TNS:connection closed as a result of ORA-609
- 启动ArcSDE服务报:“ORA-12547: TNS:lost contact”
- ORA-12547: TNS:lost contact 错误处理
- relink处理ORA-12547:TNS:lost contact
- ORA-12547: TNS:lost contact 解决方法
- dbca ora-12547 tns lost contact
- 《opencv2计算机视觉编程手册》3-2 策略模式练习
- 谈谈8年C++面向对象设计的经验体会
- OpenCV代码提取:warpPerspective函数的实现
- JDBC之事务处理
- hdu 5745 La Vie en rose(2016 Multi-University Training Contest 2——暴力)
- 本地服务端 使用 sqlplus / as sysdba 报ORA-12547: TNS:lost contact
- Python Web框架Tornado运行和部署
- 2016夏季练习——最小生成树
- 仿支付宝的付款转圈动画---CAShapeLayer、UIBezierPath、CABasicAnimation
- C99 新增了复数类型(_Complex)和虚数类型(_Imaginary)。简单来说,C99 提供了三种复数类型:float _Complex,double _Complex,和 long do
- 一个整型数组里除了两个数之外,其他数都出现了两次。找出这两个出现一次的数。
- 南阳理工学院--语言入门--6174问题
- HLS_ug871笔记
- maven工程构建dubbo服务jar包示例