I am facing a consistent issue with pg_restore when moving databases with
large tables from PostgreSQL 10 to 13. pg_restore fails to restore indexes
on some large tables (anything over 20 million records).

pg_restore: error: could not execute query: ERROR:  out of memory
DETAIL:  Failed on request of size 214728704 in memory context "TupleSort
sort".
CONTEXT:  parallel worker
Command was: CREATE INDEX some_index_idx ON schema1.table1 USING btree
(some_field);

This happens when a database is exported with formats "custom" or
"directory". No errors occur when the same databases are exported as plain
text and imported with psql.

Initially I was importing with --jobs in several threads, but reducing
threads to 1 made no difference. I tried exporting with pg_dump versions 13
and 10. It made no difference either - restore succeeds with plain text +
psql and fails with the other formats + pg_restore.

The same doesn't happen when I import from 10 into 12. I am a bit lost and
concerned at this point about moving on with conversion to version 13.

Any guidance would be greatly appreciated!

Reply via email to