Неожиданно отключили свет в офисе и сервер PostgresSQL перестал запускаться, что делать?
Зачастую проблема решается достаточно просто, но в некоторых случаях придется восстанавливать базу из резервной копии.
В статье рассмотрю два варианта, когда нужно просто очистить кэш сервера.
Рассматривать пример работы будем на PostgresSQL 11.7 под операционной системой Windows.
⛔️ ВАЖНО. Выполнение любых операций с базой данных нужно производить при наличии актуальной резервной копии базы данных!
Инструкция по резервному копированию баз на PostgresSQL
Очистка кэша PostgresSQL
Для очистки кэша воспользуемся утилитой — pg_resetwal.
pg_resetwal очищает журнал предзаписи (WAL) и может сбросить некоторую другую управляющую информацию, хранящуюся в файле pg_control. Данная функция может быть востребована при повреждении этих файлов. Использовать её нужно только как крайнюю меру, когда запуск сервера оказывается невозможен из-за этого повреждения.
После выполнения этой команды запуск сервера, скорее всего, будет возможен, однако стоит учитывать, что база данных может содержать несогласованные данные из-за транзакций, зафиксированных частично. Вы должны немедленно выгрузить данные, а затем восстановить данные. После этого проверьте целостность базы и внесите необходимые коррективы.
Команда:
"C:\Program Files\PostgreSQL\11.7-5.1C\bin\pg_resetwal.exe" -f -D "C:\Program Files\PostgreSQL\11.7-5.1C\data"
После параметра -D указывается путь к каталогу, где хранятся базы Postgres. Этот путь может отличаться от представленного в примере.
Для запуска команды нужно запустить Командную строку Windows под правами Администратора.
Через поиск вводим команду CMD, далее щелкаем по найденной утилите правой кнопкой мышки и выбираем пункт — Запуск от имени Администратора. Далее в открывшейся консоли вводим нашу команду:
После выполнения команды можно пробовать запускать службу сервера PostgresSQL.
#1с #базаданных #postgresql #резервноекопирование #восстановлениеданных #windows #сервер