排除损坏的页面块的 Postgres 转储

Postgres Dump Excluding Corrupted Page Block

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

我用来转储的命令是:

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

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

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