在进行数据库恢复时,索引行大小 2712 超过了索引的 btree 版本 4 最大值 2704

jyt*_*123 6 postgresql

我正在尝试将 Postgresql 版本 9.2 的数据库备份恢复到 Postgresql 13.5,但在恢复时我收到以下消息:

索引行大小 2712 超过索引的 btree 版本 4 最大值 2704

数据库恢复显示成功,但恢复完成后数据不可用。

Zeg*_*rek 2

我的猜测是,SELECT current_setting('block_size');与新实例相比,旧实例上的 一定更大,这会导致索引中包含的非键列在 pg_restore 插入行时超出限制。您可以使用pg_restore 选项仅恢复模式--schema-only,检查索引,暂时删除它们,然后使用以下命令安全地恢复数据--data-only. 索引并不真正存在于备份中,它们是在恢复过程中从头开始重建的 - 因此您可以稍后自己进行。

是一个关于更改 PostgreSQL 块大小的线程。