丢失块号0表示pg_toast_2619中的吐司值37946637

时间:2016-07-20 17:08:21

标签: postgresql

主要问题: 从表中选择时获取insert section

导致问题的步骤: - 使用来自主数据库的"ERROR: missing chunk number 0 for toast value 37946637 in pg_toast_2619"并尝试将其还原到开发主机上。 - 做了pg_basebackup并启动了Dev db。 - 启动Dev db后,当我查询varchar列时,我不断得到:

pg_resetxlog -f /${datadir}

对于已恢复的db中的大多数varchar列,似乎都会发生这种情况。

  • 还有其他人看过吗?
  • 有没有人知道为什么会发生以及如何解决?

2 个答案:

答案 0 :(得分:0)

pg_resetxlog是您不应该使用的最后一个实用工具。制作完全有效备份的最简单方法是使用带有-X s选项的pg_basebackup。这是一个大写的X.它的作用是basebackup打开两个连接。一个用于复制所有数据文件,另一个用于接收备份期间写入的所有wal。这样你就不会遇到你需要的部分wal已被删除的问题。

答案 1 :(得分:0)

我从原始问题开始尝试了一些事情。我可以确认我的错误的来源"错误:在pg_toast_2619"中为toast值37946637丢失了块号0在恢复过程中正在做一个pg_resetxlog。

我今天重新进行了恢复,但这一次,使用recovery.conf从Primary应用了pg_xlog文件。恢复的数据库现在启动正常,所有查询都按预期运行。