主要问题:
从表中选择时获取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列,似乎都会发生这种情况。
答案 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文件。恢复的数据库现在启动正常,所有查询都按预期运行。