Zarządzanie klastrami pod Ubuntu.

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/postgresql

Zatrzymanie 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 all

Instalacja 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.sh

Zanim ruszysz dalej, sprawdź na pewno gdzie i jakie są aktualnie zainstalowane klastry:

pg_lsclusters

Powinna 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 main

Jeś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 main

A następnie uruchomić Postgresa.

systemctl start postgresql

Konserwacja 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; done

Natomiast w bazach poszczególnych katalogów systemu Sowa:

su - sowa sowizor adm sowasql refresh

Weryfikacja 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