postgresql - 排除损坏的页面 block 的 Postgres 转储

标签 postgresql psql dump corruption

我试图转储我的数据库。倾销时我收到以下错误。我知道我的数据库中的一个表已损坏,我可以使用排除选项来排除损坏的表并转储剩余的表。但是我正在寻找一个选项来转储甚至不包括无效页面 block 的损坏表。

我用来转储的命令是:

pg_dump -U postgres -p 5432 -d DBNAME -v -n SCHEMA_NAME -f "OUTFILE.sql"

错误打印:

 pg_dump: Dumping the contents of table "TABLE_NAME" failed: PQgetResult() failed.
    pg_dump: Error message from server: ERROR:  invalid page in block 2145280 of relation base/16384/25464

我能够访问损坏的表及其数据。所以我相信我可以访问的数据部分可以被转储。如果有任何可能实现这一点,请分享。

最佳答案

您可以设置 zero_damaged_pa​​ges = on,然后 PostgreSQL 应该清零(并忽略)此类页面。

关于postgresql - 排除损坏的页面 block 的 Postgres 转储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55533206/

相关文章:

sql - 使用 PSQL 创建一个表作为另一个表的克隆但不包括列

c++ - GDB 无法显示堆栈并显示 "#1 0x0000000000000000 in ?? ()"

c - MiniDumpWriteDump 另一个进程

mysql - 如何在执行 SQL 转储时替换某些列的值

node.js - Sequelize 列中的空值违反了非空约束

node.js - 是否可以更改日期格式?

postgresql - Postgres 将整数转换为文本

postgresql - 将单个文本字段转储到 psql 中的单独文件中

postgresql - 如何解释 Postgresql 中 SELECT...JOIN...INTO 的结果?

sql - 获取有关 postgresql 中外部排序的一些详细信息