Welcher Befehl zum Neustarten des PostgreSQL 12-Dienstes

Welcher Befehl zum Neustarten des PostgreSQL 12-Dienstes

Ich bin dabei, den PostgreSQL 12-Dienst unter Ubuntu 18 neu zu starten. Zuerst überprüfe ich seinen Status: sudo service postgresql status. Dort steht:

postgresql.service - PostgreSQL RDBMS
   Loaded: loaded (/lib/systemd/system/postgresql.service; disabled; vendor pres
   Active: inactive (dead)
lines 1-3/3 (END)...skipping...
postgresql.service - PostgreSQL RDBMS
   Loaded: loaded (/lib/systemd/system/postgresql.service; disabled; vendor preset: enabled)
   Active: inactive (dead)

Es scheint zwar inaktiv zu sein, aber ich kann trotzdem eine Verbindung herstellen.

Dann führe ich eine weitere Prüfung durch: systemctl status postgresql@12-main. es heißt:

root@db-services:/# systemctl status postgresql@12-main[email protected] - PostgreSQL Cluster 12-main
   Loaded: loaded (/etc/systemd/system/[email protected]; enabled; vendor preset: enabled)
  Drop-In: /etc/systemd/system/[email protected]
           └─override.conf
   Active: active (running) since Mon 2022-06-13 09:02:25 WIB; 5 months 27 days ago
 Main PID: 5807 (postgres)
    Tasks: 86 (limit: 4915)
   CGroup: /system.slice/system-postgresql.slice/[email protected]
           ├─ 1586 postgres: 12/main: postgres db_sync 10.100.3.248(61414) idle
           ├─ 1588 postgres: 12/main: postgres db_sync 10.100.3.248(61415) idle
           ├─ 1606 postgres: 12/main: docreg db_docreg 10.100.8.150(18385) idle
           ├─ 1607 postgres: 12/main: docreg db_docreg 10.100.8.150(18399) idle
           ├─ 1608 postgres: 12/main: docreg db_docreg 10.100.8.150(18401) idle
           ├─ 1609 postgres: 12/main: docreg db_docreg 10.100.8.150(18421) idle
           ├─ 2592 postgres: 12/main: docudigtl db_docudigtl 10.100.8.112(34956) idle
           ├─ 3518 postgres: 12/main: docudigtl db_docudigtl 127.0.0.1(48290) idle
           ├─ 5150 postgres: 12/main: docudigtl db_docudigtl 10.100.7.114(61504) idle
           ├─ 5807 /usr/lib/postgresql/12/bin/postgres -D /data/postgresql/12/main -c config_file=/etc/postgresql/12/main/postgresql.co
           ├─ 5883 postgres: 12/main: docudigtl db_docudigtl 127.0.0.1(48626) idle
           ├─ 6316 postgres: 12/main: docudigtl db_docudigtl 127.0.0.1(48704) idle
           ├─ 7049 postgres: 12/main: docudigtl db_docudigtl 127.0.0.1(48870) idle
           ├─ 7986 postgres: 12/main: docudigtl db_docudigtl 10.100.7.114(56240) idle
           ├─ 8146 postgres: 12/main: docudigtl db_docudigtl 10.100.8.114(47432) idle
           ├─ 8183 postgres: 12/main: docudigtl db_docudigtl 127.0.0.1(49022) idle
           ├─ 8360 postgres: 12/main: docudigtl db_docudigtl 127.0.0.1(49036) idle
           ├─ 8445 postgres: 12/main: docudigtl db_docudigtl 10.100.8.114(47478) idle
           ├─ 9590 postgres: 12/main: docudigtl db_docudigtl 10.100.8.106(56094) idle
           ├─ 9687 postgres: 12/main: docudigtl db_docudigtl 10.100.8.112(50980) idle
           ├─10148 postgres: 12/main: docudigtl db_docudigtl 127.0.0.1(40646) idle
           ├─10324 postgres: 12/main: docudigtl db_docudigtl 127.0.0.1(40680) idle
           ├─11079 postgres: 12/main: docudigtl db_docudigtl 127.0.0.1(49496) idle
           ├─11602 postgres: 12/main: docudigtl db_docudigtl 127.0.0.1(58152) idle
           ├─11886 postgres: 12/main: docudigtl db_docudigtl 127.0.0.1(44674) idle
           ├─12106 postgres: 12/main: docudigtl db_docudigtl 127.0.0.1(49618) idle
           ├─13112 postgres: 12/main: docudigtl db_docudigtl 10.100.6.145(55014) idle
           ├─13122 postgres: 12/main: docudigtl db_docudigtl 10.100.6.145(55015) idle
           ├─13145 postgres: 12/main: docudigtl db_mysapk 10.100.6.145(55016) idle
           ├─13202 postgres: 12/main: docudigtl db_docudigtl 10.100.7.114(62073) idle
           ├─13945 postgres: 12/main: checkpointer
           ├─13946 postgres: 12/main: background writer
           ├─13947 postgres: 12/main: walwriter
           ├─13948 postgres: 12/main: autovacuum launcher
           ├─13949 postgres: 12/main: stats collector
           ├─13950 postgres: 12/main: logical replication launcher

Es ist also tatsächlich aktiv!

  1. Was ist der Unterschied zwischen den beiden Befehlen?
  2. Welches soll ich für den Neustart verwenden: systemctl restart postgresql@12-mainODER sudo service postgresql restart?

Antwort1

Es gibt spezielle systemd-Dienste, dieVorlagendienste.

Ein Vorlagendienst kann ein Argument wie dieses annehmen: template_service@argument.

Ein Vorlagendienst wird nie selbst gestartet, kann aber mit einem bestimmten Argument instanziiert werden. Dies bedeutet, dass derselbe (Vorlagen-)Dienst in mehreren Instanzen ausgeführt werden kann, die jeweils durch ihr Argument identifiziert werden. Beispiel:

systemctl starte template_service@a
systemctl starte template_service@b
systemctl starte template_service@c

In Debian und einigen abgeleiteten Distributionen (wie Ubuntu):

Jede PostgreSQL-Instanz (Cluster) gehört zu einem instantiierten postgresql@Vorlagendienst. Das Argument für den postgresql@Dienst hat die Form version-clustername.

Dies ist beispielsweise postgresql@12-mainein systemd-Dienst, der eine PostgreSQL 12-Serverinstanz (Cluster) mit dem Clusternamen main(der der Standard ist) darstellt.

Es gibt einen weiteren systemd-Dienst, der einfach heißt postgresql. Dies ist eine Art Catch-All-Dienst. Wenn Sie ihn starten oder stoppen, werden alle PostgreSQL-Instanzen gestartet oder gestoppt (dieses Verhalten kann deaktiviert werden instart.conf).

Sie können jedoch nicht systemctl status postgresqlüberprüfen, ob PostgreSQL-Dienste ausgeführt werden, selbst wenn in Ihrem System nur ein einziger PostgreSQL-Server eingerichtet ist. Sie sollten immer den Status des jeweiligen instanziierten Dienstes überprüfen, um einen aussagekräftigen Statusbericht zu erhalten.

DerserviceDer Befehl wurde für das alte Init-System (SysV-Init) verwendet, bevor systemd eingeführt wurde. Er funktioniert aus Gründen der Abwärtskompatibilität immer noch, aber Sie sollten den systemctlBefehl unbedingt auf Systemen verwenden, auf denen systemd verfügbar ist.

verwandte Informationen