Przejdź do końca metadanych
Przejdź do początku metadanych

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 9.2 do PostgreSQL 10

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 10

Wszystkie dalsze kroki wymagają dostępu do konta root.

Jeśli instalacja korzysta z pgbouncera, trzeba go oczywiście najpierw zatrzymać:

service pgbouncer stop

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/ xenial-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
9.2 main    5432 online postgres /var/lib/postgresql/9.2/main /var/log/postgresql/postgresql-9.2-main.log

 

Dalsze kroki to kolejno:

  • aktualizacja stanu repozytorium (update)
  • aktualizacja wszystkich pakietów systemu (upgrade)
  • następnie instalacja PostgreSQL 10 i aktualizacja klastra z 9.2 do 10

Zalecamy wykonywanie tych poleceń osobno i postępowanie zgodnie z komunikatami na ekranie.

apt update
apt upgrade
apt install postgresql-10
pg_dropcluster 10 main --stop
service postgresql stop
pg_upgradecluster -m upgrade 9.2 main

Jeśli wszystko przebiegło bez problemu, można usunąć klaster 9.2.

pg_dropcluster 9.2 main

Ostatecznie - o ile używamy pgbouncera - trzeba go uruchomić.

service pgbouncer start

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

Wariant dla nowszych Ubuntu

Jeśli chcesz zainstalować PostgreSQL 10 na dystrybucjach nowszych niż 16.04 LTS (np. na 17.10 albo na becie 18.04), należy użyć innego repozytorium:

deb http://apt.postgresql.org/pub/repos/apt/ zesty-pgdg main

Potencjalne problemy

Zbyt wysoka wersja klienta PostgreSQL

Jeśli podczas próby upgrade'u klastra pojawi się błąd typu:

Error: no initdb program for version 11 found
Error: Could not create target cluster

oznacza to, że jest zainstalowana zbyt wysoka wersja klienta PostgreSQL.

W takiej sytuacji warto go odinstalować:

apt remove postgresql-client-11
  • No labels