GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Postgresql 9.3 auf Centos 7 mit benutzerdefinierten PGDATA

Sie müssen einen benutzerdefinierten postgresql.service erstellen Datei in /etc/systemd/system/ , die den Standardwert PGDATA überschreibt Umgebungsvariable. Ihre benutzerdefinierte Dienstdatei kann .include die standardmäßige postgresql-Dienstdatei, sodass Sie nur das hinzufügen müssen, was Sie ändern möchten. Auf diese Weise können Upgrades immer noch modifizieren/verbessern? Zeug in der Standarddienstdatei, während Ihre Änderung erhalten bleibt.

So habe ich es gerade in Centos 7 gemacht:

cat <<END >/etc/systemd/system/postgresql.service
.include /lib/systemd/system/postgresql.service
[Service]
Environment=PGDATA=/mnt/postgres/data ## <== SET THIS TO YOUR WANTED $PGDATA
END

systemctl daemon-reload

systemctl restart postgresql.service

Verifizieren :

ps -ax | grep [p]ostgres

Aktualisierung:

Anstatt die Datei manuell zu erstellen und die .include-Zeile hinzuzufügen, können Sie auch die systemd-integrierte Methode verwenden:

systemctl edit postgresql.service

Dies öffnet Ihren Standard-Editor und speichert Ihre Änderungen in /etc/systemd/system/postgresql.service.d/override.conf


Ich denke, der "CentOS 7-Weg" besteht darin, die Servicedatei zu kopieren:

sudo cp /usr/lib/systemd/system/postgresql-9.6.service /etc/systemd/system/postgresql-9.6.service

Bearbeiten Sie dann die Datei /etc/systemd/system/postgresql-9.6.service :

# Location of database directory
Environment=PGDATA=/mnt/volume/var/lib/pgsql/9.6/data/

Starten Sie es dann sudo systemctl start postgresql-9.6 und überprüfen Sie:

# sudo ps -ax | grep postmaster
32100 ?        Ss     0:00 /usr/pgsql-9.6/bin/postmaster -D /mnt/volume/var/lib/pgsql/9.6/data/

versuchen Sie Folgendes:

 ## Login with postgres user
 su - postgres
 export PGDATA=/your_path/data
 pg_ctl -D $PGDATA start &

Es scheint, dass das eigentliche Problem darin bestand, die Umgebungsvariablen festzulegen, die ich im folgenden Thread zum Laufen gebracht habe:Centos 7-Umgebungsvariablen für den Postgres-Dienst Das Problem ist die PGDATA-Variable, die in der benutzerdefinierten /etc/systemd/system/postgresql-9.3 aus dem Inhalt von /usr/lib/systemd/system/postgresql-9.3.service erstellt werden, der die Standard-PGDATA-Variable verwendet.


Linux
  1. Erste Schritte mit PostgreSQL unter Linux

  2. Newline durch Nul ersetzen?

  3. So arbeiten Sie mit CentOS Web Panel File Manager

  4. Richten Sie virtuelle Hosts auf CentOS ein

  5. Warnung mit nftw

Linux-WC-Befehl mit Beispielen

Digitale Signaturen mit GnuPG

Verwalten von cgroups mit systemd

Erste Schritte mit systemctl

So installieren Sie PostgreSQL mit pgAdmin unter CentOS 8

Centos 7:Erste Schritte