Perché `pg_lsclusters` non elenca il mio cluster Postgres?


9
  1. Ho apt-getinstallato Postgres 9.2.4 (usando PPA).
  2. Ho usato pg_dropcluster --stop 9.2 mainper rimuovere il cluster di database predefinito, perché intendevo creare un nuovo cluster su un volume SSD separato (un volume di archiviazione del blocco Rackspace) appena montato.
  3. Ho creato quel nuovo cluster i cui dati risiedono sul mio volume SSD e l'ho avviato ( psmostra tutti i normali processi Postgres in esecuzione per quel nuovo cluster e sono in grado di aprire una shell Postgres ed eseguire SQL, ovvero funziona correttamente). Ora quando corro pg_lsclustersnon ce ne sono elencati.

Il maincluster elencato bene prima di eliminarlo. Perché il mio nuovo cluster non viene visualizzato, anche quando è in esecuzione? Ho anche riavviato il server (per ogni evenienza).


Bene, come hai creato il nuovo cluster? Inoltre, sistema operativo host e versione? Ubuntu ...? Debian ...? Altro? (Non molte distribuzioni usano pg_wrapperperò)
Craig Ringer

@CraigRinger - Ho usato initdb -D /the/dir/- Penso di aver appena realizzato che avrei dovuto usare pg_createcluster -d /the/dir/non avrei dovuto? Sono entrambi uguali, meno i metadati extra che Postgres memorizza sul cluster? (Sono su Ubuntu 12.04.2)
orokusaki il

Caspita, è proprio così - e che strumento fantastico con una sintassi così semplice comepg_ctlcluster 9.2 mycluster start
orokusaki,

Sì, ce l'hai - se vuoi usarlo pg_wrapperdevi farlo in modo coerente.
Craig Ringer,

@CraigRinger - grazie. Se la metti in una risposta (ne ho fatta una, ma non è eccezionale), accetterò la tua e rimuoverò la mia.
Orokusaki,

Risposte:


8

Per usare questi strumenti comuni di postgres con un cluster, devono essere usati in modo coerente. Dovresti usare pg_createcluster -d /path/to/data, invece di initdb. pg_createclusteraggiunge il cluster al postgres-commonfine di facilitare queste pratiche operazioni. È un wrapper, proprio come pg_ctlcluster, attorno agli strumenti di livello inferiore (ad esempio, initdbe pg_ctl), che fornisce l'accesso da un posto all'altro per operare su tutti i cluster. Ha anche alcune impostazioni predefinite, come una posizione di registro configurata automaticamente in base al nome del cluster. questo significa che non è necessario utilizzare -l /var/log/my-custom.logquando si crea o si avvia il server.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.