Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ten artykuł ułatwia planowanie i wykonywanie migracji z bazy danych MongoDB do Azure DocumentDB. Obejmuje ona dostępne narzędzia migracji, kluczowe fazy migracji oraz najlepsze rozwiązania w celu zmniejszenia ryzyka i zminimalizowania przestojów.
Niezależnie od tego, czy przeprowadzasz migrację z lokalnego serwera MongoDB, maszyny wirtualnej hostowanej w chmurze, czy zarządzanej usługi MongoDB, opcje migracji, wskazówki i najlepsze praktyki opisane w tym artykule mają zastosowanie.
Kluczowe fazy migracji
Pomyślna migracja przebiega według tych odrębnych faz. Każda faza ma określone cele i kryteria sukcesu.
Oceń
Uruchom automatyczne skanowanie źródłowej bazy danych MongoDB przy użyciu rozszerzenia migracji Azure DocumentDB aby zidentyfikować nieobsługiwane funkcje, polecenia, składnię zapytań i typy indeksów. Ocena zawiera również omówienie wersji bazy danych MongoDB, licencji, typu wystąpienia oraz metryk bazy danych i kolekcji. Użyj tych ustaleń, aby zaplanować zmiany schematu i zidentyfikować wszelkie wymagane refaktoryzacje przed migracją.
Wskazówka
Zalecamy przejrzenie obsługiwanych funkcji i składni języka MQL (MongoDB Query Language) oraz przeprowadzenie weryfikacji koncepcji przed rzeczywistą migracją.
2. Przygotowanie
Przeanalizuj raport oceny i zmierz źródłowe TPS (transakcje na sekundę). Uruchom migracje w wersji próbnej na reprezentatywnych danych, aby określić docelową warstwę obliczeniową, warstwę magazynowania i liczbę fragmentów. Przeprowadź testy wydajnościowe, aby upewnić się, że konfiguracja docelowa spełnia Twoje wymagania.
3. Uściślij
Przygotuj kolekcje docelowe przy użyciu odpowiednich kluczy fragmentów i indeksów, które pasują do wzorców zapytań produkcyjnych. Jeśli używasz wielu fragmentów, zdecyduj, jak dystrybuować kolekcje między fragmentami, aby równoważyć obciążenie i zminimalizować operacje między fragmentami.
4. Migrowanie
Uruchom zadanie migracji, aby przenieść dane w trybie offline lub w trybie online:
- Migracja w trybie offline: tworzy migawkę źródła na początku i kopiuje je zbiorczo do miejsca docelowego. Wszystkie dane dodane, zaktualizowane lub usunięte w źródle po wykonaniu migawki nie są kopiowane. Wymagany przestój zależy od tego, jak długo trwa kopiowanie zbiorcze.
- Migracja online: wykonuje tę samą kopię zbiorczą co w trybie offline, ale także monitoruje strumień zmian w całym procesie. Zmiany wprowadzone podczas migracji są replikowane do miejsca docelowego, więc wymagany przestój aplikacji jest minimalny. Wymaga przepływu wiadomości i wystarczająco dużego oplogu w źródle.
Wskazówka
W przypadku migracji online upewnij się, że strumień zmian jest włączony, a plik oplog ma odpowiedni rozmiar w źródłowej bazie danych MongoDB, aby przechwycić wszystkie zmiany w oknie migracji.
Aby uzyskać dostępne narzędzia, zobacz Narzędzia migracji.
5. Sprawdzanie poprawności
Sprawdź, czy wszystkie dane zostały skopiowane, łącznie z najnowszymi aktualizacjami. Porównaj liczbę dokumentów, uruchom weryfikację opartą na próbce i sprawdź, czy indeksy i struktury danych spełniają oczekiwania w obiekcie docelowym. Użyj zautomatyzowanych skryptów, aby walidacja była powtarzalna i spójna.
6. Przełączenie
Przenieś ruch odczytu do miejsca docelowego i sprawdź, czy nie ma problemów z funkcjonalnością ani wydajnością. Po pomyślnym zakończeniu walidacji odczytu przenieś ruch zapisu do miejsca docelowego. Uważnie monitoruj dokładnie w oknie przełączenia pod kątem wszelkich anomalii.
Narzędzia migracji
Narzędzia omówione w tym artykule ułatwiają migrowanie obciążeń bazy danych MongoDB z następujących źródeł:
- Maszyna wirtualna bazy danych MongoDB
- Atlas bazy danych MongoDB
- AWS DocumentDB
Rozszerzenie do migracji DocumentDB w usłudze Azure
Twórz i zarządzaj zadaniami migracji w Visual Studio Code za pomocą rozszerzenia Azure DocumentDB Migration (wersja publiczna zapoznawcza) — rozwiązania stworzonego z myślą o prostocie, bezpieczeństwie i braku przestoju.
To narzędzie zapewnia jasne, szczegółowe wskazówki ułatwiające migrowanie obciążeń bez przerw w działaniu usługi. Masz następujące możliwości:
- Wybieranie określonych baz danych i kolekcji na potrzeby migracji
- Wykonaj wszystkie kroki w znanym interfejsie programu VS Code
- Zapewnianie bezpiecznej łączności w całym procesie
- Korzystanie z zerowego kosztu korzystania z rozszerzenia
Dzięki rozszerzeniu migracji Azure DocumentDB możesz usprawnić swoją podróż migracyjną, zachowując jednocześnie kontrolę i bezpieczeństwo — a wszystko to bez dodatkowej infrastruktury lub złożoności.
Narzędzie aplikacji internetowej (online)
Usprawnij migrację do usługi Azure DocumentDB przy użyciu MongoMigrationwebBasedUtility narzędzia zaprojektowanego pod kątem wydajności, niezawodności i łatwości użycia. Repozytorium zawiera szczegółowe instrukcje krok po kroku dotyczące migrowania obciążeń. To narzędzie zapewnia bezproblemowe środowisko migracji danych w trybie online i offline. Proces jest przyjazny dla użytkownika i wymaga podania tylko szczegółów źródłowych i docelowych. Umożliwia ona bezproblemowe migrowanie kolekcji Bazy danych MongoDB przy zachowaniu kontroli, zabezpieczeń i skalowalności, co pozwala odblokować pełny potencjał Azure DocumentDB.
Najważniejsze funkcje:
- Obsługuje wdrażanie prywatne w sieci wirtualnej w celu zapewnienia zwiększonych zabezpieczeń
- Funkcje automatycznego wznawiania w przypadku utraty połączenia lub błędów przejściowych
- Przyjazny dla użytkownika interfejs
- Dostęp do kodu źródłowego języka C# w GitHub
Narzędzie obsługuje elastyczne opcje wdrażania i działa niezależnie bez zależności od innych zasobów Azure. Ponadto oferuje skalowalną wydajność z opcją dostosowywania planów cenowych dla aplikacji Azure Web App.
Natywne narzędzia bazy danych MongoDB (offline)
Możesz również użyć natywnych narzędzi bazy danych MongoDB, takich jak mongodump/mongorestore, mongoexport/mongoimport migrować zestawy danych w trybie offline (bez replikowania zmian na żywo) do oferty Azure DocumentDB.
| Scenario | Narzędzie natywne MongoDB |
|---|---|
| Przenoszenie podzbioru danych bazy danych (opartych na formacie JSON/CSV) | mongoexport/mongoimport |
| Przenoszenie całej bazy danych (opartej na formacie BSON) | mongodump/mongorestore |
-
mongoexport/mongoimport to najlepsza para narzędzi migracji do migrowania podzestawu bazy danych MongoDB.
- Mongoexport eksportuje istniejące dane do pliku JSON lub CSV czytelnego dla człowieka. Polecenie mongoexport przyjmuje argument określający podzestaw istniejących danych do wyeksportowania.
- mongoimport otwiera plik JSON lub CSV i wstawia zawartość do docelowego wystąpienia bazy danych (w tym przypadku Azure DocumentDB).
- JSON i CSV nie są kompaktowymi formatami; użycie mongoimport może prowadzić do poniesienia dodatkowych opłat sieciowych podczas wysyłania danych do usługi Azure DocumentDB.
-
mongodump/mongorestore to najlepsza para narzędzi migracji do migrowania całej bazy danych MongoDB. Kompaktowy format BSON umożliwia bardziej efektywne wykorzystanie zasobów sieciowych podczas wstawiania danych do Azure DocumentDB.
- mongodump eksportuje istniejące dane jako plik BSON.
- mongorestore importuje zrzut pliku BSON do Azure DocumentDB.
Uwaga / Notatka
Narzędzia natywne bazy danych MongoDB mogą przenosić dane tylko tak szybko, jak pozwala na to sprzęt hosta.
Najlepsze rozwiązania dotyczące migracji
Skorzystaj z tych najlepszych rozwiązań, aby zmniejszyć ryzyko, dokładniej oszacować pojemność, zwiększyć szybkość migracji i bezpiecznie wykonać migrację jednorazową.
Zmniejszanie błędów
Użyj haseł zakodowanych w adresach URL w parametrach połączenia. Znaki specjalne, takie jak
@,#i:mogą przerywać analizowanie, gdy nie są kodowane. Kodowanie adresów URL pomaga uniknąć błędów połączeń podczas przeprowadzania oceny i migracji.Uruchom wstępną ocenę migracji przed migracją. Ocena ułatwia wczesne identyfikowanie nieobsługiwanych funkcji, luk w zgodności i potencjalnych blokad. Rozwiąż problemy przed migracją, aby zmniejszyć przeróbki podczas przełączenia.
Przećwicz migrację i przełączenie przed produkcją. Uruchom co najmniej jedną migrację próbną w środowisku nieprodukcyjnym. Praktyka zwiększa dokładność czasu, gotowość zespołu i pewność siebie podczas przejścia produkcyjnego.
Dokładne określanie rozmiaru infrastruktury
Uruchom migrację próbną na małym, ale reprezentatywnym zestawie danych. Użyj wersji próbnej, aby przechwycić realistyczną przepływność, opóźnienie i zużycie zasobów. Reprezentatywna próbka daje lepsze oszacowania niż syntetyczne dane testowe.
Ekstrapolować wyniki prób w celu oszacowania warstwy obliczeniowej, warstwy przechowywania i liczby fragmentów. Użyj obserwowanych metryk próbnych, aby projektować końcowe potrzeby dotyczące określania rozmiaru na podstawie pełnego woluminu zestawu danych. Ponownie sprawdź szacowanie, czy rozkład danych produkcyjnych różni się od przykładu.
Użyj reprezentatywnej liczby dokumentów, rozmiaru i struktury z ustawieniami przypominającymi środowisko produkcyjne. Dopasuj ustawienia indeksowania produkcyjnego i fragmentowania podczas okresu próbnego, aby uniknąć niedoceniania kosztów lub czasu trwania migracji. Ustawienia nieprodukcyjne mogą generować mylące wyniki.
Szacuj pamięć docelową na podstawie wyników prób, zamiast zakładać, że rozmiary źródłowe i docelowe są równe. Rozmiary pamięci źródłowej i docelowej mogą się różnić ze względu na różnice w definicjach indeksów i układzie danych. Użyj wyników wersji próbnej, aby zaplanować magazyn z bezpiecznym buforem.
Optymalizowanie szybkości migracji
Jeśli to możliwe, przeprowadź migrację w tym samym regionie. Utrzymywanie źródła i miejsca docelowego w tym samym regionie zmniejsza opóźnienie sieci i zwiększa wydajność transferu danych. Może również zmniejszyć koszty transferu danych między regionami.
Skaluj w górę podczas migracji, a następnie skaluj w dół po zmianie. Na przykład można tymczasowo skalować klaster docelowy do M200, aby zwiększyć przepływność migracji. Po migracji przeprowadź skalowanie w dół do odpowiedniej warstwy w obsługiwanym zakresie dla obciążeń w stanie stałym.
Wybierz dyski z wyższymi IOPS, aby szybciej zapisywać. Większa liczba IOPS (operacji we/wy na sekundę) może znacznie poprawić wydajność migracji z dużą liczbą operacji zapisu. Ponieważ rozmiar dysku zwykle nie można skalować w dół później, wybierz dokładnie rozmiar dysku podczas planowania.
Zaplanuj przełączenie dokładnie, ponieważ nie ma możliwości cofnięcia
Zaplanuj przestój podczas okna o małym natężeniu ruchu. Wymagany przestój zależy od tego, jak długo są wykonywane kroki weryfikacji po tym, gdy migracja nadąża za na bieżąco wprowadzanymi zmianami. Okno o niskim natężeniu ruchu zmniejsza wpływ na działalność biznesową.
Należy zatrzymać wszystkie operacje zapisu do źródła tuż przed przełączeniem. Ten krok zapobiega rozbieżności między elementem źródłowym i docelowym w ostatniej chwili. Upewnij się, że działanie zapisu jest w pełni wstrzymane przed zakończeniem przełączenia.
Przed przeniesieniem zapisów zweryfikuj zmigrowane dane. Porównaj liczby dokumentów, a następnie uruchom porównanie dokumentów losowych (na przykład testy oparte na skrótach). Użyj skryptu, jeśli jest to możliwe, aby powtarzać walidację.
Zaktualizuj parametry połączenia aplikacji i przetestuj je w lokalizacji docelowej. Uruchom walidację funkcjonalną i wydajnościową względem odczytów docelowych i przetestuj ruch, zanim włączysz zapisy produkcyjne. Potwierdź, że ścieżki krytyczne zachowują się zgodnie z oczekiwaniami.
Przenieś ruch zapisu dopiero po pomyślnym zakończeniu walidacji. Przesunięcie zapisów produkcyjnych do obiektu docelowego dopiero po pomyślnym i spójnym wynikach testu. Użyj etapowego wdrożenia, jeśli architektura aplikacji ją obsługuje.
Koordynowanie między zespołami w celu bezproblemowej migracji
Zabezpiecz poparcie wszystkich interesariuszy: aplikacji, danych, infrastruktury, zabezpieczeń, sieci i zespołów zarządzania. Wyjaśnij oczekiwania i odpowiedzialności na wczesnym etapie. Własność współdzielona zmniejsza nieporozumienia i opóźnienia podczas wykonywania.
Korzystanie z planowania i próbnych przebiegów w celu budowania zaufania zespołu i usprawnienia procedur. Nie ma skrótów do płynnej migracji. Uruchamianie wersji próbnych ujawnia problemy w środowisku o niższym ryzyku i daje zespołom okazję do ćwiczeń.
Traktuj moment przełączania jako krytyczny i wrażliwy na czas. Cutover wymaga precyzyjnej koordynacji i jasnej komunikacji. Wyznaczanie osób podejmujących decyzje i ustalanie ścieżek eskalacji przed rozpoczęciem.
Dowiedz się, kto wykona poszczególne kroki, kiedy powinno się to zdarzyć i jak zminimalizować przestoje. Przypisz obowiązki, ustal osie czasu i dopasuj je do kryteriów sukcesu. Dokumentowanie elementu Runbook jednorazowego i udostępnianie go wszystkim uczestnikom.
Uzgodnij działania ze wszystkimi interesariuszami, gdy przełączenie wymaga jednoczesnej aktualizacji wielu obciążeń. Zaplanuj przełączenie podczas okna konserwacyjnego, które odpowiada wszystkim zespołom. Unikaj piątkowych nocy lub okresów w pobliżu głównych wydarzeń biznesowych.
Nie spiesz się ani nie pomijaj kroków należytej staranności — nie ma możliwości cofnięcia zmian. Dokładne sprawdzanie poprawności i staranne wykonywanie zapobiega kosztownym błędom. Zaakceptuj, że jednorazowe przejście zajmuje trochę czasu; skróty ukierunkowane na szybkość tworzą ryzyko.
Treści powiązane
- Przeprowadź migrację danych do usługi Azure DocumentDB przy użyciu narzędzi native MongoDB.
- Przeprowadź migrację danych do usługi Azure DocumentDB przy użyciu MongoMigrationwebBasedUtility.