У меня есть файл дампа пользовательского формата pg, созданный кем-то другим. У меня нет подробностей о процессе дампа.
файл mr.dump
mr.dump: setuid setgid Дамп пользовательской базы данных PostgreSQL - v1.12-0
Когда я пытаюсь запустить pg_restore, я получаю
недостаточно памяти
Некоторые исследования показывают, что это связано с повреждением данных в сжатом разделе.
Я сгенерировал файл оглавления и закомментировал загрузку данных для таблицы, в которой произошла ошибка. Это проходит за исходную ошибку, но не на другой таблице. После работы со всеми таблицами, в которых есть ошибки, я могу выполнить восстановление без пропущенных таблиц. Ошибки не все одинаковые. Я тоже вижу эти ошибки
pg_restore: [compress_io] не удалось распаковать данные: неверный тип блока
pg_restore: [compress_io] не может распаковать данные: недопустимая длина сохраненного блока
Я вижу, что есть утилиты для восстановления поврежденных сжатых данных. Можно ли вытащить поврежденные участки и починить их?
Могут ли мои проблемы быть вызваны различиями в версии PG или библиотеках сжатия ОС?
Я не знаю конфигурацию, где произошел дамп, но я получаю те же ошибки, пытаясь восстановить:
PostgreSQL 9.0.22 на x86_64-unknown-linux-gnu, скомпилирован GCC gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-11), 64-битный
и
PostgreSQL 10.7 на x86_64-pc-linux-gnu, скомпилированный gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-36), 64-битный
Любые предложения приветствуются.