PostgreSQL, często nazywany po prostu Postgres, jest w pełni darmową bazą danych dostarczaną w modelu open-source.
Jako administrator baz danych, musisz wiedzieć jaką wersje Postgres masz zainstalowaną na serwerze. Powinieneś umieć sprawnie zebrać informacje w przypadku otrzymania nowej bazy PostgreSQL.
Artykuł ten podpowie Ci jakie zapytania należy wykonać, aby wyciągnąć z serwera wersję bazy danych PostgreSQL, dowiesz się także w jakiej wersji masz zainstalowane narzędzie psql. Sprawdzisz to wszystko zarówno od strony linii poleceń, systemu operacyjnego, jak i samej bazy.
Wersje PostgreSQL
Kolejne wersje baz PostgreSQL wydawane są według określonego schematu:
MAJOR.MINOR
Dla przykładu, dla PostgreSQL 13.2:
- 13 to tzw. Major wersja
- 2 to tzw. Minor wersja
A więc:
- MAJOR – Zaczynając od PostgreSQL 10, każda nowa wersja Major podbija numer przed kropką. Czyli kolejne nowe wersje Major to 10, 11, 12, 13 itd. Przed PostgreSQL 10 wersję Major oznaczała także pierwsza liczba po kropce, zatem wersją Major był np. Postgres 9.0 lub 9.6
- MINOR – Wersja Minor jest zawsze oznaczona przez ostatnią cyfrę wersji PostgreSQL. Na przykład 12.1 i 12.2 są wersjami Minor wersji PostgreSQL 12, podczas gdy 9.6.15 i 9.6.16 są wersjami Minor PostgreSQL 9.6
Wsparcie i cykl wydawniczy
Każda nowa wersja PostgreSQL posiada 5 lat wsparcia. Aktualny cykl wydawniczy nowych wersji bazy danych PostgreSQL zakłada dostarczanie co roku nowej wersji Major i co kwartał nowej wersji Minor.
Aktualne informacje na temat końca wsparcia danej wersji znajdziesz tutaj:
https://www.postgresql.org/support/versioning/
Sprawdzanie wersji przy pomocy linii poleceń
Pewnie zadajesz sobie pytanie, czy musisz mieć uruchomiona bazę danych PostgreSQL, aby sprawdzić jej wersje. Otóż nie! W pierwszej kolejności możesz wykorzystać proste polecenie wykonane bezpośrednio z serwera, które poda Ci informacje w jakiej wersji są binaria serwera Postgres.
postgres --version
Polecenie to wyświetla wersję Postgres bezpośrednio z pliku z silnikiem bazy. Oczywiście pamiętaj o tym, że aby ono zadziałało powinieneś mieć dodany wyżej wymieniony plik binarny do $PATH w systemie operacyjnym Linux.
Wyszukiwanie pliku binarnego
Jeżeli wiesz, że na tym serwerze zainstalowany jest Postgres, ale nie masz pojęcia gdzie, pomocna może być komenda która wyszuka pliki binarne:
sudo find /usr -wholename '*/bin/postgres'
Efektem tej komendy będzie pełna ścieżka którą możesz dopisać sobie do $PATH.
/usr/pgsql-13/bin/postgres
Możesz także wykonać sprawdzenie odwołując się do takiej właśnie pełnej ścieżki:
/usr/pgsql-13/bin/postgres -V postgres (PostgreSQL) 13.2
Wersja narzędzia psql
Na maszynie gdzie zainstalowane są bazy danych, przeważnie znajduje się także narzędzie klienckie. Jego wersje możesz sprawdzić w podobny sposób:
psql --version
Wynik będzie analogiczny jak poprzednio:
postgres (PostgreSQL) 13.2
Jak sprawdzić wersję PostgreSQL przy pomocy SQL?
Kolejnym sposobem na dowiedzenie się jaki silnik bazy danych mamy zainstalowany, jest wykorzystanie prostych zapytań SQL, a konkretnie Select. Tutaj już potrzebny jest dostęp do działającej bazy danych, ale możemy takie sprawdzenie wykonywać zdalnie, nie potrzebujemy dostępu do samego serwera bazodanowego.
Możesz poniższe zapytanie SQL wykonać na bazie z psql, lub wykorzystać do tego pgAdmin:
select version();
Output powinien być podobny do poniższego:
version ------------------------------------------------------------------------------------------------------------ PostgreSQL 13.2 on x86_64-redhat-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-23), 64-bit (1 row)
Parametry bazodanowe
Zapytanie select w języku SQL to jedno, parametry to drugie! Polecenie SHOW pozwoli zbadać Ci aktualne ustawienia parametrów PostgreSQL. Jednym z nich jest parametr 'server_version’ który zawiera poszukiwaną przez Nas wersję. Spróbuj wykonać poniższą komendę:
SHOW server_version;
Jej wynikiem także będzie wersja PostgreSQL:
server_version ---------------- 13.2 (1 row)
Pliki baz danych – PG_VERSION
Może zdarzyć się tak że planujesz stworzyć nowy serwer dla baz. Jesteś na etapie konfigurowania maszyny, w tym instalacji binariów PostgreSQL. Posiadasz już odłożone gdzieś PGDATA z całą zawartością bazy danych która ma wylądować na nowym serwerze. Powinieneś zatem upewnić się, że wersja instalacji PostgreSQL pokrywa się z wersją na której tworzone było dane PGDATA.
Podczas tworzenia PGDATA przy pomocy initdb, automatycznie dodawany do katalogu jest plik opisujący wersję danej bazy danych. Przy pomocy prostej komendy możesz zweryfikować od strony PGDATA wersję PostgreSQL:
cat $PGDATA/PG_VERSION
Zadbaj o to aby zmienna $PGDATA była rozwiązywana na pełną ścieżkę na systemie operacyjnym.
Podsumowanie
Dowiedziałeś się dziś jak sprawdzić wersję bazy danych zarówno z poziomu serwera i jego systemu operacyjnego, połączenia bezpośrednio do bazy PostgreSQL, czy też pliku PG_VERSION zlokalizowanego w katalogu PGDATA. Architektura PostgreSQL to kolejne warte przestudiowania zagadnienie!