Задать вопрос
@pasha_a
Люблю ставить перед собой цели и добиваться их.

Как определить на ранних стадиях что в PostgreSQL что-то начало сбоить?

Добрый день!
Подскажите, пожалуйста, есть ли какие-то методики проверки БД и самого Postgres на ошибки?
Что-то типа самотестирования сервера БД?
В частности, столкнулся с ситуацией когда начались проблемы со служебными таблицами и я это заметил лишь тогда когда выдало ошибку на очередном бэкапе.
Проблема была в том, что начала сбоить карта памяти, на которой работал Postgres.
Согласен что можно использовать не карту памяти, а винчестер и т.п., но ничто не вечно и не идеально.
Потому хотелось бы иметь возможность выявлять подобные ошибки раньше, с тем чтобы иметь возможность нормально извлечь данные и либо поремонтировать, но, скорее, переустановить Postgres.
  • Вопрос задан
  • 91 просмотр
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 2
ky0
@ky0
Миллиардер, филантроп, патологический лгун
Ничто не вечно и не идеально, кроме кластера с отстающей на несколько часов репликой и чётким планом бэкапирования.

Ваш случай - не про постгрес. Для исключения проблем с файловой системой важные базы обычно кладут на отказоусточивое хранилище.
Ответ написан
mayton2019
@mayton2019
Bigdata Engineer
Если носитель информации - ненадежный - то к нему добавляют дополнительные коды типа Хэмминга которые восстанавливают поврежденные биты после сбоя. На 99% нормальных носителей это реализовано аппаратно. Если твоя флешка сбоит или не очень надежна то желательно купить новую. Если ты всё таки хочешь наковырять золота в навозе - посмотри в сторону утилиты par2 manpages.org/par2 она на десяток процентов увеличит размер твоих бэкапов но будет гарантировать фиксацию нескольких бит если такое будет. Она работает поверх обычной файловой системы и ее коды контроля будут просто дополнительными файлами рядышком.

А проверить восстановистя ли бэкап в принципе - невозможно. Как в той философской мысли - нельзя узнать какой пудинг пока ты его не съел. Поэтому и гарантировать целосность бэкапа на логическом уровне можно только проведя симуляцию его полного восстановления в БД.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы