postgresql - pg_toast_2619 中 toast 值 37946637 缺少 block 号 0

标签 postgresql

主要问题: 从表中选择时获取 “错误:pg_toast_2619 中 toast 值 37946637 缺少 block 编号 0”

导致问题的步骤: - 使用主数据库中的 pg_basebackup 并尝试将其恢复到开发主机上。 - 执行了 pg_resetxlog -f/${datadir} 并启动了开发数据库。 - 启动 Dev 数据库后,当我查询 varchar 列时,我不断得到:

psql> select text_col_name from big_table;

ERROR:  missing chunk number 0 for toast value 37946637 in pg_toast_2619

恢复的数据库中的大多数 varchar 列似乎都会发生这种情况。

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

最佳答案

pg_resetxlog 是一个不得已而为之的工具,您最好不要使用它。制作完整工作备份的最简单方法是使用带有 -X s 选项的 pg_basebackup。那是一个大写的 X。它所做的是 basebackup 打开两个连接。一个用于复制所有数据文件,一个用于接收在备份期间写入的所有 wal。这样你就不会遇到你需要的部分 wal 已经被删除的问题。

关于postgresql - pg_toast_2619 中 toast 值 37946637 缺少 block 号 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38486711/

相关文章:

postgresql - 在同一查询中使用列参数化设置返回函数

postgresql - 函数 PostgreSQL 9.5 中的排序结果

java - 我应该把 JDBC 驱动程序放在哪里?

json - Postgresql:如何对 json 数组执行 LIKE 查询?

postgresql - postgres createuser 使用来自终端的密码

javascript - 将 PostgreSQL 数据正确解析为 Highcharts 图表对象

postgresql - 仅使用一个 Linux Java 进程/一个线程,每分钟可以完成多少次插入?

ruby-on-rails - Rails 日期晚于

PostgreSQL 部分唯一索引和更新插入

c# - 是否有 .net 驱动程序支持与 PostgreSQL 完全验证的 SSL 连接?