无法备份,email_logs 表出现错误

您好,

我们有一个 discourse 实例,已经有一段时间无法进行备份(和升级)了。
运行备份时,我们收到此错误:

pg_dump: 正在转储表“public.email_change_requests”的内容
pg_dump: 正在处理表“public.email_logs”的数据
pg_dump: 正在转储表“public.email_logs”的内容
pg_dump: 错误:转储表“email_logs”的内容失败:PQgetResult() 失败。
pg_dump: 错误:来自服务器的错误消息:错误:无法访问事务 4156776275 的状态
详细信息:无法打开文件“pg_xact/0F7C”:没有该文件或目录。
pg_dump: 错误:命令是:COPY public.email_logs (id, to_address, email_type, user_id, created_at, updated_at, post_id, bounce_key, bounced, message_id, smtp_group_id, cc_addresses, cc_user_ids, raw, topic_id) TO stdout;
异常:pg_dump 失败

在阅读了这里的许多帖子并尝试了很多方法后,我最终尝试查询该表并收到此错误:

discourse=# select * from email_logs;
错误:无法访问事务 4156776275 的状态
详细信息:无法打开文件“pg_xact/0F7C”:没有该文件或目录。
discourse=#

这个问题已经持续了很长时间,因此从上次备份恢复也不是一个真正的选择。除了这个“备份问题”之外,discourse 运行正常。

Email_logs 似乎只是一个日志表,如果这意味着我可以恢复备份,我并不介意丢失最终的电子邮件日志。我可以只截断 email_logs 表,还是丢失的数据会产生更多错误?

感谢您的帮助。

1 个赞