PostgreSQL – invalid page in block 2196 of relation base/349583/364737

PostgreSQL – invalid page in block 2196 of relation base/349583/364737

Дата: 17.04.2018

Комментариев: 0

Буквально вчера один наш клиент пожаловался, что у него делаются бэкапы в базе 1С живущая на PostgreSQL. В связи с тем что мы предоставляем им только VPS и не более того, мы не ведали что у них там творится внутри собственно. А как оказалось уже достаточно давно бэкапы не пишутся ибо у них своего админа тоже нет и никто за этим не следит. Отправили нам обращение, посмотрели что у них там происходит и видим следующее при попытке снять резервную копию: ERROR: invalid page in block 2196 of relation base/349583/364737 Потратив целых 15 минут выяснилось что так просто взять и нажать кнопочку “Хорошо” уже не получится и какого то штатного решения нет от слова “Совсем”. Готовых скриптов тоже нет. В итоге решив что надо бы опубликовать найденное решение для тех кто использует PostgreSQL на Windows.

1. Запускаем pgAdmin.

 

2. Запускаем Query Tool и:

• Путь к базе думаю ни у кого не будет вызывать сомнения с какой базой возникла проблема, по этому опустим метод поиска имени базы зная только base/349583

• Далее что бы надо вставить текст: SELECT pg_filenode_relation(0, 364737); – в результате получаем имя таблицы. У нас это была таблица “_document143_vt2652”

• Теперь нам надо запустить её восстановление: SET zero_damaged_pages = on; VACUUM FULL _document144;

 

3. По окончании выполнения надо выполнить переиндексацию всей базы!

 

Надо учесть, что часть данных может быть утеряно из таблицы!

Последние новости

Открыть чат
1
Отсканируйте код
Здравствуйте 👋
Чем Вам помочь?
Это не чат-бот! Тут отвечают люди, по этому не всегда мгновенно 😳
Мы используем cookie-файлы для наилучшего представления нашего сайта. Продолжая использовать этот сайт, вы соглашаетесь с использованием cookie-файлов.
Принять
Отказаться