关于DB_LINK的相关的一个程序异常

场景

1、三个数据库用户NSTCSA1482NSTCSA1481NSTCSA1483,两个用户使用的是DB_LINK建立联系。

2NSTCSA1481用户理解成业务子系统用到的其中一个用户,在此用户下有一些存储过程通过DBLINK使用到NSTCSA1482用户下的对象(如:表、函数、过程)。

3NSTCSA1482用户同样也有对象使用NSTCSA1481上的内容。

4、这样系统正常一段时间后因为有其它业务要求,需要用NSTCSA1483替代掉NSTCSA1482,也就是说NSTCSA1481DBLINK连接应该改成了NSTCSA1483,这样问题就出现了。

4、异常信息如下:

 

问题解决

1、此问题刚一出现我们的直接反应就是数据库那块有什么缓存之类的东西。

2、因为不允许重启数据库,尝试把此DBLINK删除掉,再次触发此应用,这时异常信息变为缺少DBLINK

3、重建DBLINK,异常信息还和以前一致,这时分析可能与DBLINK相关的对象有关系。

4、尝试重新编译与此DB_LINK相关的函数和过程,至此问题解决。

 

总结

1、修改DBLINK时需要重新编译与些DBLINK相关的过程/函数。

2、至于数据库重启后是否直接就恢复正常,并没有再做与此相关的工作。

你可能感兴趣的:(工作,数据库,存储)