我想把我的数据库翻个底朝天。在转储时,我收到了以下错误。我知道数据库中的表已损坏,可以使用exclude选项排除损坏的表并转储其余的表。但是我正在寻找一个选项来转储损坏的表,排除无效的页块。
我用来转储的命令是:

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_pages = on,然后PostgreSQL将这些页面归零(并忽略)。

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

10-16 22:42