Wstęp
pgBackRest to niezawodne rozwiązanie do tworzenia kopii zapasowych i przywracania danych dla bazy PostgreSQL, które płynnie skaluje się do największych baz danych i obciążeń.
pgBackRest v2.53 to aktualna stabilna wersja. Informacje o wydaniu znajdują się na stronie Releases .
Znajdź nas na GitHub i daj nam gwiazdkę, jeśli lubisz pgBackRest!
Cechy
Równoległe tworzenie kopii zapasowych i przywracanie
Kompresja jest zwykle wąskim gardłem podczas operacji tworzenia kopii zapasowych, dlatego pgBackRest rozwiązuje ten problem dzięki przetwarzaniu równoległemu i bardziej wydajnym algorytmom kompresji, takim jak lz4 i zstd.
Obsługa lokalna lub zdalna
Niestandardowy protokół umożliwia pgBackRest tworzenie kopii zapasowych, przywracanie i archiwizowanie lokalnie lub zdalnie za pośrednictwem TLS/SSH przy minimalnej konfiguracji. Interfejs do zapytań PostgreSQL jest również dostarczany za pośrednictwem warstwy protokołu, dzięki czemu zdalny dostęp do PostgreSQL nigdy nie jest wymagany, co zwiększa bezpieczeństwo.
Wiele repozytoriów
Wiele repozytoriów umożliwia na przykład lokalne repozytorium z minimalnym czasem przechowywania, umożliwiające szybkie przywracanie danych, oraz zdalne repozytorium z dłuższym czasem przechowywania, zapewniające redundancję i dostęp w całym przedsiębiorstwie.
Pełne, różnicowe i przyrostowe kopie zapasowe (na poziomie pliku lub bloku)
Obsługiwane są pełne, różnicowe i przyrostowe kopie zapasowe. pgBackRest nie jest podatny na problemy z rozdzielczością czasową rsync, dzięki czemu różnicowe i przyrostowe kopie zapasowe są bezpieczne bez konieczności obliczania sumy kontrolnej każdego pliku. Kopie zapasowe na poziomie bloku oszczędzają miejsce, kopiując tylko te części plików, które zostały zmienione.
Rotacja kopii zapasowych i wygaśnięcie archiwum
Zasady przechowywania można ustawić dla pełnych i różnicowych kopii zapasowych, aby utworzyć pokrycie dla dowolnych ram czasowych. Archiwum WAL można utrzymywać dla wszystkich kopii zapasowych lub wyłącznie dla najnowszych kopii zapasowych. W drugim przypadku WAL wymagany do ujednolicenia starszych kopii zapasowych będzie utrzymywany w archiwum.
Kopia zapasowa integralności
Sumy kontrolne są obliczane dla każdego pliku w kopii zapasowej i sprawdzane ponownie podczas przywracania lub weryfikacji. Po zakończeniu kopiowania plików przez kopię zapasową czeka ona, aż każdy segment WAL wymagany do uzyskania spójności kopii zapasowej dotrze do repozytorium.
Kopie zapasowe w repozytorium mogą być przechowywane w tym samym formacie co standardowy klaster PostgreSQL (w tym przestrzenie tabel). Jeśli kompresja jest wyłączona, a twarde łącza są włączone, możliwe jest utworzenie migawki kopii zapasowej w repozytorium i przywrócenie klastra PostgreSQL bezpośrednio na migawce. Jest to korzystne w przypadku baz danych o rozmiarze terabajta, których przywracanie w tradycyjny sposób jest czasochłonne.
Wszystkie operacje wykorzystują fsync na poziomie plików i katalogów w celu zapewnienia trwałości.
Sumy kontrolne stron
Jeśli sumy kontrolne stron są włączone, pgBackRest zweryfikuje sumy kontrolne każdego pliku, który jest kopiowany podczas tworzenia kopii zapasowej. Wszystkie sumy kontrolne stron są weryfikowane podczas tworzenia pełnej kopii zapasowej, a sumy kontrolne w plikach, które zostały zmienione, są weryfikowane podczas tworzenia kopii zapasowych różnicowych i przyrostowych.
Niepowodzenia walidacji nie zatrzymują procesu tworzenia kopii zapasowej, ale ostrzeżenia z informacjami o tym, które dokładnie strony nie przeszły walidacji, są wysyłane do konsoli i dziennika plików.
Funkcja ta umożliwia wczesne wykrycie uszkodzeń na poziomie stron, zanim wygasną kopie zapasowe zawierające prawidłowe kopie danych.
Kopia zapasowa Wznowienie
Przerwaną kopię zapasową można wznowić od punktu, w którym została zatrzymana. Pliki, które zostały już skopiowane, są porównywane z sumami kontrolnymi w manifeście, aby zapewnić integralność. Ponieważ ta operacja może odbywać się w całości na hoście repozytorium, zmniejsza to obciążenie hosta PostgreSQL i oszczędza czas, ponieważ obliczanie sum kontrolnych jest szybsze niż kompresowanie i ponowne przesyłanie danych.
Kompresja strumieniowa i sumy kontrolne
Obliczenia kompresji i sumy kontrolnej są wykonywane strumieniowo, podczas kopiowania plików do repozytorium, niezależnie od tego, czy repozytorium znajduje się lokalnie czy zdalnie.
Jeśli repozytorium znajduje się na hoście repozytorium, kompresja jest wykonywana na hoście PostgreSQL, a pliki są przesyłane w skompresowanym formacie i po prostu przechowywane na hoście repozytorium. Gdy kompresja jest wyłączona, niższy poziom kompresji jest wykorzystywany w celu efektywnego wykorzystania dostępnej przepustowości przy jednoczesnym utrzymaniu kosztów procesora na minimalnym poziomie.
Przywracanie Delta
Manifest zawiera sumy kontrolne dla każdego pliku w kopii zapasowej, dzięki czemu podczas przywracania możliwe jest użycie tych sum kontrolnych w celu znacznego przyspieszenia przetwarzania. Podczas przywracania delta wszystkie pliki nieobecne w kopii zapasowej są najpierw usuwane, a następnie generowane są sumy kontrolne dla pozostałych plików. Pliki zgodne z kopią zapasową są pozostawiane na miejscu, a reszta plików jest przywracana jak zwykle. Równoległe przetwarzanie może prowadzić do drastycznego skrócenia czasu przywracania.
Równoległy, asynchroniczny WAL Push & Get
Dołączono dedykowane polecenia do przesyłania WAL do archiwum i pobierania WAL z archiwum. Oba polecenia obsługują paralelizm w celu przyspieszenia przetwarzania i działają asynchronicznie, aby zapewnić najszybszy możliwy czas odpowiedzi dla PostgreSQL.
WAL push automatycznie wykrywa segmenty WAL, które są pushowane wielokrotnie i usuwa duplikaty, gdy segment jest identyczny, w przeciwnym razie zgłaszany jest błąd. Asynchroniczne WAL push pozwala na przeniesienie transferu do innego procesu, który kompresuje segmenty WAL równolegle, aby uzyskać maksymalną przepustowość. Może to być krytyczna funkcja dla baz danych o ekstremalnie dużej objętości zapisu.
Asynchroniczne pobieranie WAL utrzymuje lokalną kolejkę segmentów WAL, które są dekompresowane i gotowe do odtworzenia. Skraca to czas potrzebny na dostarczenie WAL do PostgreSQL, co maksymalizuje prędkość odtwarzania. Połączenia o wyższym opóźnieniu i pamięć masowa (np. S3) przynoszą największe korzyści.
Polecenia push i get zapewniają zgodność bazy danych i repozytorium poprzez porównanie wersji PostgreSQL i identyfikatorów systemowych. To praktycznie eliminuje możliwość błędnej konfiguracji lokalizacji archiwum WAL.
Obsługa przestrzeni tabel i łączy
Przestrzenie tabel są w pełni obsługiwane, a podczas przywracania przestrzenie tabel mogą być ponownie mapowane do dowolnej lokalizacji. Możliwe jest również ponowne mapowanie wszystkich przestrzeni tabel do jednej lokalizacji za pomocą jednego polecenia, co jest przydatne w przypadku przywracania w celach rozwojowych.
Łącza plików i katalogów są obsługiwane dla dowolnego pliku lub katalogu w klastrze PostgreSQL. Podczas przywracania możliwe jest przywrócenie wszystkich łączy do ich oryginalnych lokalizacji, ponowne mapowanie niektórych lub wszystkich łączy lub przywrócenie niektórych lub wszystkich łączy jako normalnych plików lub katalogów w katalogu klastra.
Obsługa magazynu obiektów zgodnego z S3, Azure i GCS
Repozytoria pgBackRest mogą być zlokalizowane w magazynach obiektów zgodnych z usługami S3, Azure i GCS, co zapewnia praktycznie nieograniczoną pojemność i przechowywanie danych.
Szyfrowanie
pgBackRest może szyfrować repozytorium w celu zabezpieczenia kopii zapasowych niezależnie od miejsca ich przechowywania.
Zgodność z dziesięcioma wersjami PostgreSQL
pgBackRest obejmuje obsługę dziesięciu wersji PostgreSQL, pięciu obsługiwanych wersji i ostatnich pięciu wersji EOL. Daje to wystarczająco dużo czasu na uaktualnienie do obsługiwanej wersji.
Pierwsze kroki
pgBackRest dąży do tego, aby konfiguracja i obsługa były proste:
- Instrukcje obsługi dla różnych systemów operacyjnych i wersji PostgreSQL.
- Dokumentacja poleceń dotyczących operacji wiersza poleceń.
- Informacje dotyczące konfiguracji pgBackRest.
Dokumentację dla v1 można znaleźć tutaj . Nie planuje się dalszych wydań dla v1, ponieważ v2 jest wstecznie kompatybilny z opcjami i repozytoriami v1.
Wkłady
Wkłady do pgBackRest są zawsze mile widziane! Zapoznaj się z naszymi Wytycznymi dotyczącymi wkładu , aby uzyskać szczegółowe informacje na temat tego, jak wnosić funkcje, ulepszenia lub problemy.
Wsparcie
pgBackRest jest całkowicie darmowy i open source na licencji MIT . Możesz go używać do celów osobistych lub komercyjnych bez żadnych ograniczeń. Zgłoszenia błędów są traktowane bardzo poważnie i będą rozpatrywane tak szybko, jak to możliwe.
Stworzenie solidnej polityki odzyskiwania po awarii z odpowiednimi strategiami replikacji i tworzenia kopii zapasowych może być bardzo złożonym i zniechęcającym zadaniem. Możesz stwierdzić, że potrzebujesz pomocy w fazie architektury i stałego wsparcia, aby zapewnić, że Twoje przedsiębiorstwo będzie nadal działać płynnie.
Crunchy Data dostarcza pakietowe wersje pgBackRest dla głównych systemów operacyjnych i eksperckie pełne wsparcie komercyjne cyklu życia dla pgBackRest i wszystkich rzeczy PostgreSQL. Crunchy Data zobowiązuje się do dostarczania rozwiązań open source bez uzależnienia od dostawcy, zapewniając, że kompatybilność krzyżowa z wersją społecznościową pgBackRest jest zawsze ściśle utrzymywana.
Więcej informacji znajdziesz na stronie Crunchy Data .
Uznanie
Szczególne podziękowania należą się Stephenowi Frostowi za cenne rady i krytykę podczas tworzenia pgBackRest.
Crunchy Data poświęciło znaczną ilość czasu i zasobów na pgBackRest i nadal aktywnie wspiera rozwój. Resonate również przyczyniło się do rozwoju pgBackRest i umożliwiło zainstalowanie wczesnych (ale dobrze przetestowanych) wersji jako ich głównego rozwiązania do tworzenia kopii zapasowych PostgreSQL.
Grafika na fotelu autorstwa Sandora Szabo .





Leave a Reply