postgresql - 为什么 Postgres dblink 突然停止工作
问题描述
我已将数据库从 Oracle 迁移到 RDS Postgres。我pragma autonomous_transaction
在 Oracle 中用于记录错误,在发生错误时会发生回滚。由于 Postgres 中没有直接选项,我一直在使用dblink
独立提交。
我创建了一个函数,其中 dblink 将在我的测试环境中的不同会话中使用 DML 执行用户定义的函数。下面会提到通过 dblink 连接的部分功能。
Perform * from dblink(connection_string, query_function_call) as p (ret boolean);
现在在开发环境中,我通过 Postgres 数据库中的管道部署了这个功能,然后我安装了 dblink 扩展。但是该函数在执行时'dblink does not exist'
抛出错误。我通过重新部署该功能解决了它,它工作得很好。
但是几天后,我突然开始'dblink does not exist'
出错,这次即使重新部署该功能,我也得到了同样的错误。
可以在pg_extension
表中看到扩展,重新启动实例,但同样的问题仍然存在。
我还检查了使用该dblink_connect
函数来测试也返回'dblink does not exist'
错误的连接。重新启动数据库实例也没有帮助。
有人可以帮助为什么会出现这个问题吗?我从基础设施团队听说 dblink 不是在 Postgres 中使用的好习惯。任何帮助深表感谢。
解决方案
奇怪的是您更改了您的search_path
,因此您只能dblink
通过包含架构名称来访问。
推荐阅读
- vb6 - 出现某些错误时,VB6 IDE 是否会突出显示错误的文本?
- c++ - 为什么 Xcode 给出错误“字符串”文件未找到?
- java - 添加 jar 时 Eclipse 丢弃构建路径
- javascript - 错误 Javascript ReferenceError: 要求未在 miIO 设备库中定义
- ios - 无法将“__NSArray0”类型的值转换为“NSDictionary”
- python - 无法在 cmd 中执行带有 .py 扩展名的 python 脚本
- c# - HttpClient GetAsync 与 URL 中的哈希
- javascript - 异步/等待无法在 javascript 中进行 fetch API 调用
- c# - 需要帮助了解使用 LINQ Join 和 HashSet 的意外行为
- sql - 协助 SQL Server SELECT 查询