software:postgresql:upgrade
PostgreSQL upgrade
Przygotowania (jako root):
service postgresql stop pkg create postgresql17-server mkdir /tmp/pg-upgrade tar xf postgresql1?-server-1*.pkg -C /tmp/pg-upgrade
Aktualizujemy PostgreSQL:
pkg install postgresql18-server
Po aktualizacji wykonujemy migrację:
service postgresql initdb su -l postgres -c "pg_upgrade -b /tmp/pg-upgrade/usr/local/bin/ -d /var/db/postgres/data17/ \ -B /usr/local/bin/ -D /var/db/postgres/data18/ -U postgres"
Po migracji odpalamy nowego PostgreSQL:
service postgresql start
Migracja 17 -> 18
Od PostgreSQL 18 domyślnie włączone są sumy kontrolne dla danych. Jeśli nie było ich włączonych na wersji 17, wtedy podczas migracji pojawi się błąd:
old cluster does not use data checksums but the new one does
Rozwiązanie to tymczasowe wyłączenie sum kontrolnych na czas migracji (podczas zatrzymanego daemona):
pg_checksums --disable --pgdata /var/db/postgres/data18
Po zaimportowaniu danych można zrobić:
pg_checksums --enable --pgdata /var/db/postgres/data18
Checksum operation completed Files scanned: 1797 Blocks scanned: 25195 Files written: 389 Blocks written: 20809 pg_checksums: syncing data directory pg_checksums: updating control file Checksums enabled in cluster
software/postgresql/upgrade.txt · ostatnio zmienione: przez mky
