Setel ulang PostgreSQL sepenuhnya ke default?

16

Pertanyaan

Apakah ada cara untuk sepenuhnya mereset instalasi PostgreSQL di Linux, sehingga ia dalam kondisi yang sama seperti ketika saya menginstalnya?

Ide

Saya sudah pertimbangkan

rm -rf /var/lib/pgsql/*
rm -rf /var/lib/pgsql/backups/*
rm -rf /var/lib/pgsql/data/*

tapi mungkin itu bukan metode yang disarankan.

Tujuan

Ini akan berguna untuk menghilangkan sisa overs dari program sebelumnya yang telah menggunakannya.

Jasmine Lognnes
sumber
Kemungkinan duplikat serverfault.com/q/233234/69930 .
halfer

Jawaban:

4

Yang seharusnya melakukannya - pastikan dulu bahwa konfigurasi saat ini benar - benar menyimpan file dalam direktori tersebut.

Setelah selesai, mulai ulang basis data:

sudo -U pgsql initdb
Jenny D
sumber
1
Tidak, tolong jangan. Di Ubuntu setidaknya itu akan menyebabkan kekacauan yang mengerikan karena ia mengharapkan Anda untuk menggunakan alat pembungkusnya sendiri.
Craig Ringer
1
Iya kan? Nah, ada satu alasan lagi untuk menggunakan beberapa sistem lain, lalu ... Secara pribadi saya akan memilih FreeBSD, tetapi masing-masing untuk mereka sendiri.
Jenny D
@Craig: kekacauan macam apa yang akan terjadi? Saya baru saja menggunakan metode ini di Ubuntu, dan tampaknya baik bagi saya . Apakah Anda akan menambahkan detail pada jawaban Anda?
halfer
1
@halfer Untuk memulai dengan postgresql.conf dan pg_hba.conf tidak akan berada di tempat yang diharapkan oleh skrip ububtu. Atau mereka akan mengabaikan initdb yang dibuat dan terus menggunakan yang lama.
Craig Ringer
bagaimana jika ini adalah basis data jauh yang kami sambungkan dan bukan yang kami inisialisasi secara lokal?
anon58192932
24

Itu semua tergantung pada bagaimana itu diinstal.

Ubuntu, dari paket (built-in atau apt.postgresql.org)

Gunakan pg_wrapper. Lihat dokumentasi Ubuntu untuk PostgreSQL . Anda ingin pg_dropclustersemua cluster Pg yang ada, lalu pg_createclusteryang baru bersih.

Jangan tidak hanya menghapus dir data dan re-initdb.

CentOS / RH / Fedora, paket bawaan

Saya tidak menginstal ini dan tidak dapat dengan mudah menguji sekarang. Dari memori saya pikir aman untuk hanya menghentikan server dan menghapus data dir.

Paket CentOS / RH / Fedora, yum.postgresql.org

Lihat /usr/share/doc/postgresql??-?.?.?/README.rpm-dist.

Hentikan server dengan systemctlatau serviceperintah wrapper, hapus dir data, lalu jalankan /usr/pgsql-9.3/bin/postgresql93-setup initdb(sesuaikan jalur yang sesuai untuk versi Anda).

Distro apa pun, dari penginstal EDB

Hentikan server, hapus dir data dan initdbcluster baru. Lihat dokumen penginstal.

Dari sumber

Hentikan server, hapus dir data, masukkan kembali initdb.

OS X

Homebrew: brew uninstall postgresql; brew cleanup; brew install postgresql

Postgres.app? Pemasang EDB? MacPorts?

Temukan bir. Minumlah bir. Ulang. Jika ini tidak membuat rasa sakitnya hilang, dapatkan sesuatu yang lebih kuat.

Windows

  • Hentikan layanan
  • Hapus dir data
  • jalankan kembali initdb menggunakan runas.exesebagai pengguna postgres (pre-9.2) atau NETWORKSERVICE(9.2+). Atau hanya mengubah kepemilikan sesudahnya.
Craig Ringer
sumber
1
Untuk OS X, brew uninstall dan pembersihan tidak menyentuh dir data saya /usr/local/var/[email protected]. (menghapus aplikasi di /usr/local/opt/[email protected], perhatikan "opt" bukan "var") "rm -rf /usr/local/var/[email protected]" diperlukan sebelum menginstal ulang.
Curtis Yallop
4

Bukankah lebih baik menghapus dan menginstal ulang?

Dengan begitu Anda akan mendapatkan versi terbaru dan memperbarui semua ketergantungan di sepanjang jalan.

Jalankan: sudo apt-get --purge menghapus postgresql

Kemudian: sudo apt-get install postgresql

i-CONICA
sumber
1
Ini tidak menghapus pengguna DB + yang ada (pada Postgres 9.5)
Sebastian Wagner