Saya menjalankan Ubuntu 12,04 di Oracle VirtualBox. Beberapa bulan yang lalu, saya menginstal server PostgreSQL versi 9.1 di komputer saya. Baru-baru ini, saya mengetahui bahwa server PostgreSQL 9.3 mendukung tipe data JSON, jadi saya memutuskan untuk memutakhirkan.
Saya memutakhirkan ke 9.3 dengan mengikuti instruksi di sini:
https://wiki.postgresql.org/wiki/Apt
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install postgresql-9.3 pgadmin3
Server ini menginstal versi 9.3 di komputer saya bersama versi 9.1. Menjalankan pg_lsclusters setelah boot baru memberi:
Ver Cluster Port Status Owner Data directory Log file
9.1 main 5433 online postgres /var/lib/postgresql/9.1/main /var/log/postgresql/postgresql-9.1-main.log
9.3 main 5432 online postgres /var/lib/postgresql/9.3/main /var/log/postgresql/postgresql-9.3-main.log
Saya kemudian melakukan pemeliharaan pasca pemutakhiran berikut: Saya mengekspor beberapa tabel dari server 9.1 saya dengan pg_dump dan mengembalikannya ke server 9.3 saya. Saya kemudian membuka file konfigurasi saya untuk 9.1 dan 9.3 di /etc/postgresql/$VERSION/main/postgresql.conf
dan menukar nomor port mereka sehingga klien psql saya terhubung ke server baru secara default.
Pertanyaan saya adalah ini. Baik 9.1 maupun 9.3 mulai saat boot. Saya ingin mencegah 9,1 dari boot otomatis, karena membutuhkan sekitar 5% dari memori sistem saya. Bagaimana saya bisa melakukan ini?
Sumber daya berkonsultasi:
Halaman doc PostgreSQL tentang memulai server mengarahkan saya ke direktori init.d standar. Direktori init.d saya memang mengandung skrip postgresql
. Sepertinya skrip ini dapat dikonfigurasi untuk meluncurkan hanya satu versi, tetapi perubahan yang diperlukan tidak jelas bagi saya.
http://www.postgresql.org/docs/9.1/interactive/server-start.html
Posting di bawah ini sangat informatif, tetapi menunjukkan cara menghapus cluster, bukan cara menonaktifkannya saat startup. Saya ingin membiarkan cluster lama saya terinstal, karena saya mungkin ingin mengambil informasi lebih lanjut darinya.
Saya telah mempertimbangkan untuk menulis skrip untuk membunuh server setelah sistem selesai memuat, tetapi ini tampaknya tidak efisien. Apakah ada cara yang lebih bersih untuk menonaktifkan versi 9.1 saat boot?
sumber
Debian membuat beberapa skrip (seperti utilitas cluster pg_ *) untuk menyederhanakan menjalankan beberapa versi atau instalasi PostgreSQL pada satu server, itulah sebabnya mengapa ini tidak didokumentasikan di postgresql.org.
Saya tidak yakin apakah
.deb
paket PostgreSQL sendiri menggunakan mekanisme startup yang sama dengan Debian, tetapi melihat paket yang saya miliki, jika Anda membuat/etc/init.d/postgresql-9.1
(bahkan jika itu file kosong) maka/etc/init.d/postgresql
akan menganggap Anda ingin mengontrol versi itu secara terpisah dan tidak akan mulai secara default. Anda masih bisa memulainya denganuntuk mengesampingkan pencarian versi.
sumber
Ver Cluster Port Status Owner Data directory Log file
9.1 main 5433 down postgres /var/lib/postgresql/9.1/main /var/log/postgresql/postgresql-9.1-main.log
9.3 main 5432 online postgres /var/lib/postgresql/9.3/main /var/log/postgresql/postgresql-9.3-main.log