处理tns不存在

       新年后第一天,就接到同事的一个邮件,问题是在抽取数据时提示TNS不存在,在2月7号还可以,之后就连不上了,请求帮忙解决。刚过来上班头一蒙,如何查起呢,慢慢地就思路整出来了,一步一步解决。

    首先从他邮件上的那个用户A1入手,在A库上去提取B库上的数据,但因没有他提供的用户帐号密码,只能从另外一个用户A2入手,查询下all_db_links表中db_link去找出host,再到host上去查看是否TNS有开启来。

A库的数据库版本是10.2.0.3.0

B库的数据库版本是10.2.0.4.0

  1、在A库上,用另一个用户A2上去查看下,发现没有邮件上提供的db_link,原因是提供的db_link是A1私有的的链接,不允许别的用户查看。迅速进入A库主机上用SYS用户进行查看,还是发现没该db_link链,应该用dba_db_links就可以了。

USER_DB_LINKS describes the database links owned by the current user. This view does not display the OWNER column.

ALL_DB_LINKS describes the database links accessible to the current user.

DBA_DB_LINKS describes all database links in the database.

常用习惯ALL_DB_LINKS就是所有的用户,这是个误区,实际上就包括当前用户及一些定义类型为public的数据链。

 2、查出后,在A库上查看tnsping下是否能ping通?ping不通后,可发现IP地址是192.168.11.165 与B库上的IP地址是192.168.11.168不相同,但是SID是相同的。纳闷了一下,在B库上,用lsnrctl status 命令查看又是显示没有监听程序,no listener ,应该是命令后面要加查看的实例名如lsnrctl status sid 。再查PS下,发现在2月7号早上9点多有重新加载或重启过TNS,造成了TNS上的IP只变成了168上,用命令netstat -n | grep 1521 | more ,而在A库上只是指向165上。实际上165与168是同一台机器,只是一个是浮动IP。

1、listener.ora配置文件中指定用户名的问题。

2、165与168是同一台机器,

3、将A库上tnsnames.ora中数据库链指向165更改为168就可以了。

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

转载于:http://blog.itpub.net/15242702/viewspace-754137/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值