Wie Sie herausfinden, ob ein Verzeichnis ist eine gültige PostgreSQL-cluster
Habe ich einige code, der die Anrufe der Befehl pg_ctl auf einem bestimmten Pfad und prüft die Ausgabe, um festzustellen, ob es eine gültige PostgreSQL-cluster:
pg_ctl status -D <data_directory>
Jedoch, während unittesting negativ auf eine bekannte nicht-cluster-Verzeichnis, es ist nicht zuverlässig das erwartete Ergebnis zurückgibt des pg_ctl: directory <data_directory> is not a database cluster directory
auf meinem server zu bauen; stattdessen gibt es zurück pg_ctl: no server running
.
Gibt es eine weitere todsichere Weg, um zu ermitteln, ob das Verzeichnis gültig ist cluster?
- Es ist einfach zu bestimmen ist es nicht. Fehlt
PG_VERSION
Dateiglobal/pg_control
usw. Zu bestimmen gilt, ist offen; das, was definiert "gültig" und wie streng Sie sein wollen? Wenn Sie gerade suchen ", sieht halbwegs wie ein PostgreSQL-Daten-Verzeichnis", überprüfen SiePG_VERSION
und die Anwesenheit vonbase/pg_control
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden Sie die folgenden Befehle zum initialisieren der DB-Verzeichnis.
Dann können Sie die Informationen über die Initialisierung.
Durch die Art und Weise, wenn Sie anfangen wollen, Ihre psql schnell, setzen PGDATA variable in der Konfiguration-Datei, dann verwenden Sie
pg_ctl start
starten Sie Ihre psql.Beginnen erste mal Ihre Postgres-server mit einzelnen Knoten. Wir sollten die folgenden Schritte,
Schritt 1. Verzeichnis anlegen lassen sagen: /home/rajeev/pg_data_1
Schritt 2. initialisieren der cluster, die kopieren alle exe, lib, Abhängigkeit config etc.
postgres_home> initdb -D /home/rajeev/pg_data_1
wenn erfolgreich initialisieren Sie Ihre server erhalten Sie folgende log-Meldung
Erfolg. Sie können nun starten Sie den Datenbank-server mittels:
pg_ctl -D ^"/home/rajeev/pg_data_1" -l logfile start
Schritt 3: Starten Sie die Postgres-Knoten
$postgres_home>pg_ctl.exe -D /home/rajeev/pg_data_1 start-U postgres -P pass123 -S auto
Schritt 4: start, postgress CLI