Upgrade PostgreSQL 9.4 beta3

PostgreSQL logoPokud 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!

Příspěvek byl publikován v rubrice Databáze, Debian, Linux, PostgreSQL. Můžete si uložit jeho odkaz mezi své oblíbené záložky.