暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 在使用中,当dblink死亡时如何处理。

askTom 2017-11-02
312

问题描述

嗨,Oracle大师-

我们的主要Oracle数据库定期查询其他七个Oracle数据库。如果其中一个db离线,我们仍然希望所有其他服务器返回数据。为了解决这个问题,我们做了一个流水线函数,当外部数据库可用时检索数据,当外部数据库不可用时不返回任何内容。当流水线函数尝试使用dblink并且在另一侧找不到服务器时,此操作非常完美。我们遇到的问题是,当连接建立时,链接服务器出现问题。函数只是挂起,它永远不会出错。我们可以做些什么来使它出错吗?一旦出错,我们就可以处理它,但它会挂起。也许眨眼暂停?

谢谢,

约翰

专家解答

真的取决于堆栈中的位置,错误所在。可能是远程机器,可能是防火墙,可能是它们之间的网络。如果挂起,则调用数据库仍处于会话仍处于活动状态的印象中。

您可以尝试一些事情:

-设置sqlnet.expire_time
-使用配置文件在会话上设置最大连接时间,这样,如果挂起,就不会永远挂起
-资源管理器,如果会话超过阈值,则将会话切换到CANCEL_SQL或KILL_SESSION consumer组
-调度程序作业,用于查看超出资源管理器无法实现的某些自定义指标的活动会话

希望这有所帮助。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论