在 Dbeaver 中遇到 SQL 错误 40001

Encountering a SQL Error 40001 in Dbeaver

我正在执行一个正确执行的 count * 查询,但出于某种原因,当我尝试将其导出为 CSV 时,我遇到了 SQL 错误 [40001]。有什么想法可能是什么问题吗?

您是运行备用服务器上的长查询,从主服务器复制的一些修改与您的查询冲突。特别是,VACUUM 删除了您的查询可能仍要使用的一些旧行版本。

PostgreSQL 必须做出选择:要么延迟应用来自主数据库的更改,要么取消阻止复制的查询。

PostgreSQL 的行为方式由参数 max_standby_streaming_delay 决定。默认值使查询在取消前有 30 秒的时间完成。

您有三个选择:

  1. 重试查询,希望这次能成功。

  2. 增加max_standby_streaming_delay备用。

    您面临的风险 运行 是复制会落后。

  3. 在备用数据库上将参数 hot_standby_feedback 设置为 on,然后主数据库不会 VACUUM 备用数据库可能仍然需要的行版本。

    您 运行 的风险是 table 主节点膨胀,因为 autovacuum 无法完成它的工作。