Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Dit artikel helpt u bij het plannen en uitvoeren van een migratie van MongoDB naar Azure DocumentDB. Het omvat de beschikbare migratiehulpprogramma's, de belangrijkste fasen van een migratie en aanbevolen procedures om risico's te verminderen en downtime te minimaliseren.
Of u nu migreert van een on-premises MongoDB-server, een in de cloud gehoste VM of een beheerde MongoDB-service, de migratieopties, richtlijnen en aanbevolen procedures in dit artikel zijn van toepassing.
Belangrijke migratiefasen
Een geslaagde migratie volgt deze verschillende fasen. Elke fase heeft specifieke doelstellingen en succescriteria.
1. Beoordelen
Voer een geautomatiseerde scan van uw bron-MongoDB uit met behulp van de Azure DocumentDB-migratieextensie om niet-ondersteunde functies, opdrachten, querysyntaxis en indextypen te identificeren. De evaluatie biedt ook een overzicht van mongoDB-versie, licentie, exemplaartype en metrische gegevens over databases en verzamelingen. Gebruik deze bevindingen om schemawijzigingen te plannen en eventuele vereiste herstructureringen vóór de migratie te identificeren.
Tip
We raden u aan om de ondersteunde MQL-functies (MongoDB Query Language) en syntaxis uitvoerig te bekijken en een proof-of-concept uit te voeren vóór de daadwerkelijke migratie.
2. Voorbereiden
Analyseer het evaluatierapport en meetbron-TPS (transacties per seconde). Voer proefmigraties uit op representatieve gegevens om de doelcompute-laag, doelopslag-laag en het aantal shards vast te stellen. Voer prestatietests uit om ervoor te zorgen dat de doelconfiguratie voldoet aan uw vereisten.
3. Verfijnen
Bereid doelcollecties voor met de juiste shard-sleutels en indexen die overeenkomen met de querypatronen in uw productieomgeving. Als u meerdere shards gebruikt, moet u beslissen hoe u verzamelingen over shards distribueert om de belasting te verdelen en overkoepelende shardbewerkingen te minimaliseren.
4. Migreren
Voer de migratietaak uit om gegevens te verplaatsen in de offline- of onlinemodus:
- Offlinemigratie: maakt aan het begin een momentopname van de bron en kopieert deze in bulk naar het doel. Alle gegevens die op de bron zijn toegevoegd, bijgewerkt of verwijderd nadat de momentopname niet is gekopieerd. Vereiste downtime is afhankelijk van hoelang het bulksgewijs kopiëren duurt.
- Onlinemigratie: voert dezelfde bulkkopie uit als offline, maar bewaakt ook de wijzigingsstroom tijdens het proces. Wijzigingen die tijdens de migratie zijn aangebracht, worden gerepliceerd naar het doel, zodat de vereiste downtime van de toepassing minimaal is. Vereist wijzigingsstroom en een voldoende grote oplog op de bron.
Tip
Voor onlinemigraties moet u ervoor zorgen dat de wijzigingsstroom is ingeschakeld en dat de oplog de juiste grootte heeft voor uw bron-MongoDB om alle wijzigingen tijdens het migratievenster vast te leggen.
Zie Migratiehulpprogramma's voor beschikbare hulpprogramma's.
5. Valideren
Controleer of alle gegevens zijn gekopieerd, inclusief de meest recente updates. Vergelijk het aantal documenten, voer een voorbeeldvalidatie uit en controleer of indexen en gegevensstructuren overeenkomen met de verwachtingen van het doel. Gebruik geautomatiseerde scripts om validatie herhaalbaar en consistent te maken.
6. Overgang
Verplaats leesverkeer naar het doel en controleer of er geen functionele of prestatieproblemen zijn. Zodra de leesvalidatie is geslaagd, verplaatst u schrijfverkeer naar het doel. Controleer zorgvuldig tijdens de overgangsperiode op eventuele afwijkingen.
Hulpprogramma's voor migratie
De hulpprogramma's die in dit artikel worden besproken, helpen u bij het migreren van uw MongoDB-workloads vanuit de volgende bronnen:
- Virtuele MongoDB-machine
- MongoDB Atlas-
- AWS DocumentDB
Migratie-extensie voor Azure DocumentDB
Maak en beheer uw migratietaken in Visual Studio Code met de Azure DocumentDB-migratieextensie (openbare preview) - een oplossing die is ontworpen voor eenvoud, beveiliging en geen downtime.
Dit hulpprogramma biedt duidelijke, stapsgewijze richtlijnen om u te helpen bij het migreren van workloads zonder serviceonderbrekingen. U kunt het volgende doen:
- Specifieke databases en verzamelingen selecteren voor migratie
- Alle stappen uitvoeren in de vertrouwde VS Code-interface
- Veilige connectiviteit tijdens het proces garanderen
- Profiteer van nul kosten voor het gebruik van de extensie
Met de Azure DocumentDB-migratieextensie kunt u uw migratietraject stroomlijnen met behoud van controle en beveiliging, allemaal zonder extra infrastructuur of complexiteit.
Webapp-hulpprogramma (online)
Stroomlijn uw migratie naar Azure DocumentDB met MongoMigrationwebBasedUtility , een hulpprogramma dat is ontworpen voor efficiëntie, betrouwbaarheid en gebruiksgemak. De opslagplaats bevat gedetailleerde stapsgewijze instructies voor het migreren van uw workloads. Dit hulpprogramma biedt een naadloze ervaring voor zowel online als offline gegevensmigraties. Het proces is gebruiksvriendelijk, waarbij alleen de bron- en doelgegevens moeten worden opgegeven. Hiermee kunt u moeiteloos uw MongoDB-verzamelingen migreren terwijl u de controle, beveiliging en schaalbaarheid behoudt, waardoor het volledige potentieel van Azure DocumentDB wordt ontgrendeld.
Belangrijke functies zijn onder andere:
- Ondersteunt privé-implementatie binnen uw virtuele netwerk voor verbeterde beveiliging
- Mogelijkheden voor automatisch hervatten als er sprake is van verbindingsverlies of tijdelijke fouten
- Gebruiksvriendelijke interface
- Toegang tot C#-broncode op GitHub
Het hulpprogramma ondersteunt flexibele implementatieopties en werkt onafhankelijk zonder afhankelijkheden van andere Azure-resources. Daarnaast biedt het schaalbare prestaties met aanpasbare Azure Web App-prijsplannen.
Native MongoDB tools (offline)
U kunt ook de systeemeigen MongoDB-hulpprogramma's zoals mongodump/mongorestore, mongoexport/mongoimport gebruiken om gegevenssets offline te migreren (zonder live wijzigingen te repliceren) naar Azure DocumentDB-aanbieding.
| Scenario | Systeemeigen MongoDB-hulpprogramma |
|---|---|
| Subset van databasegegevens verplaatsen (op basis van JSON/CSV) | mongoexport/mongoimport |
| Hele database verplaatsen (op basis van BSON) | mongodump/mongorestore |
-
mongoexport/mongoimport is het beste paar migratiehulpprogramma's voor het migreren van een subset van uw MongoDB-database.
- mongoexport exporteert uw bestaande gegevens naar een door mensen leesbaar JSON- of CSV-bestand. mongoexport gebruikt een argument waarin de subset van uw bestaande gegevens wordt opgegeven die u wilt exporteren.
- mongoimport opent een JSON- of CSV-bestand en voegt de inhoud in het doeldatabase-exemplaar in (Azure DocumentDB in dit geval.).
- JSON en CSV zijn geen compacte indeling; Er kunnen extra netwerkkosten in rekening worden gebracht wanneer mongoimport gegevens naar Azure DocumentDB verzendt.
-
mongodump/mongorestore is het beste paar migratiehulpprogramma's voor het migreren van uw hele MongoDB-database. De compacte BSON-indeling maakt efficiënter gebruik van netwerkresources wanneer de gegevens worden ingevoegd in Azure DocumentDB.
- mongodump exporteert uw bestaande gegevens als een BSON-bestand.
- mongorestore importeert uw BSON-bestandsdump in Azure DocumentDB.
Opmerking
De systeemeigen Hulpprogramma's van MongoDB kunnen gegevens alleen zo snel verplaatsen als de hosthardware toestaat.
Best practices voor migratie
Gebruik deze aanbevolen procedures om risico's te verminderen, de capaciteit nauwkeuriger te schatten, de migratiesnelheid te verbeteren en cutover veilig uit te voeren.
Fouten verminderen
Gebruik wachtwoorden met URL-codering in verbindingsreeksen. Speciale tekens zoals
@,#en:kunnen parseren breken wanneer ze niet zijn gecodeerd. URL-codering helpt verbindingsfouten te voorkomen tijdens de evaluatie en migratieuitvoeringen.Voer een pre-migratiebeoordeling uit vóór de migratie. Met evaluatie kunt u niet-ondersteunde functies, compatibiliteitsproblemen en potentiële obstakels vroegtijdig identificeren. Los bevindingen vóór de migratie op om het aantal nieuwe bewerkingen tijdens cutover te verminderen.
Oefen migratie en cutover vóór productie. Voer een of meer oefenmigraties uit in een niet-productieomgeving. Oefenen verbetert de nauwkeurigheid van de timing, de gereedheid van het team en het vertrouwen tijdens de productie-cutover.
De infrastructuur nauwkeurig dimensioneren
Voer een proefmigratie uit op een kleine maar representatieve gegevensset. Gebruik de proefversie om realistische doorvoer, latentie en resourceverbruik vast te leggen. Een representatieve steekproef geeft betere schattingen dan synthetische testgegevens.
Extrapoleer de resultaten van de proefversie om een schatting te maken van de compute-laag, de opslaglaag en het aantal shards. Gebruik waargenomen metrische proefgegevens om de uiteindelijke groottebehoeften te projecteren op basis van uw volledige gegevenssetvolume. Ga opnieuw naar de schatting als de distributie van uw productiegegevens verschilt van het voorbeeld.
Gebruik representatief documentenaantal, grootte en structuur met productiegelijke instellingen. Koppel de productie-indexering en shard-instellingen tijdens de proefperiode om te voorkomen dat de kosten of de duur van de migratie worden onderschat. Niet-productie-instellingen kunnen misleidende resultaten opleveren.
Maak een schatting van de doelopslag op basis van evaluatieresultaten in plaats van ervan uit te gaan dat de bron- en doelgrootte gelijk zijn. De voetafdruk van bron- en doelopslag kan verschillen vanwege verschillen in indexdefinities en gegevensindeling. Gebruik proefresultaten om opslag te plannen met een veilige buffer.
Migratiesnelheid optimaliseren
Migreer indien mogelijk binnen dezelfde regio. Het behouden van de bron en het doel in dezelfde regio vermindert de netwerklatentie en verbetert de prestaties van de gegevensoverdracht. Het kan ook kosten voor gegevensoverdracht tussen regio's verminderen.
Schaal omhoog tijdens de migratie, en schaal vervolgens omlaag na de overschakeling. U kunt bijvoorbeeld het doelcluster tijdelijk schalen naar M200 om de migratiedoorvoer te verhogen. Na de migratie kunt u omlaag schalen naar een geschikte laag in het ondersteunde bereik voor werkbelastingen met een stabiele status.
Kies schijven met hogere IOPS voor snellere schrijfbewerkingen. Hogere IOPS kunnen de prestaties van schrijfintensieve migratie aanzienlijk verbeteren. Omdat de schijfgrootte doorgaans niet later omlaag kan worden geschaald, selecteert u de schijfgrootte zorgvuldig tijdens de planning.
Plan cutover zorgvuldig omdat er geen terugdraaiactie is
Plan downtime tijdens een periode met weinig verkeer. De benodigde downtime hangt af van hoe lang de validatiestappen duren nadat de migratie is voltooid. Een venster met weinig verkeer vermindert de impact van het bedrijf.
Stop alle schrijfbewerkingen naar de bron vlak voor cutover. Deze stap voorkomt een laatste-minuut divergentie tussen de bron en het doel. Controleer of schrijfactiviteit volledig is onderbroken voordat u cutover voltooit.
Valideer gemigreerde gegevens voordat u schrijfbewerkingen verplaatst. Vergelijk het aantal documenten en voer vervolgens een vergelijking van willekeurige voorbeelden van documenten uit (bijvoorbeeld op hash gebaseerde controles). Gebruik indien mogelijk een script om validatie herhaalbaar te maken.
Werk verbindingsreeksen van toepassingen bij en test op het doel. Voer functionele en prestatievalidatie uit op basis van lees- en testverkeer voordat u schrijfbewerkingen voor productie inschakelt. Bevestig dat kritieke paden zich gedragen zoals verwacht.
Schrijfverkeer alleen verplaatsen nadat de validatie is geslaagd. Productieschrijfbewerkingen worden naar het doel geschreven pas nadat de testresultaten succesvol en consistent zijn. Gebruik een gefaseerde implementatie als uw toepassingsarchitectuur deze ondersteunt.
Coördineren tussen teams voor naadloze migratie
Krijg instemming van alle belanghebbenden: toepassingen, gegevens, infrastructuur, beveiliging, netwerk- en beheerteams. Verwachtingen en verantwoordelijkheden vroeg uitlijnen. Gedeeld eigendom vermindert misverstanden en vertragingen tijdens de uitvoering.
Gebruik plannings- en proefuitvoeringen om teamvertrouwen te bouwen en procedures te verfijnen. Er zijn geen snelkoppelingen naar een soepele migratie. Proefrunden brengen problemen aan het licht in een omgeving met een lager risico en bieden teams oefening.
Behandel de cutover als kritisch en tijdgevoelig. Cutover vereist nauwkeurige coördinatie en duidelijke communicatie. Beslissers aanwijzen en escalatiepaden instellen voordat deze begint.
Weet wie elke stap moet uitvoeren, wanneer dit moet gebeuren en hoe u downtime kunt minimaliseren. Wijs verantwoordelijkheden toe, stel tijdlijnen vast en stem af op succescriteria. Documenteer het cutover-runbook en deel het met alle deelnemers.
Coördineren met alle belanghebbenden wanneer cutover updates voor meerdere workloads tegelijk vereist. Plan de cutover tijdens een onderhoudsvenster dat voor alle teams werkt. Vermijd vrijdagavonden of perioden in de buurt van belangrijke zakelijke evenementen.
Haast niet of sla due diligence-stappen niet over. Er is geen terugdraaiactie. Grondige validatie en zorgvuldige uitvoering voorkomen kostbare fouten. Accepteer dat de overgang tijd kost; op snelheid gerichte snelle oplossingen vergroten risico's.
Verwante inhoud
- Gegevens migreren naar Azure DocumentDB met behulp van natieve MongoDB-hulpprogramma's.
- Gegevens migreren naar Azure DocumentDB met behulp van MongoMigrationwebBasedUtility.