Backup bazy danych PostgreSQL – kopia zapasowa i przywracanie

Backup bazy danych PostgreSQL – jak działa tworzenie kopii zapasowych

W poprzednim wpisie pisałem o przywracaniu utraconych danych z bazy, więc tym razem pora przybliżyć, na czym polega backup bazy danych PostgreSQL. Niezależnie od firmy, w jakiej pracujesz, nigdy nie masz 100% pewności, że Twoje dane w bazie nie znikną na skutek awarii. Jednym z podstawowych sposobów bezpieczeństwa na wypadek utraty informacji jest właśnie backup bazy Postgres. Poniższy artykuł odpowiada na pytanie, jak działa tworzenie kopii zapasowych. Zastanowimy się także nad sensem planowania strategii backupów w Twoim przedsiębiorstwie.

Backup bazy danych PostgreSQL – po co robić kopie zapasowe?

Początkujący administratorzy baz danych zastanawiają się często, dlaczego warto wykonywać backup bazy danych PostgreSQL. Co może pójść nie tak? Okazuje się, że przeszkód na drodze do normalnego funkcjonowania w firmie może być całe mnóstwo.

Trzeba być świadomym możliwości ataku hakerskiego na firmowy serwer. Częstszym problemem z relacyjnymi bazami danych są jednak błędy ludzkie lub maszynowe. W ekstremalnych sytuacjach może też dojść do intencyjnego uszkodzenia bazy w sposób fizyczny lub logiczny.

Skutek negatywnych działań? Utrata danych, często cennych, nierzadko osobowych czy biznesowych.

Backup bazy danych SQL może okazać się zbawienną ideą dla każdego, kto nie chce narażać się na kłopoty w pracy. Kopie zapasowe wykonuje się, aby:

  • Uchronić bazę przed utratą danych. W przypadku dowolnego zagrożenia zewnętrznego lub błędu wewnętrznego, firmowe informacje powinny działać na bieżąco. Kopia danych pozwala zminimalizować ryzyko strat.
  • Wspierać optymalną działalność przedsiębiorstwa. Firmy, które chcą optymalizować swoją pracę, powinny dbać o bezpieczeństwo danych na każdym szczeblu.
  • Zwiększać odpowiedzialność w firmie. Poprzez kopie baz i serwerów można w płynny sposób zdobywać zaufanie konsumentów w zakresie bezpiecznego przechowywania informacji (również poufnych).

Backup bazy danych PostgreSQL to najskuteczniejsza metoda zabezpieczenia zbiorów tabel przed utratą informacji. Ponieważ to oprogramowanie bazodanowe jest dziś jednym z najpopularniejszych (wyprzedza nawet MySQL), wspiera narzędzia dla sprawnego tworzenia kopii zapasowych. Sprawdźmy, jak działają sposoby zlecania backupów w ramach PSQL.

Logiczny i fizyczny backup PostgreSQL i serwera bazodanowego

Warto podkreślić, że backup bazy danych PostgreSQL może odbywać się zarówno na poziomie logicznym, jak i fizycznym. Udostępnienie obu możliwości odzwierciedla wysoki standard, jakim posługuje się ten silnik bazodanowy. Podstawowa różnica pomiędzy oboma modelami kopii zapasowych polega na tym, że:

  • Logiczny backup dotyczy informacji na temat bazy, np. tabel czy schematów. Sprawdza się w przypadku mniejszych zbiorów informacji, a sama kopia także zajmuje mniej przestrzeni dyskowej na serwerze. Zrzut taki tworzy się przy pomocy pg_dump lub pg_dumpall. 
  • Fizyczny backup odnosi się do przechowywania plików danych, jak również informacji o ich lokalizacji. Tego typu kopie poleca się w kontekście bardziej rozbudowanych zbiorów. Zrzut można utworzyć dzięki pg_basebackup, zapisom plików systemowych lub ręcznemu kopiowaniu danych.

Od wyboru konkretnego modelu zapisu kopii bazy zależy czas jej tworzenia, a także późniejszego odzyskiwania. Warto w tym momencie przemyśleć dokładnie strategię zarządzania przestrzenią dyskową. O ile odtworzenie jednej tabeli nie wymaga zbyt dużo pamięci i nie jest czasochłonne, tak przywrócić całą bazę może być bardziej skomplikowane.

Jeśli jako administrator bazy danych stworzysz odpowiednią strategię backupów, łatwiej będzie Ci później odzyskiwać konkretne informacje. Należy pamiętać, że właściwy plan przekłada się na wygodne odtwarzanie plików z określonego punktu w czasie. O tym, w jaki sposób obsługiwać przywracanie danych, pisaliśmy szerzej w poprzednim artykule.

Jak często tworzyć kopie dla wygodnego przywracania?

Kopia zapasowa i przywracanie to temat, który wymaga odpowiedniego zaplanowania. W każdej firmie, gdzie administracja korzysta z oprogramowania Postgres, należy zbudować strategię pracy z kopiami zapasowymi baz danych. Dzięki temu znacznie łatwiej działać będzie database recovery, czyli przywracanie.

W jaki sposób właściwie przygotować się do opracowania strategii backupowej? Ogólne sugestie mogą nie wystarczyć, gdyż kwestia ta zależy od kilku czynników. Warto mieć na uwadze poniższe elementy, zanim podejmie się kreacji planu kopiowania danych:

  • Częstotliwość transakcji,
  • Tempo zmian w wielkości bazy,
  • Krytyczność aplikacji oraz tolerancję ryzyka w przypadku dostępności i utraty danych.

Dopiero po dokładnym przestudiowaniu powyższych czynników, można przejść do fazy testowania. Jeśli sprawdzisz swoją bazę pod kątem czasu odpowiedzi czy intuicyjność współpracy, lepiej poznasz zasady działania procesów recovery.

Pamiętaj, że nawet cotygodniowe kopiowanie bazy i wszystkich plików WAL (Write Ahead Logs) w międzyczasie, może przełożyć się na wydłużony czas oczekiwania na odzyskanie transakcji. Zwykle to właśnie jeden backup bazy danych PostgreSQL w tygodniu jest standardem wytyczonym przez użytkowników.


Jeżeli chcesz poznać PostgreSQL w praktyce i rozszerzyć swoje kompetencje w IT, sprawdź mój Kurs PostgreSQL! Ponad 600 zadowolonych studentów!


Pliki WAL a backup bazy danych PostgreSQL

W poprzednim akapicie wspomnieliśmy o plikach WAL, którym opłaca się poświęcić nieco więcej miejsca. Bądź co bądź, są to najważniejsze elementy, które decydują o poprawnej relacji na linii admin – backup bazy danych PostgreSQL.

Oprogramowanie bazodanowe stale utrzymuje pliki WAL w folderze pg_xlog/pg_wal. Dziennik ten zapisuje wszystkie zmiany, jakich dokonuje się w ramach plików bazodanowych. Jego funkcjonowanie ma przede wszystkim znaczenie w kontekście bezpieczeństwa całego systemu i serwera. W przypadku błędów, można odtworzyć system na podstawie wpisów do dziennika, jakie zostały wykonane od ostatniego „checkpointu”.

Istnienie plików WAL pozwala na Point-in-Time Recovery (PITR), czyli odzyskanie danych z konkretnego punktu w czasie. Dzięki temu możliwe jest odtworzenie kształtu informacji z utraconej tabeli, pojedynczej bazy lub całego klastra. Jeżeli chcesz przywrócić konkretny zestaw obiektów, backup bazy danych PostgreSQL z użyciem WAL to skuteczna metoda.

Na koniec warto przypomnieć, że PSQL to oprogramowanie bazodanowe typu open source. W praktyce oznacza to, że masz szersze możliwości samodzielnej edycji ostatecznego kształtu swojej bazy danych. Dotyczy to również wykonywania kopii zapasowych, co pozwoli Ci wybrać pomiędzy logicznymi i fizycznymi zapisami bazy danych.

Chcesz dowiedzieć się więcej? Zapisz się na kurs dla administratorów baz danych!