Upgrade baz danych typu PostgreSQL na przykładzie EuroDB
Upgrade powinien być standardową czynnością każdego administratora bazy danych. Jest zalecany w przypadku, gdy chcemy skorzystać z nowych funkcjonalności lub poprawić wydajność bazy danych. Dlatego w dzisiejszym artykule opowiemy o podnoszeniu wersji systemów bazodanowych typu PostgreSQL.
Zawsze jest czas, aby poruszyć kwestie, o których często się zapomina. Dlatego w dzisiejszym artykule opowiemy o podnoszeniu wersji systemów bazodanowych typu PostgreSQL.
Wiele osób jeszcze przed rozpoczęciem nowego roku decyduje się, że zmieni swoje życie, ustalając postanowienia noworoczne. Chcemy więc pomóc z dotrzymaniem pewnych postanowień i dla tych, którzy odwlekają upgrade swojej bazy danych do nowszych wersji, przygotowaliśmy niniejszy artykuł. Będzie trochę o tym, czy i kiedy warto zrobić upgrade bazy danych typu PostgreSQL, ale również o tym, jak dany upgrade wpływa na średnią wydajność systemu bazodanowego. Zapraszamy do lektury.
Czy i kiedy warto zrobić upgrade bazy typu PostgreSQL
Upgrade powinien być standardową czynnością każdego administratora bazy danych. Jest zalecany w przypadku, gdy chcemy skorzystać z nowych funkcjonalności lub poprawić wydajność bazy danych. Dodatkowo nowe wersje bazy danych często zawierają poprawki błędów i ulepszenia, które mogą poprawić działanie całej bazy. Warto również pamiętać, że dzięki upgrade’owi przedłużamy wsparcie i bezpieczeństwo baz danych, a co za tym idzie, zmniejszamy ewentualne ryzyko związane z ujawnieniem poufnych danych znajdujących się w bazie.
Wiemy jednak, że rzeczywistość często nie jest taka prosta, a zależności, które występują między komponentami, często ograniczają możliwości wprowadzania zmian. Wówczas należy odpowiedzieć sobie na kilka pytań: czy baza działa prawidłowo? Czy spełnia wszystkie potrzeby – również te biznesowe? Czy nowo wprowadzone funkcje mają dla naszej bazy znaczenie? Może się bowiem okazać, że upgrade bazy danych nie jest nam aktualnie potrzebny. Oczywiście musimy pamiętać, że nie możemy przeciągać tego procesu w nieskończoność. Kiedyś wsparcie dla naszej wersji bazy danych się skończy, a każda następna aktualizacja będzie jeszcze bardziej skomplikowana i czasochłonna.
Jak wykonać poprawnie upgrade?
Jeżeli już zdecydujemy się na upgrade bazy danych typu PostgreSQL, należy pamiętać o wykonaniu kopii zapasowej. Można to zrobić za pomocą komendy:
pg_dump -U [username] -Fc [database_name] > [dumpfile.backup]
W przypadku ewentualnych nieprawidłowości pozwoli nam to na przywrócenie danych do poprzedniego stanu.
Najważniejszymi komponentami podczas aktualizacji bazy danych typu PostgreSQL są narzędzia pg_dump
i pg_restore
dostarczone przez Postgresa. W tym artykule skupimy się na bazie danych EuroDB i przeprowadzimy upgrade z wersji 13 na 14. Instrukcja powinna być uniwersalna dla każdej bazy danych opartej o silnik Postgresa.
Upgrade – instrukcja
Pierwszym krokiem do przeprowadzenia upgrade’u jest zainstalowanie nowej wersji bazy danych EuroDB na serwerze testowym. Warto również zwrócić uwagę, że flagi użyte podczas wykonywania komendy initdb
są takie same w obu wersjach EuroDB.
Oprócz samego zainstalowania EuroDB konieczne będzie stworzenie bazy danych z taką nazwą jak w starej wersji. Aby uniknąć problemów z integralnością danych z backupu, należy pamiętać o doinstalowaniu wszelkich rozszerzeń i modułów obecnych w wersji poprzedniej. Należy też skopiować niestandardowe słowniki, synonimy i inne podobne pliki ze starego klastra. To wszystko ma kluczowe znaczenie dla pomyślnego zakończenia operacji upgrade’u.
Kolejnym krokiem będzie przeniesienie wcześniej stworzonej kopii zapasowej na serwer z zainstalowaną nowszą wersją EuroDB i uruchomienie narzędzia pg_restore
, aby przywrócić dane z kopii zapasowej:
pg_restore -U [username] -d [database_name] [dumpfile.backup]
Gdy proces przywracania bazy z pliku się powiedzie, należy przetestować bazę danych. W tym celu warto uruchomić serwer EuroDB i wykonać serię zautomatyzowanych testów regresyjnych (o których napiszemy w kolejnym artykule). Jest to najlepszy sposób na znalezienie potencjalnych problemów w świeżo zaktualizowanej bazie danych.
Jeżeli działanie nowego serwera z bazą danych EuroDB 14 jest prawidłowe, należy zaktualizować linki, które wskazywały na serwer produkcyjny w bazie. Dobrym zwyczajem jest też zamrożenie na pewien czas serwera ze starszą wersją EuroDB w razie ewentualnej awarii.
Upgrade bazy danych, a jej wydajność
Założeniem stworzenia nowszej wersji bazy danych jest zazwyczaj poprawienie i przyspieszenie jej działania. Dokładnie tak wygląda to w każdej nowej wersji PostgreSQL oraz opartych na nim rozwiązaniach. Już w samej wersji 14 silnika bazodanowego PostgreSQL zauważono znaczący wzrost wydajności skalowania połączeń aktywnych i biernych z bazą danych. Przeprowadzone zostały testy wydajnościowe PostgreSQL 13 (EuroDB 13) i PostgreSQL 14 (EuroDB 14). Testy polegały na porównaniu skalowania się połączeń z bazą danych w zależności od wersji silnika PostgreSQL. Obydwie instancje zostały uruchomione na tym samym systemie operacyjnym i maszynach o tych samych parametrach. Warto wspomnieć, że w procesie testowania zwiększony został limit połączeń z bazą danych do 11 tysięcy.
Jak można zauważyć, przepustowość EuroDB 14 przy 5000 aktywnych połączeń jest około 20% wyższa niż we wcześniejszej wersji. Natomiast w przypadku 10 tysięcy aktywnych połączeń z bazą poprawa jest w granicach 50% w porównaniu z EuroDB 13. Zauważalny spadek TSP (transakcji na sekundę) występuje, gdy liczba połączeń przekracza liczbę rdzeni (w tym doświadczeniu było ich po 96). Jest to najprawdopodobniej spowodowane nadmiarem planowania CPU, a nie ograniczeniem samego Postgresa.
Oczywiście każda kolejna wersja PostgreSQL skupia się na zwiększeniu wydajności kilku konkretnych funkcjonalności, a nie wszystkich naraz. Twórcy PostgreSQL w wersji 15 pochylili się tym razem nad zwiększeniem wydajności podczas sortowania w pamięci i na dysku. Względem poprzedniej wersji przyśpieszenie jest zauważalne na poziomie od 25% do nawet 400%, w zależności od rodzaju sortowanych danych.
Podsumowanie
Upgrade bazy danych to proces polegający na przejściu starej wersji systemu zarządzania bazą danych na nowszą. Niesie on ze sobą wiele pozytywnych aspektów, takich jak zwiększenie wydajności, dodanie łatek bezpieczeństwa, jak i poszerzanie dostępnych funkcji. Mając to na uwadze, aktualizacja bazy danych na najnowszą wersję jest opłacalna, nawet jeśli początkowo sam proces upgrade’u wydaje się czasochłonny.