Warum listet `pg_lsclusters` meinen Postgres-Cluster nicht auf?

9
  1. Ich habe apt-getPostgres 9.2.4 installiert (mit PPA).
  2. Ich habe pg_dropcluster --stop 9.2 mainden Standarddatenbankcluster entfernt, weil ich beabsichtigte, einen neuen Cluster auf einem separaten SSD-Volume (einem Rackspace-Blockspeicher-Volume) zu erstellen, das gerade bereitgestellt wurde.
  3. Ich habe diesen neuen Cluster erstellt, dessen Daten sich auf meinem SSD-Volume befinden, und ihn gestartet ( pszeigt alle normalen Postgres-Prozesse an, die für diesen neuen Cluster ausgeführt werden, und ich kann eine Postgres-Shell öffnen und SQL ausführen - dh sie läuft einwandfrei). Wenn ich jetzt laufe, pg_lsclusterssind keine aufgelistet.

Der mainCluster wurde gut aufgelistet, bevor ich ihn löschte. Warum wird mein neuer Cluster nicht angezeigt, selbst wenn er ausgeführt wird? Ich habe sogar den Server neu gestartet (nur für den Fall).

Orokusaki
quelle
Wie haben Sie den neuen Cluster erstellt? Auch Host-Betriebssystem und Version? Ubuntu ...? Debian ...? Andere? (Nicht viele Distributionen verwenden pg_wrapperjedoch)
Craig Ringer
@CraigRinger - Ich habe verwendet initdb -D /the/dir/- Ich glaube, ich habe gerade gemerkt, dass ich hätte verwenden pg_createcluster -d /the/dir/sollen , hätte ich nicht? Sind beide gleich, abzüglich der zusätzlichen Metadaten, die Postgres über den Cluster speichert? (Ich bin auf Ubuntu 12.04.2)
Orokusaki
Wow, in der Tat ist das der Fall - und was für ein großartiges Werkzeug mit einer so einfachen Syntax wiepg_ctlcluster 9.2 mycluster start
orokusaki
Ja, du hast es verstanden - wenn du es benutzen pg_wrapperwillst, musst du es konsequent tun.
Craig Ringer
@CraigRinger - danke. Wenn Sie das in eine Antwort einfügen (ich habe eine gemacht, aber es ist nicht großartig), werde ich Ihre akzeptieren und meine entfernen.
Orokusaki

Antworten:

8

Um diese allgemeinen Postgres-Tools mit einem Cluster verwenden zu können, müssen sie konsistent verwendet werden. Sie würden pg_createcluster -d /path/to/dataanstelle von verwenden initdb. pg_createclusterFügt den Cluster hinzu postgres-common, um diese praktischen Vorgänge zu vereinfachen. Es handelt sich genau wie pg_ctlclusterbei den Tools der unteren Ebene (z. B. initdbund pg_ctl) um einen Wrapper, der den Zugriff von einem Ort aus auf alle Ihre Cluster ermöglicht. Es gibt auch einige Standardeinstellungen, z. B. einen automatisch konfigurierten Protokollspeicherort basierend auf dem Clusternamen. Dies bedeutet, dass Sie nicht verwenden müssen, -l /var/log/my-custom.logwenn Sie den Server erstellen oder starten.

Orokusaki
quelle