PostgreSQL'i 8.4 sürümünden 9.4 sürümüne nasıl yükseltebilirim?


18

Ben sürümden benim PostgreSQL yükseltmek istediğiniz 8.4 ile 9.4 .

Dokümantasyon çok bana belli değildir.

  1. Yükseltmeyi yaparsam eski veritabanlarımı kaybeder miyim?
  2. Yükseltmeden sonra kaybedersem eski veritabanlarımı nasıl yedekleyebilirim?
  3. Psql'mi nasıl yükseltebilirim?

PostgreSQL'im bir CentOS 6.6 sunucusunda çalışıyor.


Dürüst olmak gerekirse, açıklama bağlantılı sayfada çok açıktır. Bir çöplük almak, bir şeylerin çalışmadığı durumda bir çöplüğünüz olduğu anlamına gelir. Bu aynı zamanda kaybetmediğiniz anlamına da gelir. Dahası, bu sayfada daha yeni bir sürümün nasıl kurulacağını gösteren bir bağlantı var - örneğin, Ubuntu'da postgresql-client-9.4içeren bir paket var psql.
dezso

@dezso Yani psql 8.4'ü kaldırır ve 9.4'e gidersem, eski veritabanlarımı kaybeder miyim?
Alex Jolig

3
Eğer bir çöplük alırsanız, o zaman hayır. Yine de kurtarılabilirlik için test ettiğiniz düzenli yedeklemelere sahip olmalısınız, bu yüzden bu hiç sorun olmamalıdır. Ayrıca, kullanmayı seçerseniz pg_upgrade, DB'lerinizi koruyacaktır - ancak bu durumda da yedek almak şarttır.
dezso

" How can I backup my old databases if" - eğer yok . Veritabanlarınız yükseltme işleminden sonra neredeyse kesinlikle iyi olacak, ancak beklenmedik sorunlar olması durumunda yine de böyle bir işlem gerçekleştirirken her zaman yeni (tercihen test edilmiş) yedeklemelere sahip olmalısınız (en kötüsünü varsayın: bir elektrik kesintisi veya diğer donanım hatası parçası yolu bırakabilir) ileri veya geri yuvarlanması zor bir konumda). Düzenli yedekleme planınıza bağlı olarak, fazladan yedek almanıza gerek olmayabilir.
David Spillett

Yanıtlar:


25

Sorunumu bu şekilde çözdüm.

Postgresql 8.4'i 9.4'e yükseltin

 1. Yum Install PG9.4
 2. wget http://yum.postgresql.org/9.4/redhat/rhel-6-x86_64/pgdg-redhat94-9.4-1.noarch.rpm
 3. yum install pgdg-redhat94-9.4-1.noarch.rpm
 4. yum install postgresql94-server
 5. service postgresql-9.4 initdb
 6. chkconfig postgresql-9.4 on

Verileri Yedekle

 7. su - postgres

 8. pg_dumpall > dump.sql

Verileri geri yükle

 9. service postgresql stop

 10. service postgresql-9.4 start

 11. su - postgres

 12. psql < dump.sql

Ağ Erişimini Yapılandırma

vi /var/lib/pgsql/9.4/data/postgresql.conf

 1. listen_addresses = '*'
 2. port = 5432

/var/lib/pgsql/9.4/data/pg_hba.conf

# "local" is for Unix domain socket connections only
local   all         all                               ident
# IPv4 local connections:
host    all         all         127.0.0.1/32          ident
host    all         all         130.51.79.0/24        md5
host    all         all         10.210.29.0/24        md5
# IPv6 local connections:
host    all         all         ::1/128               ident

PG8.4'ü Kaldır

 1. yum remove postgresql
 2. ln -s /usr/pgsql-9.4/bin/psql /usr/local/bin/psql

3
Düzenlememi neden "okunabilirlik" olarak reddettiğinizden emin değilim. Aslında komutların kopyalanmasını kolaylaştırır,
nhahtdh

1
Bu yöntemi kullanarak 9.2'den 9.6'ya yükseltme yaptım ve işe yaradı. Teşekkürler !
EisenHeim

Örneğin terabayt veri içeren bir veritabanını taşımak için pgdump kullanmanın imkansız olduğunu düşünüyorum. Bunu yapmanın başka bir yolu var mı?
deFreitas

İlk komut olan "Yum Install PG9.4", bu her şey için doğru büyük harf kullanımı mı?
Dave

1
@deFreitas Biraz geç kaldım ama> 8.4'ten pg_upgradeyükseltme yapıyorsanız ve aynı sunucuyu kullanıyorsanız kullanabilirsiniz.pg_upgradeBu durumlarda yararlıdır ve gerçekten hızlı: Ubuntu 18 bir yapım bana daha az zaman aldı pg_upgradebir daha pg_dumpbir 1GB veritabanını geri yüklemek için. Con, aynı makineye 2 postgres sürümü kurmanız ve çalıştırmanız gerektiğidir (elbette farklı bağlantı noktalarını dinliyor).
EAmez

3

service postgresql-9.4initdb benim için çalışmadı, kullanmak zorundaydım sudo /usr/pgsql-9.4/bin/postgresql94-setup initdb( burada bulundu ).

Büyük talimatlar için teşekkürler, dosyamı yeniden yapılandırmam gerekmesine rağmen, 9.2'den 9.4'e kadar herhangi bir sorun olmadan güncelleme yapabildim pg_hba.conf, bu önemsizdi.


1

Tek bir postgresql94 psql ikili dosyasını / usr / (local /) kutusuna bağlamaktan daha iyi alternatif sistem kullanmaktır:

cd /etc/alternatives/
ls pgsql-* -1 | xargs -L 1 alternatives --auto

Hangi CentOS için varsayılan dizinlere postgresql94 ikili, mans, confs, ... bağlantıları oluşturur.

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.