我试图转储我的数据库。倾销时我收到以下错误。我知道我的数据库中的一个表已损坏,我可以使用排除选项来排除损坏的表并转储剩余的表。但是我正在寻找一个选项来转储甚至不包括无效页面 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_pages = on
,然后 PostgreSQL 应该清零(并忽略)此类页面。
关于postgresql - 排除损坏的页面 block 的 Postgres 转储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55533206/