Samouczek: migrowanie bazy danych MongoDB do usługi Azure Cosmos DB dla bazy danych MongoDB w trybie online przy użyciu usługi Azure Database Migration Service
DOTYCZY: MongoDB
Ważne
Migracje do usługi Azure Cosmos DB dla rdzeni wirtualnych bazy danych MongoDB można wykonać przy użyciu rozszerzenia migracji bazy danych MongoDB dla usługi Azure Data Studio. To rozszerzenie korzysta z usługi Azure Database Migration Service w tle. Należy pamiętać, że nie można przeprowadzić migracji do usługi Azure Cosmos DB dla rdzeni wirtualnych bazy danych MongoDB przy użyciu usługi Database Migration Service w witrynie Azure Portal.
Ten przewodnik migracji bazy danych MongoDB jest częścią serii migracji bazy danych MongoDB. Krytyczne kroki migracji bazy danych MongoDB to przed migracją, migracją i po migracji.
Omówienie migracji danych online z bazy danych MongoDB do usługi Azure Cosmos DB przy użyciu usługi DMS
Za pomocą usługi Azure Database Migration Service można przeprowadzić migrację baz danych w trybie online (minimalny przestój) z lokalnego wystąpienia bazy danych MongoDB do usługi Azure Cosmos DB dla bazy danych MongoDB.
W tym samouczku przedstawiono kroki skojarzone z użyciem usługi Azure Database Migration Service w celu migracji danych bazy danych MongoDB do usługi Azure Cosmos DB:
- Utwórz wystąpienie usługi Azure Database Migration Service.
- Utwórz projekt migracji.
- Określ źródło.
- Określ element docelowy.
- Mapuj na docelowe bazy danych.
- Uruchamianie migracji.
- Monitoruj migrację.
- Weryfikowanie danych w usłudze Azure Cosmos DB.
- Ukończ migrację, gdy wszystko będzie gotowe.
W tym samouczku przeprowadzisz migrację zestawu danych w bazie danych MongoDB hostowanego na maszynie wirtualnej platformy Azure do usługi Azure Cosmos DB dla bazy danych MongoDB z minimalnym przestojem za pośrednictwem usługi Azure Database Migration Service. Jeśli nie masz jeszcze skonfigurowanego źródła bazy danych MongoDB, zobacz Instalowanie i konfigurowanie bazy danych MongoDB na maszynie wirtualnej z systemem Windows na platformie Azure.
Przeprowadzenie migracji online przy użyciu usługi Azure Database Migration Service wymaga utworzenia wystąpienia na podstawie warstwy cenowej Premium.
Ważne
Aby uzyskać optymalne środowisko migracji, firma Microsoft zaleca utworzenie wystąpienia usługi Azure Database Migration Service w tym samym regionie świadczenia usługi Azure co docelowa baza danych. Przenoszenie danych między regionami lub lokalizacjami geograficznymi może spowalniać proces migracji.
Napiwek
W usłudze Azure Database Migration Service możesz migrować bazy danych w trybie offline lub w trybie online. Podczas migracji w trybie offline przestój aplikacji rozpoczyna się po rozpoczęciu migracji. Aby ograniczyć przestój do czasu potrzebnego na przejście do nowego środowiska po migracji, użyj migracji online . Zalecamy przetestowanie migracji w trybie offline w celu określenia, czy przestój jest akceptowalny. Jeśli oczekiwany przestój nie jest akceptowalny, wykonaj migrację online.
W tym artykule opisano migrację online z bazy danych MongoDB do usługi Azure Cosmos DB dla bazy danych MongoDB. Aby przeprowadzić migrację w trybie offline, zobacz Samouczek: migrowanie bazy danych MongoDB do usługi Azure Cosmos DB dla jednostek RU bazy danych MongoDB w trybie offline przy użyciu usługi Azure Database Migration Service.
Wymagania wstępne
Do ukończenia tego samouczka niezbędne są następujące elementy:
Wykonaj kroki przed migracją , takie jak szacowanie przepływności, wybieranie klucza partycji i zasady indeksowania.
Utwórz konto usługi Azure Cosmos DB dla bazy danych MongoDB i upewnij się, że włączono opcję Zapobieganie błędom ograniczania szybkości dla operacji usługi Azure Cosmos DB dla bazy danych MongoDB.
Uwaga
Usługa DMS nie jest obecnie obsługiwana, jeśli migrujesz do konta usługi Azure Cosmos DB dla bazy danych MongoDB aprowizowanego z trybem bezserwerowym.
Utwórz sieć wirtualną platformy Microsoft Azure dla usługi Azure Database Migration Service przy użyciu modelu wdrażania usługi Azure Resource Manager, który zapewnia łączność typu lokacja-lokacja z lokalnymi serwerami źródłowymi przy użyciu usługi ExpressRoute lub sieci VPN.
Podczas konfigurowania sieci wirtualnej, jeśli używasz usługi ExpressRoute z komunikacją równorzędną sieci do firmy Microsoft, dodaj następujące punkty końcowe usługi do podsieci , w której będzie aprowizowana usługa:
- Punkt końcowy docelowej bazy danych (np. punkt końcowy usługi SQL, punkt końcowy usługi Azure Cosmos DB)
- Punkt końcowy magazynu
- Punkt końcowy magistrali usług
Taka konfiguracja jest konieczna, ponieważ usługa Azure Database Migration Service nie ma łączności z Internetem.
Upewnij się, że reguły sieciowej grupy zabezpieczeń sieci wirtualnej nie blokują następujących portów komunikacyjnych: 53, 443, 445, 9354 i 10000–20000. Aby uzyskać więcej informacji na temat filtrowania ruchu sieciowej grupy zabezpieczeń sieci wirtualnej, zapoznaj się z artykułem Filtrowanie ruchu sieciowego przy użyciu sieciowych grup zabezpieczeń.
Otwórz zaporę systemu Windows, aby zezwolić usłudze Azure Database Migration Service na dostęp do źródłowego serwera MongoDB, który domyślnie jest portem TCP 27017.
W przypadku korzystania z urządzenia zapory przed źródłowymi bazami danych może być konieczne dodanie reguł zapory, aby umożliwić usłudze Azure Database Migration Service dostęp do źródłowych baz danych na potrzeby migracji.
Konfigurowanie ponawiania prób po stronie serwera usługi Azure Cosmos DB w celu wydajnej migracji
Klienci migrujący z bazy danych MongoDB do usługi Azure Cosmos DB korzystają z możliwości zapewniania ładu zasobów, co gwarantuje możliwość pełnego wykorzystania aprowizowanych jednostek RU/s przepływności. Usługa Azure Cosmos DB może ograniczyć dane żądanie usługi Data Migration Service w trakcie migracji, jeśli to żądanie przekroczy aprowizowaną jednostkę RU/s kontenera; następnie należy ponowić próbę żądania. Usługa Data Migration Service może wykonywać ponawianie prób, jednak czas rundy związany z przeskoku sieciowym między usługą Data Migration Service i usługą Azure Cosmos DB ma wpływ na ogólny czas odpowiedzi tego żądania. Skrócenie czasu odpowiedzi dla żądań ograniczonych może skrócić całkowity czas potrzebny na migrację. Funkcja ponawiania po stronie serwera usługi Azure Cosmos DB umożliwia usłudze przechwytywanie kodów błędów ograniczania przepustowości i ponawianie próby przy niższym czasie rundy, co znacznie skraca czas odpowiedzi na żądanie.
Możliwości ponawiania po stronie serwera można znaleźć w bloku Funkcje portalu usługi Azure Cosmos DB
Jeśli jest wyłączona, zalecamy jej włączenie, jak pokazano poniżej
Rejestrowanie dostawcy zasobów
Przed utworzeniem pierwszego wystąpienia usługi Database Migration Service zarejestruj dostawcę zasobów Microsoft.DataMigration.
Zaloguj się w witrynie Azure Portal. Wyszukaj i wybierz pozycję Subskrypcje.
Wybierz subskrypcję, w której chcesz utworzyć wystąpienie usługi Azure Database Migration Service, a następnie wybierz pozycję Dostawcy zasobów.
Wyszukaj pozycję migracja, a następnie wybierz pozycję Zarejestruj dla pozycji Microsoft.DataMigration.
Tworzenie wystąpienia
W witrynie Azure Portal wybierz pozycję + Utwórz zasób, wyszukaj pozycję Azure Database Migration Service, a następnie wybierz pozycję Azure Database Migration Service z listy rozwijanej.
Na ekranie Azure Database Migration Service wybierz polecenie Utwórz.
Na ekranie Tworzenie usługi migracji określ nazwę usługi, subskrypcję oraz nową lub istniejącą grupę zasobów.
Wybierz lokalizację, w której chcesz utworzyć wystąpienie usługi Azure Database Migration Service.
Wybierz istniejącą sieć wirtualną lub utwórz nową.
Sieć wirtualna zapewnia usłudze Azure Database Migration Service dostęp do źródłowego wystąpienia bazy danych MongoDB i docelowego konta usługi Azure Cosmos DB.
Aby uzyskać więcej informacji na temat tworzenia sieci wirtualnej w witrynie Azure Portal, zobacz artykuł Tworzenie sieci wirtualnej przy użyciu witryny Azure Portal.
Wybierz jednostkę SKU z warstwy cenowej Premium.
Uwaga
Migracje online są obsługiwane tylko w przypadku korzystania z warstwy Premium. Aby uzyskać więcej informacji na temat kosztów i warstw cenowych, zobacz stronę z cennikiem.
Wybierz pozycję Utwórz, aby utworzyć usługę.
Tworzenie projektu migracji
Po utworzeniu usługi znajdź ją w witrynie Azure Portal, otwórz ją, a następnie utwórz nowy projekt migracji.
W witrynie Azure Portal wybierz pozycję Wszystkie usługi, wyszukaj usługę Azure Database Migration Service, a następnie wybierz pozycję Azure Database Migration Services.
Na ekranie Usługi Azure Database Migration Services wyszukaj nazwę utworzonego wystąpienia usługi Azure Database Migration Service, a następnie wybierz wystąpienie.
Alternatywnie możesz odnaleźć wystąpienie usługi Azure Database Migration Service w okienku wyszukiwania w witrynie Azure Portal.
Wybierz pozycję + Nowy projekt migracji.
Na ekranie Nowy projekt migracji określ nazwę projektu, w polu tekstowym Typ serwera źródłowego wybierz pozycję MongoDB, w polu tekstowym Typ serwera docelowego wybierz pozycję Azure Cosmos DB dla bazy danych MongoDB, a następnie w polu Wybierz typ działania wybierz pozycję Migracja danych online [wersja zapoznawcza].
Wybierz przycisk Zapisz, a następnie polecenie Utwórz i uruchom działanie, aby utworzyć projekt i uruchomić działanie migracji.
Określanie szczegółów źródła
Na ekranie Szczegóły źródła określ szczegóły połączenia dla źródłowego serwera MongoDB.
Ważne
Usługa Azure Database Migration Service nie obsługuje usługi Azure Cosmos DB jako źródła.
Istnieją trzy tryby nawiązywania połączenia ze źródłem:
Tryb standardowy, który akceptuje w pełni kwalifikowaną nazwę domeny lub adres IP, numer portu i poświadczenia połączenia.
Tryb parametrów połączenia, który akceptuje parametry połączenia bazy danych MongoDB zgodnie z opisem znajdującym się w artykule Connection String URI Format (Format identyfikatora URI parametrów połączenia).
Tryb danych z usługi Azure Storage, który akceptuje adres URL sygnatury dostępu współdzielonego kontenera obiektów blob. Zaznacz pole wyboru Obiekt blob zawiera zrzuty BSON, jeśli kontener obiektów blob zawiera zrzuty BSON utworzone przez narzędzie bsondump bazy danych MongoDB, lub usuń zaznaczenie tego pola wyboru, jeśli kontener zawiera pliki JSON.
Jeśli wybierzesz tę opcję, upewnij się, że parametry połączenia konta magazynu mają następujący format:
https://blobnameurl/container?SASKEY
Ponadto na podstawie informacji o zrzucie typów w usłudze Azure Storage należy pamiętać o następujących szczegółach.
W przypadku zrzutów BSON dane w kontenerze obiektów blob muszą mieć format bsondump, tak aby pliki danych były umieszczone w folderach o nazwach zgodnych z odpowiednimi bazami danych w formacie kolekcja.bson. Pliki metadanych (jeśli istnieją) powinny mieć nazwy w formacie kolekcja.metadata.json.
W przypadku zrzutów JSON pliki w kontenerze obiektów blob muszą być umieszczone w folderach o nazwach zgodnych z odpowiednimi bazami danych. W każdym folderze bazy danych pliki danych muszą być umieszczone w podfolderze o nazwie „data” i mieć nazwy w formacie kolekcja.json. Pliki metadanych (jeśli istnieją) muszą być umieszczone w podfolderze o nazwie „metadata” i mieć nazwy w takim samym formacie kolekcja.json. Pliki metadanych muszą mieć taki sam format jak pliki tworzone przez narzędzie bsondump bazy danych MongoDB.
Ważne
Nie zaleca się używania certyfikatu z podpisem własnym na serwerze MongoDB. Jeśli jednak jest używany, połącz się z serwerem przy użyciu trybu parametry połączenia i upewnij się, że parametry połączenia ma wartość ""
&sslVerifyCertificate=false
Jeśli rozpoznawanie nazw DNS nie jest możliwe, możesz użyć adresu IP.
Wybierz pozycję Zapisz.
Adres serwera źródłowego powinien być adresem podstawowym, jeśli źródło jest zestawem replik, lub adresem routera, jeśli źródło jest podzielonym na fragmenty klastrem bazy danych MongoDB. W przypadku klastra bazy danych MongoDB podzielonego na fragmenty usługa Azure Database Migration Service musi mieć możliwość nawiązania połączenia z poszczególnymi fragmentami w klastrze, co może wymagać otwarcia zapory na większej osobie.
Określanie szczegółów elementu docelowego
Na ekranie Szczegóły elementu docelowego migracji określ szczegóły połączenia dla docelowego konta usługi Azure Cosmos DB, które jest wstępnie aprowizowaną usługą Azure Cosmos DB dla konta bazy danych MongoDB, do którego migrujesz dane bazy danych MongoDB.
Wybierz pozycję Zapisz.
Mapowanie do docelowych baz danych
Na ekranie Mapowanie do docelowych baz danych określ mapowanie źródłowej i docelowej bazy danych na potrzeby migracji.
Jeśli docelowa baza danych zawiera taką samą nazwę bazy danych jak źródłowa baza danych, usługa Azure Database Migration Service domyślnie wybiera docelową bazę danych.
Jeśli ciąg Create pojawi się obok nazwy bazy danych, oznacza to, że usługa Azure Database Migration Service nie znalazła docelowej bazy danych, a usługa utworzy bazę danych.
W tym momencie migracji, jeśli chcesz udostępnić przepływność w bazie danych, określ jednostkę RU przepływności. W usłudze Azure Cosmos DB można aprowizować przepływność na poziomie bazy danych lub indywidualnie dla każdej kolekcji. Przepływność jest mierzona w jednostkach żądań w usłudze Azure Cosmos DB (RU). Dowiedz się więcej o cenniku usługi Azure Cosmos DB.
Wybierz pozycję Zapisz.
Na ekranie Ustawienia kolekcji rozwiń listę kolekcji, a następnie przejrzyj listę kolekcji, które będą migrowane.
Usługa Azure Database Migration Service automatycznie wybiera wszystkie kolekcje istniejące w źródłowym wystąpieniu bazy danych MongoDB, które nie istnieją na docelowym koncie usługi Azure Cosmos DB. Jeśli chcesz ponownie przeprowadzić migrację kolekcji, które już zawierają dane, musisz jawnie wybrać te kolekcje na bieżącym ekranie.
Możesz określić liczbę jednostek RU używanych przez kolekcje. W większości przypadków wartość z zakresu od 500 (co najmniej 1000 dla kolekcji podzielonych na fragmenty) do 4000 powinna być wystarczająca. Usługa Azure Database Migration Service sugeruje inteligentne wartości domyślne na podstawie rozmiaru kolekcji.
Wykonaj migrację i kolekcję bazy danych równolegle przy użyciu wielu wystąpień usługi Azure Database Migration Service, w razie potrzeby, aby przyspieszyć przebieg.
Możesz również wskazać klucz fragmentu, aby skorzystać z partycjonowania w usłudze Azure Cosmos DB, które zapewnia optymalną skalowalność. Zapoznaj się z najlepszymi rozwiązaniami dotyczącymi wybierania klucza fragmentu/klucza partycji. Jeśli nie masz klucza partycji, zawsze możesz użyć _id jako klucza fragmentu w celu uzyskania lepszej przepływności.
Wybierz pozycję Zapisz.
Na ekranie Podsumowanie migracji w polu tekstowym Nazwa działania określ nazwę działania migracji.
Uruchamianie migracji
Wybierz polecenie Uruchom migrację.
Zostanie wyświetlone okno działania migracji z wyświetlonym stanem działania.
Monitorowanie migracji
Na ekranie działania migracji wybieraj polecenie Odśwież, aby zaktualizować ekran, aż do momentu, gdy Stan migracji zmieni się na Ponowne odtwarzanie.
Uwaga
Po wybraniu działania można uzyskać szczegółowe informacje o metrykach migracji na poziomie bazy danych i kolekcji.
Weryfikowanie danych w usłudze Azure Cosmos DB
Wprowadź zmiany do źródłowej bazy danych MongoDB.
Połącz się z usługą Azure Cosmos DB, aby sprawdzić, czy dane są replikowane ze źródłowego serwera MongoDB.
Kończenie migracji
Po udostępnieniu wszystkich dokumentów ze źródła w docelowym obiekcie docelowym usługi Azure Cosmos DB wybierz pozycję Zakończ z menu kontekstowego działania migracji, aby ukończyć migrację.
Ta akcja spowoduje zakończenie ponownego odtwarzania wszystkich oczekujących zmian i ukończenie migracji.
Optymalizacja po migracji
Po przeprowadzeniu migracji danych przechowywanych w bazie danych MongoDB do usługi Azure Cosmos DB dla bazy danych MongoDB możesz nawiązać połączenie z usługą Azure Cosmos DB i zarządzać danymi. Można również wykonać inne kroki optymalizacji po migracji, takie jak optymalizacja zasad indeksowania, zaktualizowanie domyślnego poziomu spójności lub skonfigurowanie globalnej dystrybucji dla konta usługi Azure Cosmos DB. Aby uzyskać więcej informacji, zobacz artykuł Dotyczący optymalizacji po migracji .
Dodatkowe zasoby
Próbujesz zaplanować pojemność migracji do usługi Azure Cosmos DB?
- Jeśli wszystko, co wiesz, to liczba rdzeni wirtualnych i serwerów w istniejącym klastrze bazy danych, przeczytaj o szacowaniu jednostek żądań przy użyciu rdzeni wirtualnych lub procesorów wirtualnych
- Jeśli znasz typowe stawki żądań dla bieżącego obciążenia bazy danych, przeczytaj o szacowaniu jednostek żądań przy użyciu planisty pojemności usługi Azure Cosmos DB