Zarządzanie klastrami pod Ubuntu.
W systemie Ubuntu nie zarządzamy klastrami przy pomocy standardowej komendy initdb, zamiast tego używamy komend pg_lsclusters, pg_dropcluster, and pg_createcluster, które są tak naprawdę wrapperami do initdb.
Aktualizacja klastra z PostgreSQL 14 do PostgreSQL 16
Ważna uwaga!
Zanim przystąpisz do operacji upewnij się, że na na partycji z klastrem Postgresa (jego lokalizacja to zwykle /var/lib/postgresql) jest co najmniej tyle wolnego miejsca ile zajmuje cały klaster.
Pomocne będą komendy du (sprawdzanie aktualne objętości katalogu) i df (sprawdzanie zajętego/wolnego miejsca na partycji).
du -hs /var/lib/postgresql
df -h /var/lib/postgresqlZatrzymanie systemu Sowa
Koniecznie przed całą operacją należy zatrzymać wszystkie składniki instalacji systemu Sowa. W tym celu z poziomu użytkownika "sowa" wykonujemy polecenie:
sowizor stop allInstalacja nowej wersji PostgreSQL 16
Wszystkie dalsze kroki wymagają dostępu do konta root.
Sprawdź, czy masz skonfigurowane oficjalne repozytorium PostgreSQL dla Ubuntu. Powinno ono być zdefiniowane w pliku: /etc/apt/sources.list.d/pgdg.list. Jeśli nie jest, ustaw je poleceniem:
apt install -y postgresql-common
/usr/share/postgresql-common/pgdg/apt.postgresql.org.shZanim ruszysz dalej, sprawdź na pewno gdzie i jakie są aktualnie zainstalowane klastry:
pg_lsclustersPowinna ona dać takie mniej więcej rezultaty:
Ver Cluster Port Status Owner Data directory Log file
14 main 5432 online postgres /var/lib/postgresql/14/main /var/log/postgresql/postgresql-14-main.log
Dalsze kroki to kolejno:
aktualizacja stanu repozytorium (update)
aktualizacja wszystkich pakietów systemu (upgrade)
następnie instalacja PostgreSQL 16 i aktualizacja klastra z 14 do 16
Ważne zalecenie!
Należy wykonywać poniższe polecenia osobne i postępować zgodnie z komunikatami na ekranie.
Koniecznie uruchomić wcześniej konsolę screen.
apt update
apt upgrade
apt install postgresql-16
pg_dropcluster 16 main --stop
systemctl stop postgresql
pg_upgradecluster -m upgrade 14 mainJeśli wszystko przebiegło bez problemu, można usunąć klaster 14. Przed usunięciem sprawdzić, czy nowy klaster na pewno chodzi na porcie 5432.
pg_lsclusters
pg_dropcluster 14 mainA następnie uruchomić Postgresa.
systemctl start postgresqlKonserwacja bazy danych
Po skutecznym upgrade klastra zalecane jest wykonanie podstawowych operacji odkurzania i reindeksacji wszystkich baz.
su - postgres
vacuumdb -a -e -f -z
reindexdb -a -e
for db in $(psql -c 'SELECT datname from pg_database' | grep db); do psql -c 'ALTER COLLATION pg_catalog."pl-x-icu" REFRESH VERSION;' $db; done
for db in $(psql -c 'SELECT datname from pg_database' | grep db); do psql -c "ALTER DATABASE $db REFRESH COLLATION VERSION;" $db; doneNatomiast w bazach poszczególnych katalogów systemu Sowa:
su - sowa
sowizor adm sowasql refreshWeryfikacja konfiguracji
Należy zweryfikować konfigurację ustawień PostgreSQL zgodnie z opisem ze strony: https://sowa.atlassian.net/wiki/spaces/sqldoc/pages/1771864065
Uruchomienie systemu Sowa
Skoro wszystko odbyło się po naszej myśli - możemy przywracać działanie systemu. To już z poziomu konta "sowa".
sowizor start all