Можно ли переустановить Postresql без уничтожения существующих баз данных?

#postgresql #ubuntu

#postgresql #ubuntu

Вопрос:

У меня есть установка Postgresql 10 на Ubuntu 18.04, которая каким-то образом сломалась и не перезапускается. Могу ли я просто переустановить его, не уничтожая его базы данных, чтобы я мог снова получить доступ к базам данных? pg_dump не работает.

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

1. Обычно лучше выяснить, почему Postgres не запускается, а не переустанавливать его. Возможно, он отказывается запускаться, потому что что-то не так с каталогом данных. Тогда повторная установка ничего не изменит. Просмотр файла журнала может выявить причину.

2. Это началось, когда я изменил pg_hba.conf, из-за чего кластер не запускался. В ошибке говорилось, что «postmaster.pid» остался, поэтому я удалил его, и теперь я не могу создать файл postmaster.pid, даже если я изменю каталог. Я получаю ФАТАЛЬНУЮ ошибку: не удалось создать файл блокировки «postmaster.pid»: отказано в разрешении

Ответ №1:

Да, вы можете это сделать.
По умолчанию ваши базы данных и другие важные файлы хранятся в PGDATA.

Традиционно файлы конфигурации и данных, используемые кластером баз данных, хранятся вместе в каталоге данных кластера, обычно называемом PGDATA (по имени переменной среды, которая может использоваться для ее определения). Общим местом для PGDATA является /var/lib/pgsql/data .

https://www.postgresql.org/docs/10/storage-file-layout.html

Я не знаю, как вы будете удалять PostgreSQL, но обязательно сохраните PGDATA.
(yum или apt не удалят PGDATA)
После переустановки PostgreSQL обязательно запустите PostgreSQL с существующими PGDATA

 pg_ctl start -D YOUR_EXISTING_PGDATA/