Postgres verilerimi 8.4'ten 9.1'e nasıl geçiririm?


27

Ubuntu geliştirme makinemi 11.04'ten 11.10'a yükselttim. Bu süreçte postgres'lerim de 8.4'ten 9.1'e yükseltildi.

Ama tüm verilerimi kaybettim. Bakarsam 8.4 için verilerimin klasörde olduğunu /var/lib/postgres/8.4/mainve yeni veritabanımın içinde olduğunu görebilirim /var/lib/postgres/9.1/main.

Verilerimi yeni sürüme geçirmenin en iyi yolu nedir? Dosyaları sadece kopyalayabilir miyim?

Yanıtlar:


27
su postgres
pg_dropcluster --stop 9.1 main    
pg_upgradecluster 8.4 main

İlk başta bu iki nedenden dolayı benim için işe yaramadı. İlk olarak, postgresql-8.4 bir noktada unistalled edildi, bu yüzden tekrar yüklemek zorunda kaldım:

sudo apt-get install postgresql-8.4

Sonra 8.4'e girip 10'a postgresql.confdeğiştirdim max_connections. Sonra işe yaradı. Conf dosyasını bulabilmeniz gerekir./etc/postgresql/8.4/main/postgresql.conf


Bir bilgisayarda ilk üç satır yeterliydi. Öte yandan, söylediğiniz gibi çalışması için 8.4'ü yeniden yüklemem gerekti. Yardımın için teşekkürler.
nathanvda

"Pg_upgradecluster" betiğinin, veritabanı kullanıcısının temin edilmesi gereken durumu işlemediği dikkate alınmalıdır. (Olursa, nasıl sağlayacağımı bilemiyorum.)
Pointy

Eğer alırsanız Error: specified cluster is not runningdeğişti sonra tekrar çalışırken max_connectionskullanımı pg_ctlcluster 8.4 main start.
Skippy le Grand Gourou

Azaltmak max_connectionsbenim için işe yaramadı. Hata mesajının sağladığı alternatif bir çözüm olarak, benim shared_buffersiçin çalışan 20 MB'a (200 MB'den) düşürdüm.
Serrano,

4

11.10'a yükselttikten sonra, PostgreSQL 9.1 kuruldu, fakat çalışan sürüm 8.4 idi.

Denedim:

su postgres
pg_dropcluster --stop 9.1 main    
pg_upgradecluster 8.4 main

Hata bildirdi:

Stopping old cluster...
pg_ctl: servidor não desligou
Error: Could not stop old cluster

Yani, başka bir pencerede:

$ sudo service postgresql-8.4 stop
 * Stopping PostgreSQL 8.4 database server                               [ OK ] 
jgr@cagliari:~$ sudo service postgresql-8.4 start
 * Starting PostgreSQL 8.4 database server                               [ OK ] 

Ve sonra tekrar:

pg_upgradecluster 8.4 main

PgRouting ile ilgili hatalar bildirildi. Biraz zaman aldı (bütün gece!), Ancak sonrasında veritabanı 9.1'e yükseltildi. PostGIS ayrıca 1.5.3'e yükseltildi.


Bilginize, /var/lib/postgresql/9.1 dizininde bir "du -hs" yaptığımı ve /var/lib/postgresql/8.4/ adresindeki aynı komutun çıktısını karşılaştırarak buldum. bu komutun boyut çıktısına göre ne kadar kopyalandığını ölçün.
Joe J

Bunun tartışılan soru olmadığını biliyorum. Ama senin de tanımladığın gibi aynı şeyi yaptım Pg_upgradecluster'ın eski kümeyi durduramamasının nedeni, bir Tomcat örneğinin bağlantıları kullanması ve Postgres'in bunları kapatmamasıydı. Umarım bu birine yardımcı olur.
bplayer

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.