Birden fazla PostgreSQL sunucum var. Eski sunucu için otomatik önyüklemeyi nasıl devre dışı bırakırım?


24

Oracle VirtualBox'ta Ubuntu 12.04 kullanıyorum. Birkaç ay önce, PostgreSQL server versiyon 9.1'i makineme kurdum. Kısa süre önce PostgreSQL server 9.3'ün JSON veri tiplerini desteklediğini öğrendim, bu yüzden yükseltmeye karar verdim.

Buradaki talimatları izleyerek 9.3'e yükselttim:

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

Bu yüklü sunucu sürüm 9.3 ile birlikte makinemde sürüm 9.1. Pg_lsclusters'ın yeni bir açılıştan sonra çalıştırılması:

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

Daha sonra aşağıdaki yükseltme sonrası bakımı yaptım: 9.1 sunucumdan pg_dump ile birkaç tablo verdim ve bunları 9.3 sunucuma geri yükledim. Daha sonra config dosyalarımı 9.1 ve 9.3'te açtım /etc/postgresql/$VERSION/main/postgresql.confve port numaralarını değiştirdim, böylece psql istemcim varsayılan olarak yeni sunucuya bağlanabildi.

Benim sorum bu. Hem 9.1 hem de 9.3 önyüklemede başlar. Sistem belleğimin yaklaşık% 5'ini kapladığı için 9.1'in otomatik önyüklenmesini önlemek istiyorum. Bunu nasıl yapabilirim?

Kaynaklara danışıldı:

Bir sunucuyu başlatmadaki PostgreSQL doc sayfası, beni standart init.d dizinine yönlendirir. İnit.d dizinimde betiği var postgresql. Görünüşe göre bu komut dosyası yalnızca bir sürümü başlatmak üzere yapılandırılmış olabilir, ancak gereken değişiklik benim için açık değil.

http://www.postgresql.org/docs/9.1/interactive/server-start.html

Aşağıdaki gönderi çok bilgilendirici oldu, ancak başlangıçta nasıl devre dışı bırakılacağını değil, bir kümenin nasıl kaldırılacağını gösterir. Daha fazla bilgi almak isteyebileceğim için eski kümemi yüklü bırakmak istiyorum.

Birden fazla postgresql sunucusu kurduğumu düşünüyorum, 'ekstra' sunucuları nasıl tespit edip silerim?

Sistem yüklendikten sonra sunucuyu öldürmek için bir komut dosyası yazmayı düşündüm, ancak bu yetersiz görünüyor. Açılışta 9.1 sürümünü devre dışı bırakmanın daha temiz bir yolu var mı?

Yanıtlar:


43

Daha az bir kesmek için, veya ile /etc/postgresql/9.1/main/start.confdeğiştirin .automanualdisabled


Teşekkürler ch2500! Bu çözüm sezgiseldir ve tam olarak ihtiyacım olanı yapar.
BitPusher16

Birkaç saattir böyle bir cevap arıyorum. Çok teşekkür ederim.
Jonathan Vanasco

10

Debian, PostgreSQL'in birden fazla sürümünü veya kurulumunu tek bir sunucuda çalıştırmayı basitleştirmek için birçok komut dosyası (pg_ * küme programları gibi) oluşturdu, bu yüzden postgresql.org'da belgelenmedi.

PostgreSQL'in kendi .debpaketinin Debian ile aynı başlangıç ​​mekanizmasını kullanıp kullanmadığından emin değilim , ancak oluşturduğum pakete bakarken /etc/init.d/postgresql-9.1(eğer boş bir dosya olsa bile) o /etc/init.d/postgresqlzaman bu sürümü ayrı ayrı kontrol etmek istediğinizi ve varsayılan olarak başlatın. Hala onunla başlayabilirsin

service postgresql start 9.1

sürüm aramasını geçersiz kılmak için.


Teşekkürler DerfK, bu işe yaradı. Önerdiğin bir dosyayı yarattım, içine bir karmaşat koydum ve çalıştırılabilir hale getirdim. Yeniden başlattığımda, pg_lsclusters şunu verdi: 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
BitPusher16 17.03

PostgreSQL Debian paketleme ekibindeki paketler Debian'ın paketleriyle aynıdır. Kendi sysv init start komut dosyalarınızı kırmak yerine pg_ * küme altyapısını kullanmalısınız.
Michael Renner
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.