![Fehler beim Starten von PostgreSQL](https://rvso.com/image/83712/Fehler%20beim%20Starten%20von%20PostgreSQL.png)
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.service
durch Bearbeiten After=local-fs.target
behoben 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 /var
es gemountet wurde. Durch das Hinzufügen der after
Einschränkung wird systemd gezwungen, zu warten, bis die lokalen Dateisysteme gemountet sind, bevor Postgres gestartet wird.