Pokud testujete beta verze PostgreSQL, dejte si pozor na upgrade 9.4 beta2 na beta3. Mění se formát datových souborů na disku. Pokud instalujete PostgreSQL ze zdrojových kódů a máte na disku jak verzi beta2, tak novější verzi beta3, může použít metodu update pomocí příkazu pg_upgrade
. Viz také článek o metodách update PostgreSQL na novou verzi.
Pokud máte jako já Debian (toho času Jessie), tato metoda není možná. Nový balíček se nepodaří nainstalovat a Debian odmítne použít skript pg_updatecluster
.
Řešení je jednoduché i když časově náročné. Provést klasický dump a load. Sám instalační skript tuto metodu doporučuje a zobrazí příslušné kroky:
To resolve the situation, before upgrading, execute: # su - postgres $ pg_lsclusters $ pg_ctlcluster 9.4 main start $ pg_dumpall --cluster 9.4/main | gzip > 9.4-main.dump.gz $ cp -a /etc/postgresql/9.4/main 9.4-main.config $ pg_dropcluster 9.4 main --stop
Then after the upgrade, execute: # su - postgres $ pg_createcluster 9.4 main $ cp 9.4-main.config/* /etc/postgresql/9.4/main $ pg_ctlcluster 9.4 main start $ zcat 9.4-main.dump.gz | psql -q $ rm -rf 9.4-main.config 9.4-main.dump.gz
Pokud máte rychlé disky, doporučuju nezdržovat se komprimováním, tedy filtry gzip
a zcat
lze vynechat.
Dalším zrychlením je potom vypnutí fsync před nahráním dumpu do aktualizované databáze. V souboru /etc/postgresql/9.4/main/postgresql.conf
stačí nastavit fsync = off
. Po nahrání dat nezapomeňte opět změnit na fsync = on
!