写正确了tnsnames文件却tnsping无法ping通

今天遇到个问题比较奇怪,tnsnames.ora明明配置正确,在其中写的IP是10.1.2.40,但是在tnsping中却解析到10.1.2.45:

而且我把tnsnames.ora改名成别的名称,这个service name依然可以被解析到。

既然都改名了,难道还有别的tnsnames.ora文件在被使用?用find名称查了一下:

发现在其他路径下还是有tnsnames.ora文件的,而且用于解析的,就是其他路径的这个文件。

在此,基本的问题就搞明白了,由于用了其他路径的tnsnames.ora,所以无法正确解析。为解决这个问题,我们指定$ORACLE_HOME下的network/admin路径,我们export一下TNS的路径,或者在环境变量中加上TNS_ADMIN,就能解决这个问题了:

最后,查到原来在root用户下,已经指定了这个TNS_ADMIN:

应该是oracle用户没有配TNS_ADMIN,且oracle用户又继承了root的环境变量,所以在tnsping的时候,没有去正确的路径找tnsnames.ora文件,所以,解析不到了。

相关文章

一条评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据