Przepływy pracy tworzenia kopii zapasowych i przywracania są niezwykle ważne dla każdego klastra produkcyjnego MongoDB. Oprócz rzeczywistej funkcjonalności tworzenia kopii zapasowych i przywracania, należy również wziąć pod uwagę inne niefunkcjonalne elementy, takie jak dostępność kopii zapasowych, bezpieczeństwo, czas odzyskiwania, szczegółowość odzyskiwania itp. Na wysokim poziomie masz trzy opcje tworzenia kopii zapasowej serwera MongoDB:
- Mongodump / Mongorestore
- Menedżer chmury MongoDB
- Migawki dysku
Każda z powyższych trzech technik ma swoje zalety i wady. Przeczytaj poniżej, aby zrozumieć bardziej szczegółowo.
1. Mongodump / Mongorestore
Mongodump to narzędzie do tworzenia kopii zapasowych na początek dla większości programistów MongoDB. Prawdopodobnie w ten sposób większość programistów zaczyna tworzyć kopie zapasowe swojej bazy danych MongoDB. Narzędzie Mongodump jest naprawdę proste w użyciu i zrzuca wszystkie dane z bazy danych w formacie binarnym (BSON), który możesz przechowywać w wybranej lokalizacji.
Zalety:
- Prosty w użyciu.
- Elastyczność w miejscu przechowywania kopii zapasowej - po zakończeniu zrzutu możesz przenieść go do dowolnej wybranej lokalizacji – udziały NFS, AWS S3 itp.
Wady:
- Pełna kopia zapasowa, za każdym razem — jest to pełna kopia zapasowa, a nie różnica w stosunku do poprzedniej kopii zapasowej. Tak więc, gdy twoja baza danych staje się duża, wykonanie kopii zapasowej może zająć wiele godzin i jest niewygodna do przechowywania.
- Nie punkt w czasie – Kopia zapasowa utworzona przez mongodump nie jest domyślnie migawką z określonego momentu. Tak więc, jeśli Twoje dane zmieniają się podczas tworzenia kopii zapasowej, możesz skończyć z mongodumpem, który jest niespójny z perspektywy aplikacji. Możesz temu zaradzić, korzystając z opcji „–oplog”, która wykonuje migawkę na końcu procesu mongodump. Jednak ta opcja nie jest dostępna dla samodzielnych baz danych
2. Menedżer MongoDB Cloud
Cloud Manager to usługa w chmurze świadczona przez zespół MongoDB, która ułatwia tworzenie kopii zapasowych klastra MongoDB.
Zalety:
- Prosty w użyciu – Zainstaluj agenta MongoDB Cloud Manager, aby zarządzać tworzeniem kopii zapasowych/przywracaniem klastra. To trochę bardziej skomplikowane niż użycie mongodump, ale nie za dużo.
- Ciągła kopia zapasowa – Cloud Manager stale odpytuje i tworzy kopię zapasową twojego oploga. Umożliwia to więc przywrócenie do dowolnego punktu w czasie zamiast do określonych czasów, w których wykonano kopię zapasową, co minimalizuje narażenie na utratę danych.
Wady:
- Kontrola danych – Dane kopii zapasowej są przechowywane w centrum danych MongoDB poza Twoją kontrolą. W niektórych częściach świata (np. w Europie) i w zależności od potrzeb w zakresie bezpieczeństwa może to stanowić duży problem.
- Dodatkowy wydatek – Płacisz wielkością danych i ilością zmian w oplogach. Jeśli masz dużą bazę danych lub dużą liczbę zapisów, ten koszt może się sumować.
- Powolne przywracanie – Aby przywrócić dane z MongoDB Cloud Manager, należy je fizycznie pobrać z centrum danych Cloud Manager. Może to być bardzo czasochłonna operacja, jeśli masz dużą bazę danych, na przykład, jeśli Twoje dane to 1 TB, pobranie i wykorzystanie danych może zająć kilka godzin.
3. Migawki dysku
Migawki mogą znajdować się na poziomie chmury (np. migawki dysków AWS EBS) lub na poziomie systemu operacyjnego (migawki LVM). Migawki LVM, choć wygodne, nie można łatwo przenieść poza komputer. Dlatego do końca tej dyskusji skupimy się na migawkach dysków w chmurze, takich jak migawki AWS EBS.
Zalety:
- Prosty i łatwy w użyciu – Stosunkowo trywialne uruchomienie migawki dysku EBS.
- Przenośność – Możesz przenieść migawki do innych centrów danych, jeśli potrzebujesz większej dostępności kopii zapasowych.
- Migawki różnicowe – Migawki są migawkami różnicowymi, więc przechowują tylko zmiany z poprzedniego zrzutu. Zmniejsza to ilość miejsca potrzebnego na kopię zapasową.
- Brak kopii danych – Do przywrócenia danych nie jest wymagana kopia danych. Np. Jeśli chcesz przywrócić migawkę o pojemności 1 TB, możesz po prostu utworzyć nowy wolumin z migawki i nie spowoduje to żadnej rzeczywistej kopii danych. To * wielka sprawa * w przypadku dużych ilości danych.
- Kontrola kopii zapasowych – Kopie zapasowe pozostają w tym samym centrum danych, co Twoje podstawowe dane i są zabezpieczone tymi samymi mechanizmami uwierzytelniania, co Twoje podstawowe serwery danych.
Wady:
- Nie ciągła kopia zapasowa – Jest to kopia zapasowa z określonego punktu w czasie i można ją odzyskać tylko do punktów kopii zapasowej.
- Maszyny fizyczne - Za pomocą tej techniki nie można tworzyć kopii zapasowych lokalnych maszyn fizycznych.
Pod koniec dnia, jeśli twoje dane są małe, wszystkie trzy opcje będą działać dobrze. Kiedy zaczniesz mieć większe ilości danych, będziesz musiał poświęcić czas i wybrać opcję, która najlepiej pasuje do Twojego scenariusza.