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 12 do PostgreSQL 14
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
Usunięcie rozszerzenia pg_loonicode
Jest to zbędne już rozszerzenie, którego usunięcie jest konieczne by powiodła się aktualizacja do PG14.
Do usunięcia rozszerzenia należy użyć skryptu (uruchomionego z poziomu konta root !!!):
/home/sowa/sowang3/bin/loonicode-uninstaller
Instalacja nowej wersji PostgreSQL 14
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:
echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
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 12 main 5432 online postgres /var/lib/postgresql/12/main /var/log/postgresql/postgresql-12-main.log
Dalsze kroki to kolejno:
- aktualizacja stanu repozytorium (update)
- aktualizacja wszystkich pakietów systemu (upgrade)
- następnie instalacja PostgreSQL 14 i aktualizacja klastra z 12 do 14
Zalecamy wykonywanie tych poleceń osobno i postępowanie zgodnie z komunikatami na ekranie (warto także uruchomić wcześniej konsolę screen
).
apt update apt upgrade apt install postgresql-14 pg_dropcluster 14 main --stop systemctl stop postgresql pg_upgradecluster -m upgrade 12 main
Jeśli wszystko przebiegło bez problemu, można usunąć klaster 12.
pg_dropcluster 12 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
Natomiast w bazach poszczególnych katalogów systemu Sowa:
su - sowa sowizor adm sowasql refresh
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