今天在工作的时候,有同事问我说怎么一个地市的数据是没有汇总的数据,我马上登陆查看,发现没有问题,结果他给我看确实是没有汇总过的,我突然想起来,他查看的是同义词,同义词是使用了dblink来查看远程库的数据,而我是直接连接到远程库的,于是赶紧检查同义词和dblink
select * from user_synonyms;
select * form. user_db_links:
发现果然是dblink的问题,使用的tns信息是另外一个数据库的,找到了问题的所在于是把dblink删除之后又重新建立了新的dblink,名称还是原来的名称, 但是在查询同义词的时候,发现出来的结果还是原来那个库的非汇总的数据,然后用用户名.表名@dblink的方式 倒是正常的,觉得问题很诡异,正在思索期间,突然想到以前遇到过查询远程库的数据数据行数超出N条之后就会在产生一个正在使用的数据库连接,可以在SYS.V$DBLINK当中查到,于是考虑是不是因为原有的dblink信息没有释放掉造成的错误,于是执行关闭时候聚聚连接的语句
alter session close database link dblink_x;
结果就提示数据库连接正在使用中,在当前会话执行 commit或者rollback 释放掉资源,然后再次执行就正常了,查看SYS.V$DBLINK,没有记录了,然后再来查看同义词,OK,终于正常了。
本来以为问题就得到解决了,因此也没有再查看其他的同义词,结果下午又有人反应其他的数据也不对,最后只能用重建同义词的方式来解决这个问题。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/12216142/viewspace-711906/
,如需转载,请注明出处,否则将追究法律责任。