Frage Ändern und initialisieren Sie PostgreSQL 9.3-Standarddaten und Protokollverzeichnisse auf Ubuntu 12.04 LTS


In Azure mit dem Ubuntu 12.04 LTS-Image versuchen wir, Postgre 9.3-Standarddaten und Protokolldateipfade zu ändern und sie auch zum ersten Mal auf einem sekundären Laufwerk zu initialisieren /mnt/pgdata. Wir beginnen mit dem Punkt, an dem Postgres 9.3 eine neue Installation über apt-get war.

Wir haben Postgres gestoppt: sudo service postgresql stop.

Wir haben versucht, pg_createcluster auszuführen

Im Folgenden werden nur die Hilfeseiten angezeigt. Wahrscheinlich, weil es die Version und den Namen params fehlt.

pg_createcluster -d /mnt/pgdata/data -l /mnt/pgdata/log --start-conf auto

Die folgenden Ergebnisse in "Fehler: Cluster-Konfiguration ist bereits vorhanden", auch wenn nichts vorhanden ist /mnt/pgdata.

pg_createcluster 9.3 main -d /mnt/pgdata/data -l /mnt/pgdata/log --start-conf auto

Wir sind im Allgemeinen relativ neu in Linux, also seien Sie bitte genau mit Ihrer Antwort.

Außerdem haben wir folgende Fragen:

  1. Ist es in Ordnung, den direkten Mount-Pfad zu verwenden, oder ist es besser, eine symbolische Verbindung zu verwenden?
  2. Gibt es noch etwas anderes, was wir tun müssen, um Postgres 9.3 mit diesen Standarddaten auf dem Standard-Port einzurichten und automatisch mit dem Server zu starten?
  3. Irgendwelche anderen Empfehlungen?

5
2017-10-04 15:33


Ursprung




Antworten:


Der Grund für diesen Fehler: "Error: cluster configuration already exists" ist das der Name main ist bereits dem Cluster zugewiesen, der anfänglich erstellt wird.

Wenn Sie keine Daten darin haben, können Sie sie löschen, bevor Sie Ihre eigenen erstellen mit:

pg_dropcluster 9.3 main

Dies hat auch den erwünschten Effekt, dass Ihrem neuen Cluster die Portnummer zugewiesen wird 5432 anstelle von Nicht-Standard 5433.

Ob Sie einen direkten Mount-Pfad oder einen symbolischen Link verwenden, ist nicht wirklich wichtig, aber beachten Sie, dass Konfigurationsdateien in erstellt werden /etc/postgresql/<version>/<clustername>/ außerhalb des Datenverzeichnisses.

Gemäß seiner Manpage, pg_createcluster Der Befehl erwartet die Optionen vor Version und Name, also lautet der Befehl:

pg_createcluster -d /mnt/pgdata/data -l /mnt/pgdata/log --start-conf auto 9.3 main

Das Logfile auch haben /mnt/pgdata macht es unerreichbar für logrotate, so wird es endlos wachsen. Sie können sich ansehen /etc/logrotate.d/postgresql-common um zu sehen, wie es für die Verarbeitung konfiguriert ist /var/log/postgresql/*.log


5
2017-10-07 09:03





Auf meiner Maschine wurde dies gelöst durch:

mkdir /var/run/postgresql
chown postgres:postgres /var/run/postgres
service postgresql restart

0
2018-06-15 13:58