【转载-ORACLE】ORA-12547: TNS:lost contact

碰到这个ORA-12547: TNS:lost contact的问题,翻了很多资料和METALINK,总结了一下原因:
1 是由于rpm包没有安装,对于我们的生产环境,此包是安装的。
admin@p1b:/home/admin>rpm -q glibc-devel
glibc-devel-2.5-58.el5_6.4
glibc-devel-2.5-58.el5_6.4
admin@p1b:/home/admin>rpm -q libaio
libaio-0.3.106-5
libaio-0.3.106-5
admin@p1b:/home/admin>

2 是因为权限不足,
linux 5.3 64位
oracle 11G R2
grid ,oracle用户使用sqlplus 连接无异常 但是其他用户使用sqlplus 连接时,报
ORA-12547 : TNS:lost contact 错误
由于数据库之前转移过目录,查看发现目录下
/data2/oracle/product/11.2.0/bin/
-rwxr-x--x 1 oracle oinstall 210824714 Jun 26 16:33 oracle  权限有问题,更改权限
chmod 6751 oracle
再次连接数据库,正常

-rwsr-s--x 1 oracle oinstall 210824714 Jun 26 16:33 oracle
我们的数据库是
admin@p1b.ora.sd.aliyun.com:/home/admin>ls -lsr $ORACLE_HOME/bin/oracle
223748 -rwsr-s--x 1 oracle asmadmin 228886426 Aug 19 02:26 /opt/11202/oracle/11.2.0/alibank/bin/oracle
--属组应该是oinstall 而不是asmadmin

oracle metalink中的解决方法:

Solution

To implement the solution, please execute the following steps:

1.
This could be due to kernel parameters settings
Please check the notes below that provide the required settings for kernel parameters

2.
This could be due to Incorrect permissions on the ORACLE.exe
The 'ls' command should show permissions 6751 (as follows)

Please check the following:

$ cd $ORACLE_HOME/bin
$ ls -l oracle

The output should be
-rwsr-s--x 1 oracle dba

If not then please execute the following
$ chmod 6751 oracle

Please also verify if the following are correct

echo $ORACLE_HOME
echo $ORACLE_SID
echo $LD_LIBRARY_PATH
echo $PATH

3.
If the above does not resolve I suggest that you shutdown the database and listener and then
"relink all"
对于生产库,relink all 有点危险,第一种在线安装rpm包,也需要考虑其对生产环境的影响。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/11088128/viewspace-712284/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/11088128/viewspace-712284/

"ora-12547: tns:lost contact" 是一种Oracle数据库中的错误,通常位于使用Mac的Docker容器运行Oracle数据库时出现。这个错误表示Docker容器无法与Oracle数据库建立联系。 出现这个错误的原因可能有以下几种: 1. 网络配置问题:确保容器和宿主机之间的网络配置正确。可以尝试检查Docker网络设置,并确保容器可以正确访问Oracle数据库所在的主机。 2. TNS配置问题:检查容器中的TNS配置文件(通常为tnsnames.ora)是否正确。确保其中的连接字符串、主机名、端口号等信息正确匹配Oracle数据库的实际设置。 3. Oracle监听器问题:确认Oracle监听器是否正在运行,并监听着正确的端口。可以尝试在容器中执行`lsnrctl status`命令来检查监听器的状态。 4. 容器资源限制:如果容器的资源限制过低,可能导致无法正常启动Oracle数据库。可以尝试增加容器的内存、CPU等资源限制,以确保数据库能够正常启动。 解决这个问题的方法可以尝试以下几种: 1. 检查网络配置:确保容器和宿主机之间的网络配置正确,容器可以访问到Oracle数据库所在的主机。 2. 检查TNS配置:确认容器中的TNS配置文件中的连接信息正确。可以尝试手动连接数据库,确保连接字符串、主机名、端口号等信息正确。 3. 检查监听器:确保Oracle监听器正在运行,并监听着正确的端口。可以尝试重启监听器,或者在容器中重新配置监听器。 4. 调整资源限制:增加容器的资源限制,确保能够正常启动Oracle数据库。可以尝试给容器分配更多的内存、CPU等资源。 总而言之,解决这个问题需要检查网络配置,确认TNS配置和监听器设置正确,并适当调整容器的资源限制。通过这些步骤,应该能够解决"ora-12547: tns:lost contact"错误。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值