Как восстановить удаленные файлы индексов?

Есть база данных postgres (файловой структурой), расшифрованная после шифровальщика. Дешифратор удаляет тысячи индексных файлов, т.к. они маленького объёма, а сами базы целые. Интересна именно эта рабочая база, именно файловой структурой, не бэкапы.

Если я запускаю REINDEX, то он говорит мне
ERROR:  could not open file "base/26458/4745576": No such file or directory

Я подсовываю ему пустой 8кб файлик, снова запускаю REINDEX, он хочет следующий. Я автоматизирую это дело, но каждый проход по 20 секунд на 16-ядерном процессоре с 32 процессами и быстром SSD nvme, ещё и пара сотен гигабайт записей на диск за каждый проход. Размер базы 30 ГБ. Если индексов, например 15 тысяч, ему ведь месяц пустые файлики подсовывать. И ещё непонятно, что будет после этого, сработают ли пустые файлики, чтобы он в них записал индексы. Пока что он просто проверяет их наличие, они так и остаются пустыми, просто ругается на следующий несуществующий файлик.

Может есть какой-то более простой способ? Например, как-то получить список имён всех индексных файлов, которые ему требуются, и накопировать их пустышки за минуту вместо запуска REINDEX и выдёргивания очередного имени.
Может вообще другой подход требуется.
  • Вопрос задан
  • 609 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы