gpt4 book ai didi

sql - Postgres 环绕问题

转载 作者:行者123 更新时间:2023-11-29 14:20:58 25 4
gpt4 key购买 nike

我的 Production PostgreSQL 遇到了一个问题,它与 Wraparound Problem 相关,主要是因为 XID 范围超出限制。

此 PostgreSQL 生产运行了 1 年多,其中包含大量事务和批量插入。

我在谷歌上搜索了很多,但对这个严重错误感到困惑和害怕。现在我在任何真空或自动真空的过程中都遇到了这个错误。我有大约 250 GB 的 Postgres 生产数据库,我还为所有表设置了自动清理。

Error and Warning are:

WARNING: oldest xmin is far in the past
HINT: Close open transactions soon to avoid wraparound problems.

我还检查了当前打开的事务,但是在 Postgres session 中没有任何长时间运行的事务。

Current database age of XID :
Database Age
"template1"; 153163876
"template0"; 153163876
"postgres"; 153163876
"dispatcher"; 153163876
"qate"; 195568300

我使用以下查询得到的以上结果:

SELECT datname, age(datfrozenxid) FROM pg_database;

请尽快提供您的意见,因为很快,这就会给我的生产数据库带来问题。

最佳答案

如果您有能力强行关闭未结交易:

SELECT pg_terminate_backend(procpid)
FROM pg_stat_activity
WHERE datname = 'mydb';

然后 autovacuum 可以卡住行,或者您可以手动运行 VACUUM。您可能需要暂时阻止新交易。以下是详细说明:

.. 除了你不 DROP 数据库。只是 VACUUM 它。

或者 Postgres 将强制关闭以防止数据丢失。 Detailed explanation in the manual.

关于sql - Postgres 环绕问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27182966/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com