下面是postgresql日志文件中的错误。寻求关于如何修复它们的帮助。
PostgreSQL版本为9.6
==> PostgreSQL2020-03-10日志<==
2020-03-10 10:48:19 EAT|||ERROR: uncommitted xmin 1358613895 from before xid cutoff 1601650960 needs to be frozen
2020-03-10 10:48:19 EAT|||CONTEXT: automatic vacuum of table "schema.public.tablename"
==> PostgreSQL2020-03-10.csv <==
2020-03-10 10:48:19.140 EAT,,,22943,,5e67463b.599f,1,,2020-03-10 10:48:11 EAT,13/281,0,ERROR,XX001,"uncommitted xmin 1358613895 from before xid cutoff 1601650960 needs to be frozen",,,,,"automatic vacuum of table "schema.public.tablename"
发布于 2020-04-14 17:51:12
有几件事你想要核实:
SELECT * FROM pg_prepared_xacts ;
开放的事务
SELECT * FROM pg_stat_activity WHERE backend_xid = 1358613895 OR backend_xmin = 1358613895
或
SELECT * FROM pg_stat_activity WHERE now() - xact_start <= INTERVAL '1 days'
如果您发现任何使用上述SQL的长事务,则取消事务。如果您无法找到任何长事务,则可以执行以下操作之一: a.关闭Postgres并在单用户模式下运行PostgreSQL并执行真空操作。b.在一项交易中,执行下列操作
BEGIN;
CREATE TABLE public.tablename_copy AS SELECT * FROM public.tablename;
TRUNCATE TABLE public.tablename;
INSERT INTO public.tablename SELECT * FROM public.tablename_copy;
DROP TABLE public.tablename_copy;
END;
-- OR ---
BEGIN;
COPY public.tablename TO '/tmp/tablename.data';
TRUNCATE TABLE public.tablename;
COPY public.tablename FROM '/tmp/tablename.data';
END;
执行
VACUUM FREEZE ANALYZE;
https://stackoverflow.com/questions/60620438
复制相似问题