![сбой при запуске postgresql](https://rvso.com/image/83712/%D1%81%D0%B1%D0%BE%D0%B9%20%D0%BF%D1%80%D0%B8%20%D0%B7%D0%B0%D0%BF%D1%83%D1%81%D0%BA%D0%B5%20postgresql.png)
Я установил базу данных postgresql на Redhat 7.1 и решил переместить базу данных на устройство ISCSI (LUN) внутри логического тома, смонтированного при запуске машины (отформатированного в xfs). Точка монтирования — /var/lib/pgsql
При загрузке сервера postgresql.service находится в состоянии сбоя.
В messages.log:
systemd: mounting /var/lib/pgsql
starting PostgreSQL database server
kernel sdv: unknown partition table
sd 2:0:0:0: [sdb] attached SCSI disk
xfs (dm-4): Mounting V4 Filesystem
postgresql-check-db-dir: "/var/lib/pgsql/data" is missing or empty
postgresql.service: control process exited, code=exited status=1
Failed to start PostgreSQL database server.
Когда я вошел на сервер, если попытаться вручную запустить базу данных: systemctl start postgresql
-> OK (и я не теряю никаких данных, база данных доступна)
Я думаю, что проблема в порядке процесса загрузки: сначала должна быть запущена сетевая служба, затем iscsi, затем lvm и т. д.
Поэтому я попытался принудительно установить зависимости от /usr/lib/systemd/system/postgresql.service, добавив «After=lvm-pgscan.service iscsi.service» и т. д., но это ничего не изменило.
Есть идеи ?
решение1
Судя по строке комментария, похоже, что редактирование /usr/lib/systemd/system/postgresql.service
исправило After=local-fs.target
ситуацию. Подсказкой для меня было сообщение:
postgresql-check-db-dir: «/var/lib/pgsql/data» отсутствует или пуст
что подразумевало, что postgres пытался запуститься до того, как /var
был смонтирован. Добавление after
ограничения заставляет systemd ждать, пока локальные файловые системы не будут смонтированы, прежде чем запускать postgres.