Fehler beim Starten von PostgreSQL

Fehler beim Starten von PostgreSQL

Ich habe eine PostgreSQL-Datenbank auf Redhat 7.1 installiert und mich entschieden, die Datenbank auf ein ISCSI-Gerät (LUN) innerhalb eines logischen Volumes zu verschieben, das beim Starten der Maschine gemountet wird (xfs-formatiert). Der Mounting-Punkt ist /var/lib/pgsql

Beim Booten des Servers weist postgresql.service den Status „Fehlgeschlagen“ auf.

Im 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.

Wenn ich am Server angemeldet bin und versuche, die Datenbank manuell zu starten: systemctl start postgresql--> OK (und ich verliere keine Daten, die Datenbank ist verfügbar)

Ich denke, es ist ein Problem mit der Reihenfolge des Startvorgangs: Der Netzwerkdienst muss gestartet werden, dann iscsi, dann lvm usw.

Also habe ich versucht, Abhängigkeiten von /usr/lib/systemd/system/postgresql.service zu erzwingen, indem ich „After=lvm-pgscan.service iscsi.service“ usw. hinzugefügt habe, aber es ändert nichts.

Irgendwelche Ideen ?

Antwort1

Basierend auf der Kommentarzeichenfolge scheint es, dass die Situation /usr/lib/systemd/system/postgresql.servicedurch Bearbeiten After=local-fs.targetbehoben wurde. Der Hinweis für mich war die Nachricht:

postgresql-check-db-dir: "/var/lib/pgsql/data" fehlt oder ist leer

was bedeutete, dass Postgres versucht hat, zu starten, bevor /vares gemountet wurde. Durch das Hinzufügen der afterEinschränkung wird systemd gezwungen, zu warten, bis die lokalen Dateisysteme gemountet sind, bevor Postgres gestartet wird.

verwandte Informationen