Jeśli chodzi o tworzenie kopii zapasowych i archiwizację danych, działy IT są często pod presją, aby dotrzymać rygorystycznych umów dotyczących poziomu usług, a także zapewnić bardziej niezawodne procedury tworzenia kopii zapasowych, które zminimalizują przestoje, przyspieszą proces tworzenia kopii zapasowych, koszty mniej i spełniają rygorystyczne wymagania bezpieczeństwa.
Istnieje wiele sposobów wykonania kopii zapasowej bazy danych MySQL, ale możemy podzielić te metody na dwie grupy - logiczną i fizyczną.
Kopie logiczne zawierają dane eksportowane za pomocą poleceń SQL i przechowywane w pliku. Może to być np. zestaw poleceń SQL, których wykonanie spowoduje przywrócenie zawartości bazy danych. Po pewnych modyfikacjach składni pliku wyjściowego możesz przechowywać kopię zapasową w plikach CSV.
Logiczne kopie zapasowe są łatwe do wykonania, wyłącznie za pomocą jednego wiersza, możesz wykonać kopię zapasową wszystkich tabel, baz danych lub wszystkich baz danych mysql w instancji.
Niestety, kopie logiczne mają wiele ograniczeń. Zwykle są wolniejsze niż fizyczne. Wynika to z narzutu wymaganego do wykonania poleceń SQL w celu wyprowadzenia danych, a następnie wykonania kolejnego zestawu poleceń SQL w celu przywrócenia danych z powrotem do bazy danych. Są mniej elastyczne, chyba że piszesz złożone zadania tworzenia kopii zapasowych, które obejmowałyby wiele kroków. Nie działa dobrze w środowisku równoległym, zapewnia mniejsze bezpieczeństwo i tak dalej i tak dalej.
Fizyczne kopie zapasowe w świecie MySQL
MySQL nie jest dostarczany z fizyczną kopią zapasową online w wersji Community. Możesz zapłacić za wersję Enterprise lub użyć narzędzia innej firmy. Najpopularniejszym narzędziem zewnętrznym na rynku jest XtraBackup. Te, które porównamy w tym artykule na blogu.
Percona XtraBackup to bardzo popularne oprogramowanie do tworzenia kopii zapasowych typu open source MySQL/MariaDB, które wykonuje nieblokujące kopie zapasowe baz danych InnoDB i XtraDB. Należy do kategorii fizycznej kopii zapasowej, która składa się z dokładnych kopii katalogu danych MySQL i znajdujących się pod nim plików.
Jedną z największych zalet XtraBackup jest to, że nie blokuje bazy danych podczas procesu tworzenia kopii zapasowej. W przypadku dużych baz danych (100+ GB) zapewnia znacznie lepszy czas przywracania w porównaniu do mysqldump. Proces przywracania obejmuje przygotowanie danych MySQL z plików kopii zapasowej, przed zastąpieniem ich lub zamianą na bieżący katalog danych w węźle docelowym.
Percona XtraBackup działa, zapamiętując numer sekwencyjny dziennika (LSN) podczas uruchamiania, a następnie kopiuje pliki danych do innej lokalizacji. Kopiowanie danych wymaga czasu, a jeśli pliki się zmieniają, odzwierciedlają stan bazy danych w różnych momentach. Jednocześnie XtraBackup uruchamia proces w tle, który kontroluje pliki dziennika transakcji (tzw. redo log) i kopiuje z niego zmiany. Należy to robić w sposób ciągły, ponieważ dzienniki transakcji są zapisywane w sposób okrężny i mogą być ponownie użyte po pewnym czasie. XtraBackup potrzebuje zapisów dziennika transakcji dla każdej zmiany w plikach danych od momentu rozpoczęcia wykonywania.
Za pomocą tego narzędzia możesz:
- Twórz gorące kopie zapasowe InnoDB, które uzupełniają się szybko i niezawodnie, bez zatrzymywania bazy danych lub obciążania serwera
- Tworzenie przyrostowych kopii zapasowych
- Przenoś tabele między serwerami MySQL on-line
- Łatwe tworzenie nowych podrzędnych replikacji MySQL
- Przesyłaj strumieniowo skompresowane kopie zapasowe MySQL na inny serwer
- Oszczędność miejsca na dysku i przepustowości sieci
MySQL Enterprise Backup zapewnia gorące, online, nieblokujące kopie zapasowe na wielu platformach. Nie jest to bezpłatne narzędzie do tworzenia kopii zapasowych, ale oferuje wiele funkcji. Standardowy koszt licencji wynosi 5000 USD (ale może się różnić w zależności od umowy z Oracle).
Platformy obsługiwane przez proces tworzenia kopii zapasowych
MySQL Enterprise
Może działać w systemach Linux, Windows, Mac i Solaris. Co ważne, może również przechowywać kopię zapasową na taśmie, co jest zwykle tańszym rozwiązaniem niż zapis na dyski. Bezpośredni zapis na taśmie obsługuje integrację z Veritas Netbackup, Tivoli Storage Manager i EMC NetWorker.
XtraBackup
XtraBackup może działać tylko na platformie Linux, co bez wątpienia może być przeszkodą dla osób pracujących w systemie Windows. Rozwiązaniem może być replikacja do urządzenia podrzędnego działającego pod Linuksem i uruchamianie z niego kopii zapasowej.
Główne różnice w procesie tworzenia kopii zapasowej
MySQL Enterprise Backup zapewnia bogaty zestaw funkcji i funkcji przywracania i odzyskiwania, w tym znaczną poprawę wydajności w porównaniu z istniejącymi metodami tworzenia kopii zapasowych MySQL.
Oracle pokazuje, że kopia zapasowa Enterprise jest nawet 49 razy szybsza niż mysqldump. To oczywiście może się różnić w zależności od danych, jednak istnieje wiele funkcji usprawniających proces tworzenia kopii zapasowej. Kopia równoległa to zdecydowanie jedna z największych różnic między mysqldump a kopią zapasową Enterprise. Zwiększa wydajność dzięki przetwarzaniu wielowątkowemu. Najbardziej interesującą funkcją jest jednak kompresja.
--skompresuj
Tworzy kopię zapasową w skompresowanym formacie. W przypadku regularnej kopii zapasowej, spośród wszystkich silników pamięci masowej obsługiwanych przez MySQL, kompresowane są tylko pliki danych w formacie InnoDB, które po kompresji mają rozszerzenie .ibz. Podobnie w przypadku kopii zapasowej pojedynczego obrazu kompresowane są tylko pliki danych w formacie InnoDB w obrazie kopii zapasowej. Pliki dziennika binarnego i dziennika przekaźnika są kompresowane i zapisywane z rozszerzeniem .bz podczas dołączania do skompresowanej kopii zapasowej.
-compress-method=zlib,lz4(default), lzma, punch-hole
--compress-level=LEVEL(0-9)
--include-tables=REGEXP
Kopie zapasowe MySQL z ClusterControl
ClusterControl umożliwia planowanie tworzenia kopii zapasowych za pomocą XtraBackup i mysqldump. Może przechowywać pliki kopii zapasowej lokalnie w węźle, w którym wykonano kopię zapasową, lub pliki kopii zapasowej można również przesyłać strumieniowo do węzła kontrolera i kompresować w locie. Nie obsługuje kopii zapasowej MySQL Enterprise, jednak z rozszerzonymi funkcjami mysqldump i XtraBackup może być dobrą opcją.
ClusterControl to kompleksowy system zarządzania bazą danych typu open source dla użytkowników w środowiskach mieszanych. Zapewnia zaawansowaną funkcję zarządzania kopiami zapasowymi dla MySQL lub MariaDB.
Dzięki ClusterControl możesz:
- Tworzenie zasad tworzenia kopii zapasowych
- Monitoruj stan kopii zapasowych, wykonania i serwery bez kopii zapasowych
- Wykonywanie kopii zapasowych i przywracanie (w tym odzyskiwanie do określonego momentu)
- Kontroluj przechowywanie kopii zapasowych
- Zapisuj kopie zapasowe w chmurze
- Weryfikuj kopie zapasowe (pełny test z przywracaniem na samodzielnym serwerze)
- Zaszyfruj kopie zapasowe
- Kompresuj kopie zapasowe
- I wiele innych
Wnioski
Jako administrator baz danych musisz upewnić się, że kopie zapasowe baz danych są regularnie tworzone, a odpowiednie procedury odzyskiwania są stosowane i testowane. Zarówno Percona XtraBackup, jak i MySQL Enterprise Backup zapewniają administratorom baz danych wysokowydajne rozwiązanie do tworzenia kopii zapasowych online z kompresją danych i technologią szyfrowania, aby zagwarantować ochronę danych w przypadku przestoju lub awarii
Kopie zapasowe należy zaplanować zgodnie z wymaganiami przywracania. Utrata danych może być pełna lub częściowa. Na przykład nie zawsze musisz odzyskać całe dane. W niektórych przypadkach możesz po prostu wykonać częściowe odzyskiwanie, przywracając brakujące tabele lub wiersze. Dzięki zestawowi funkcji zasięgu oba rozwiązania byłyby świetnym zamiennikiem mysqldump, który wciąż jest bardzo popularną metodą tworzenia kopii zapasowych. Posiadanie mysqldump jest również ważne dla częściowego odzyskiwania, gdzie uszkodzone bazy danych można naprawić, analizując zawartość zrzutu. Logi binarne pozwalają nam uzyskać odzyskiwanie do określonego momentu, np. tuż przed awarią serwera MySQL.
To wszystko dla części pierwszej, w następnej części przetestujemy wydajność obu rozwiązań i uruchomimy kilka rzeczywistych scenariuszy tworzenia kopii zapasowych i odzyskiwania.