Mengapa `pg_lsclusters` tidak mencantumkan cluster Postgres saya?

9
  1. Saya apt-getmenginstal Postgres 9.2.4 (menggunakan PPA).
  2. Saya dulu pg_dropcluster --stop 9.2 mainmenghapus cluster database default, karena saya bermaksud membuat cluster baru pada volume SSD yang terpisah (volume penyimpanan blok Rackspace) yang baru saja dipasang.
  3. Saya membuat cluster baru yang datanya berada di volume SSD saya dan memulainya ( psmenunjukkan semua proses Postgres normal berjalan untuk cluster baru dan saya dapat membuka shell Postgres dan menjalankan SQL - yaitu, itu berjalan dengan baik). Sekarang ketika saya menjalankan pg_lsclusterstidak ada yang terdaftar.

The mainCluster terdaftar baik-baik saja sebelum saya dihapus. Mengapa cluster baru saya tidak muncul, bahkan ketika sedang berjalan? Saya bahkan telah me-reboot server (untuk berjaga-jaga).

orokusaki
sumber
Nah, bagaimana Anda membuat cluster baru? Juga, host OS dan versi? Ubuntu ...? Debian ...? Lain? (Namun tidak banyak distro yang digunakan pg_wrapper)
Craig Ringer
@CraigRinger - Saya menggunakan initdb -D /the/dir/- Saya pikir saya baru menyadari bahwa saya seharusnya menggunakan pg_createcluster -d /the/dir/seharusnya tidak? Apakah keduanya sama, minus data meta ekstra apa pun yang disimpan Postgres tentang cluster? (Saya di Ubuntu 12.04.2)
orokusaki
Wow, memang itu masalahnya - dan alat yang luar biasa dengan sintaks sederhana sepertipg_ctlcluster 9.2 mycluster start
orokusaki
Yap, Anda mengerti - jika Anda ingin menggunakannya pg_wrapperAnda harus melakukannya secara konsisten.
Craig Ringer
@CraigRinger - terima kasih. Jika Anda memasukkannya ke dalam jawaban (saya membuat satu, tapi itu tidak hebat), saya akan menerima Anda dan menghapus milik saya.
orokusaki

Jawaban:

8

Untuk menggunakan alat-alat umum postgres ini dengan sebuah cluster, mereka harus digunakan secara konsisten. Anda akan menggunakan pg_createcluster -d /path/to/data, bukan initdb. pg_createclustermenambahkan cluster postgres-commonuntuk memfasilitasi operasi praktis ini. Ini adalah pembungkus, seperti halnya pg_ctlcluster, di sekitar alat tingkat bawah (misalnya, initdbdan pg_ctl), menyediakan akses dari satu tempat ke tempat operasi pada semua cluster Anda. Ini juga memiliki beberapa default, seperti lokasi log yang dikonfigurasi secara otomatis berdasarkan nama cluster. ini berarti Anda tidak perlu menggunakan -l /var/log/my-custom.logsaat Anda membuat atau memulai server.

orokusaki
sumber