Autorzy: Dmitri Joukovski i Pavel Pragin

Baza danych MySQL stała się najpopularniejszą na świecie bazą danych typu open source ze względu na jej stałą, szybką wydajność, wysoką niezawodność i łatwość użycia. Być może używasz bazy danych MySQL na forach internetowych i wiki znajdujących się u dostawcy hostingu zarządzanego lub możesz używać jej w zdalnym biurze do śledzenia błędów w Bugzilli lub po prostu myślisz o opracowaniu nowej aplikacji Web 2.0, która korzysta z MySQL . Tak czy inaczej, jeśli cenisz informacje przechowywane w bazie danych MySQL, będziesz musiał zapewnić pomyślne, bezpieczne i spójne tworzenie kopii zapasowych MySQL przy minimalnym wpływie na aplikację bazy danych. Upewnij się, że rozwiązanie do tworzenia kopii zapasowych zapewnia najbardziej efektywne wykorzystanie zasobów sieciowych, serwerów i pamięci masowej.

Jeśli szukasz rozwiązania, które uprości Ci życie, zapewniając łatwe w użyciu, a jednocześnie elastyczne i niezawodne tworzenie kopii zapasowych i odzyskiwanie danych dla MySQL, Zmanda Recovery Manager (ZRM) może być właściwym wyborem dla Ciebie. Szczegóły dotyczące Funkcjonalność ZRM jest dostępna tutaj.

W przypadku każdej kopii zapasowej bazy danych najważniejszymi kwestiami są spójność kopii zapasowej oraz wpływ na użytkowników i aplikacje. Kopia zapasowa zdalnego MySQL wiąże się jednak z dodatkowymi wyzwaniami związanymi z:

  • wykorzystanie sieci
  • bezpieczeństwo i
  • elastyczność odzyskiwania danych MySQL na innego hosta.

Ostatni punkt może być ważny, gdy nie masz pełnej kontroli nad swoim środowiskiem MySQL i chcesz mieć możliwość odzyskania danych do innego dostawcy hostingu zarządzanego z inną wersją serwera MySQL lub innym systemem operacyjnym.

Przyrostowe kopie zapasowe znacznie zmniejszają okno tworzenia kopii zapasowych i wykorzystanie sieci, ponieważ tylko zmiany od ostatniej pełnej lub ostatniej przyrostowej kopii zapasowej są przenoszone przez sieć. ZRM ułatwia odzyskanie danych z przyrostowych kopii zapasowych, nawet jeśli musisz użyć wielu przyrostowych obrazów kopii zapasowych, aby przywrócić dane do określonego punktu w czasie. Przyrostowe kopie zapasowe wymagają włączenia dzienników binarnych MySQL, ale zgodnie z dokumentacją MySQL, włączenie logów binarnych spowoduje wydajność mniejsza niż 1%.

Logiczne kopie zapasowe zapewniają większą elastyczność odzyskiwania, ponieważ plik kopii zapasowej jest plikiem tekstowym zawierającym wszystkie instrukcje MySQL, aby odtworzyć zarówno schemat bazy danych, jak i zawartość. Logiczna kopia zapasowa działa dla wszystkich silników pamięci masowej z wyjątkiem silnika NDB używanego do klastrowania MySQL. Największą zaletą logicznej kopii zapasowej jest elastyczność odtwarzania bazy danych. Możesz przywrócić logiczną kopię zapasową MySQL do innej architektury, a nawet do innej bazy danych. Możliwość przenoszenia logicznych obrazów kopii zapasowych ZRM sprawia, że ZRM jest wygodnym narzędziem do migracji. Na przykład możesz przenieść swoje dane MySQL:

  • Od MySQL w systemie Solaris do MySQL w systemie Linux
  • Z jednego silnika do drugiego
  • Od serwera 32-bitowego do 64-bitowego
  • Od jednego dostawcy hostingu zarządzanego do centrum danych lub innego dostawcy z inną konfiguracją MySQL

Oczywiście taka elastyczna rekonwalescencja ma swoją cenę. Przywracanie danych z logicznych kopii zapasowych może zająć dużo czasu, ponieważ trzeba czytać i odtwarzać wszystkie instrukcje MySQL. Kolejną wadą jest to, że przewidywanie rozmiaru logicznej kopii zapasowej może być trudne. W zależności od typu danych i schematu bazy danych rozmiar logicznej kopii zapasowej może być większy niż sama baza danych. Jednym ze środków zaradczych jest to, że skoro logiczna kopia zapasowa jest w zasadzie plikiem tekstowym, zwykle można uzyskać przyzwoitą kompresję.

Surowa kopia zapasowa zapewnia spójną kopię bazy danych, a kopia zapasowa jest plikiem binarnym. Zalety surowych kopii zapasowych nad logicznymi kopiami zapasowymi to:

  • Kopie zapasowe, a zwłaszcza odzyskiwanie, są znacznie szybsze. Na przykład nie jest niczym niezwykłym, że w przypadku tej samej bazy danych o rozmiarze 4-5 GB nieprzetworzona kopia zapasowa jest 5 razy szybsza niż logiczna, a odzyskanie nieprzetworzonego obrazu kopii zapasowej jest 20 razy szybsze niż odzyskiwanie logicznej wizerunek.
  • Zawsze będziesz znać dokładny rozmiar kopii zapasowej, ponieważ jest to tylko kopia bazy danych.
  • Zapewnia lepszą skalowalność, co może być ważne, jeśli twoja baza danych MySQL jest dość duża, np. 10-20 GB lub więcej.

Surowe kopie zapasowe można odzyskać TYLKO na tę samą wersję serwera MySQL w tym samym systemie operacyjnym, co oryginalne dane. Oznacza to, że szanse na odzyskanie nieprzetworzonych obrazów kopii zapasowych MySQL do innego dostawcy hostingu zarządzanego nie są zbyt duże i należy wziąć to pod uwagę, wybierając kopię zapasową surową lub logiczną.

Zarówno surowe, jak i logiczne kopie zapasowe zapewniają gorącą kopię zapasową, co oznacza, że nie trzeba wyłączać serwera MySQL w celu wykonania kopii zapasowej, ale wszystkie tabele są zablokowane podczas tworzenia kopii zapasowej i użytkownicy nie mogą wprowadzać swoich danych. Dlatego należy rozważyć użycie wtyczki planowania ZRM, która umożliwia opóźnianie tworzenia kopii zapasowych w oparciu o zdefiniowane przez Ciebie progi. Na przykład, możesz odłożyć tworzenie kopii zapasowej na godzinę, jeśli więcej niż 50 użytkowników ma dostęp do bazy danych.

Jedną z ważnych kwestii dotyczących zdalnego tworzenia kopii zapasowych MySQL jest decyzja o rodzaju połączenia, które należy ustanowić między ZRM a zdalnym serwerem MySQL. ZRM zapewnia wtyczkę do połączenia opartego na gniazdach i drugą wtyczkę do połączenia opartego na SSH. Elastyczna architektura ZRM umożliwia użytkownikom pisanie własnych wtyczek.

Jak sama nazwa wskazuje, wtyczka do kopiowania gniazda ustanawia gniazdo, które zapewnia komunikację między ZRM i MySQL przez sieć opartą na protokole IP. Wtyczka do kopiowania gniazda wymaga, aby usługa xinetd działała na serwerze MySQL, a domyślny port 25300 był otwarty. W razie potrzeby administrator kopii zapasowej może zmienić port. Wtyczka do kopiowania gniazda nie jest bezpieczna i powinna być używana tylko wtedy, gdy bezpieczeństwo nie jest istotne lub gdy bezpieczeństwo jest ustanowione w inny sposób, na przykład, gdy masz połączenie VPN między ZRM a zdalnym serwerem MySQL.

Wtyczka do kopiowania SSH zapewnia bezpieczny kanał między ZRM a zdalnym serwerem MySQL. Wykorzystuje kryptografię klucza publicznego do uwierzytelniania zdalnego serwera MySQL i użytkownika kopii zapasowej z ZRM. Wtyczka SSH wymaga otwartego standardowego portu TCP 22 i uruchomionego demona SSH. Wtyczka do kopiowania SSH najlepiej sprawdza się, gdy ważne jest zapewnienie bezpieczeństwa danych kopii zapasowej. Ponieważ połączenie SSH wymaga dodatkowych cykli procesora do szyfrowania, może wystąpić spadek wydajności tworzenia kopii zapasowych w porównaniu do tworzenia kopii zapasowych z połączeniem przez gniazdo.

Poniższa tabela zawiera podsumowanie rozważań przy wyborze wtyczki kopiującej Socket vs SSH do zdalnego tworzenia kopii zapasowych MySQL:

Zdalne połączenie
podłącz
Używany port Bezpieczeństwo Względna wydajność Uwagi dotyczące instalacji
Kopia SSH 22 (naprawiono) Zapewnia silne uwierzytelnianie i szyfrowanie do przesyłania danych kopii zapasowych przez sieć Niższa wydajność i zależy od pamięci serwera MySQL, zasobów procesora i dostępnej przepustowości. Często możesz mieć połączenie SSH ze zdalnym serwerem MySQL już ustanowione z powodów innych niż tworzenie kopii zapasowych i odzyskiwanie. W przeciwnym razie musisz ustanowić połączenie SSH między ZRM a serwerem MySQL.
Kopia gniazda 25300 (można zmienić) Kopia zapasowa danych przez kabel nie jest bezpieczna Wyższa wydajność Dodatkowe oprogramowanie powinno być zainstalowane na serwerze MySQL. Na przykład w przypadku wersji Enterprise ZRM 1.1 należy użyć MySQL-zrm-enterprise-socket-server-1.1-1.noarch.rpm. W przypadku wersji dla społeczności przejdź do strony pobierania, aby uzyskać dokładny pakiet.

Aby uzyskać więcej informacji technicznych, zarejestruj się bezpłatnie w sieci Zmanda i pobierz pełną wersję tego opracowania. Dowiesz się, jak używać ZRM w kilku typowych scenariuszach. Na przykład podamy szczegóły techniczne, jak wykonać kopię zapasową z danymi bezpiecznymi w sieci i w spoczynku za pomocą wtyczki kopiującej SSH w tym przypadku:

ZRM przez Internet

Dodatkowo udostępnimy szczegóły techniczne dotyczące bardziej wydajnych kopii zapasowych logicznych i surowych za pomocą wtyczki do kopiowania gniazda.

Dzięki całej swojej bogatej funkcjonalności ZRM for MySQL jest tylko narzędziem do wdrażania strategii tworzenia kopii zapasowych i odzyskiwania, która jest optymalna dla określonych potrzeb w zakresie ochrony danych. ZRM jest solidny i łatwy w użyciu, ale w zależności od własnej implementacji zdalnego serwera MySQL i twoich konkretnych wymagań dotyczących tworzenia kopii zapasowych i odzyskiwania danych, należy rozważyć wszystkie kompromisy związane z każdą opcją operacyjną zapewnianą przez ZRM dla MySQL.

Bibliografia:
ZRM dla MySQL
ZRM dla MySQL Wiki
Forum Zmanda