Esercitazione: eseguire la migrazione di MongoDB ad Azure Cosmos DB for MongoDB UR online utilizzando il Servizio Migrazione del database di Azure
SI APPLICA A: MongoDB
Importante
Prima di eseguire i passaggi di migrazione, leggere questa guida completa. Il Servizio Migrazione del database di Azure attualmente non supporta le migrazioni a un account vCore di Azure Cosmos DB for MongoDB.
Questa guida alla migrazione di MongoDB fa parte della serie sulla migrazione di MongoDB. I passaggi critici per la migrazione di MongoDB sono pre-migrazione, migrazione e post-migrazione, come illustrato di seguito.
Informazioni generali sulla migrazione dei dati online da MongoDB ad Azure Cosmos DB tramite Servizio Migrazione del database
È possibile utilizzare il Servizio Migrazione del database di Azure per eseguire una migrazione online (con tempi di inattività minimi) dei database da un'istanza locale o cloud di MongoDB ad Azure Cosmos DB for MongoDB.
Questa esercitazione illustra la procedura relativa all'uso di Servizio Migrazione del database di Azure per eseguire la migrazione di dati MongoDB ad Azure Cosmos DB:
- Creare un'istanza del servizio Migrazione del database di Azure.
- Creare un progetto di migrazione.
- Specificare l'origine.
- Specificare la destinazione.
- Mappa ai database di destinazione.
- Eseguire la migrazione.
- Monitorare la migrazione.
- Verificare i dati in Azure Cosmos DB.
- Completare la migrazione una volta pronti.
In questa esercitazione si esegue la migrazione di un set di dati in MongoDB ospitato in una macchina virtuale di Azure ad Azure Cosmos DB for MongoDB con tempi di inattività minimi, usando il Servizio Migrazione del database di Azure. Se non è già stata configurata un'origine MongoDB, vedere Installare e configurare MongoDB in una VM Windows in Azure.
L'uso del Servizio Migrazione del database di Azure per eseguire una migrazione online richiede la creazione di un'istanza basata sul piano tariffario Premium.
Importante
Per un'esperienza di migrazione ottimale, Microsoft consiglia di creare un'istanza del Servizio Migrazione del database di Azure nella stessa area di Azure del database di destinazione. Lo spostamento di dati tra aree o regioni geografiche può rallentare il processo di migrazione.
Suggerimento
Nel Servizio Migrazione del database di Azure è possibile eseguire la migrazione dei database offline o mentre sono online. In una migrazione offline, i tempi di inattività dell’applicazione iniziano all’avvio della migrazione. Per limitare il tempo di inattività al tempo necessario per passare al nuovo ambiente dopo la migrazione, usare una migrazione online. È consigliabile testare una migrazione offline per determinare se il tempo di inattività è accettabile. Se il tempo di inattività previsto non è accettabile, eseguire una migrazione online.
Questo articolo descrive una migrazione online da MongoDB ad Azure Cosmos DB for MongoDB. Per una migrazione offline, vedere Esercitazione: eseguire la migrazione offline di MongoDB ad Azure Cosmos DB for MongoDB UR usando il Servizio Migrazione del database di Azure.
Prerequisiti
Per completare questa esercitazione, è necessario:
Completare la procedura di pre-migrazione, ad esempio stimare la velocità effettiva, scegliere una chiave di partizione e i criteri di indicizzazione.
Creare un account Azure Cosmos DB for MongoDB e assicurarsi che siano abilitati gli errori di limitazione della frequenza per le operazioni di Azure Cosmos DB for MongoDB.
Nota
Il Servizio Migrazione del database non è attualmente supportato se si esegue la migrazione a un account Azure Cosmos DB for MongoDB con provisioning in modalità serverless.
Creare una rete virtuale di Microsoft Azure per il Servizio Migrazione del database di Azure usando il modello di distribuzione Azure Resource Manager, che offre la connettività da sito a sito per i server di origine locali con ExpressRoute o VPN.
Durante la configurazione della rete virtuale, se si usa ExpressRoute con il peering di rete per Microsoft, aggiungere gli endpoint servizio seguenti alla subnet in cui verrà effettuato il provisioning del servizio:
- Endpoint del database di destinazione (ad esempio endpoint SQL, endpoint di Azure Cosmos DB e così via)
- Endpoint di archiviazione
- Endpoint bus di servizio
Questa configurazione è necessaria perché il Servizio Migrazione del database di Azure non ha connettività Internet.
Verificare che le regole del gruppo di sicurezza di rete (NSG) per la rete virtuale non blocchino le seguenti porte di comunicazione: 53, 443, 445, 9354, e 10000-20000. Per informazioni dettagliate sul filtro del traffico dei gruppi di sicurezza di rete della rete virtuale di Azure, vedere l'articolo Filtrare il traffico di rete con gruppi di sicurezza di rete.
Aprire Windows Firewall per consentire a Servizio Migrazione del database di Azure di accedere al server MongoDB di origine, per impostazione predefinita attraverso la porta TCP 27017.
Quando si usa un'appliance firewall all'ingresso dei database di origine, può essere necessario aggiungere regole del firewall per consentire al Servizio Migrazione del database di Azure di accedere ai database di origine per la migrazione.
Per una migrazione efficiente, configurare i tentativi sul lato server di Azure Cosmos DB
I clienti che eseguono la migrazione da MongoDB ad Azure Cosmos DB traggono vantaggio dalle funzionalità di governance delle risorse che garantiscono la possibilità di usare completamente le UR/sec di velocità effettiva. Azure Cosmos DB potrebbe limitare una determinata richiesta del Servizio migrazione dei dati durante la migrazione, se tale richiesta supera le UR/sec del contenitore di cui è stato effettuato il provisioning, quindi è necessario ripetere la richiesta. Il Servizio Migrazione dei dati è in grado di eseguire nuovi tentativi, ma il tempo di round trip coinvolto nell'hop di rete tra il Servizio Migrazione dei dati e Azure Cosmos DB influisce sul tempo di risposta complessivo di tale richiesta. Il miglioramento del tempo di risposta per le richieste limitate può ridurre il tempo totale necessario per la migrazione. La funzionalità di ripetizione dei tentativi lato server di Azure Cosmos DB consente al servizio di intercettare i codici di errore di limitazione e riprovare con tempi di round trip molto inferiori, migliorando notevolmente i tempi di risposta delle richieste.
È possibile trovare la funzionalità di ripetizione dei tentativi lato server nel pannello Funzionalità del portale di Azure Cosmos DB
Se è Disabilitata, consigliamo di abilitarla come illustrato di seguito
Registrare il provider di risorse
Prima di creare la prima istanza del servizio Migrazione del database, registrare il provider di risorse Microsoft.DataMigration.
Accedere al portale di Azure. Cerca e seleziona Sottoscrizioni.
Selezionare la sottoscrizione in cui si vuole creare l'istanza del Servizio Migrazione del database di Azure e quindi selezionare Provider di risorse.
Cercare migration e quindi selezionare Registra per Microsoft.DataMigration.
Creare un'istanza
Nel portale di Azure selezionare + Crea una risorsa, cercare Servizio Migrazione del database di Azure e quindi selezionare Servizio Migrazione del database di Azure dall'elenco a discesa.
Nella schermata Servizio Migrazione del database di Azure selezionare Crea.
Nella schermata Crea servizio Migrazione specificare un nome per il servizio, la sottoscrizione e un gruppo di risorse nuovo o esistente.
Selezionare la località in cui si vuole creare l'istanza del Servizio Migrazione del database di Azure.
Selezionare una rete virtuale esistente o crearne una nuova.
La rete virtuale consente al Servizio Migrazione del database di Azure di accedere all'istanza di MongoDB di origine e all'account Azure Cosmos DB di destinazione.
Per altre informazioni su come creare una rete virtuale nel portale di Azure, vedere l'articolo Creare una rete virtuale con il portale di Azure.
Selezionare uno SKU del piano tariffario Premium.
Nota
Le migrazioni online sono supportate solo quando viene usato il piano tariffario Premium. Per altre informazioni sui costi e i piani tariffari, vedere la pagina relativa ai prezzi.
Selezionare Crea per creare il servizio.
Creare un progetto di migrazione
Dopo aver creato il servizio, individuarlo nel portale di Azure, aprirlo e creare un nuovo progetto di migrazione.
Nel portale di Azure selezionare Tutti i servizi, eseguire la ricerca di Servizio Migrazione del database di Azure e quindi selezionare Servizio Migrazione del database di Azure.
Nella schermata Servizi Migrazione del database di Azure cercare il nome dell'istanza di Servizio Migrazione del database di Azure appena creata e quindi selezionare l'istanza.
In alternativa, è possibile individuare l'istanza di Servizio Migrazione del database di Azure dal riquadro di ricerca nel portale di Azure.
Selezionare + Nuovo progetto di migrazione.
Nella schermata Nuovo progetto di migrazione specificare un nome per il progetto e quindi selezionare MongoDB nella casella di testo Tipo del server di origine, Azure Cosmos DB for MongoDB nella casella di testo Tipo del server di destinazione e infine Migrazione dei dati online [anteprima] in Scegli il tipo di attività.
Selezionare Salva e quindi Crea ed esegui attività per creare il progetto ed eseguire l'attività di migrazione.
Specificare i dettagli dell'origine
Nella schermata Dettagli origine specificare i dettagli di connessione per il server MongoDB di origine.
Importante
Il Servizio Migrazione del database di Azure non supporta Azure Cosmos DB come origine.
Per la connessione a un'origine sono disponibili tre modalità:
Modalità standard, che accetta un nome di dominio completo o un indirizzo IP, il numero di porta e le credenziali di connessione.
Modalità stringa di connessione, che accetta una stringa di connessione di MongoDB come illustrato nell'articolo Connection String URI Format (Formato URI della stringa di connessione).
Dati di Archiviazione di Azure, che accetta l'URL di firma di accesso condiviso di un contenitore BLOB. Selezionare Il BLOB contiene i dump BSON se il contenitore BLOB include dump BSON generati dallo strumento bsondump di MongoDB e deselezionare questa opzione se il contenitore contiene file JSON.
Se si seleziona questa opzione, assicurarsi che la stringa di connessione dell'account di archiviazione abbia questo formato:
https://blobnameurl/container?SASKEY
Inoltre, in base alle informazioni sui dump in Archiviazione di Azure, tenere presenti i dettagli seguenti.
Per i dump BSON, i dati all'interno del contenitore di BLOB devono essere in formato bsondump, in modo che i file di dati vengano inseriti in cartelle con gli stessi nomi dei database che li contengono nel formato collection.bson. I nomi dei file di metadati (se presenti) dovranno essere in formato collection.metadata.json.
Per i dump JSON, i file nel contenitore di BLOB devono essere inseriti in cartelle con gli stessi nomi dei database che li contengono. All'interno di ogni cartella di database i file di dati devono essere inseriti in una sottocartella chiamata "data" e avere nomi nel formato collection.json. I file di metadati (se presenti) devono essere inseriti in una sottocartella chiamata "metadata" e avere nomi nello stesso formato collection.json. I file di metadati devono avere lo stesso formato di quelli prodotti con lo strumento bsondump di MongoDB.
Importante
È sconsigliato usare un certificato autofirmato nel server Mongo DB. Tuttavia, qualora se ne usi uno, connettersi al server usando modalità stringa di connessione e assicurarsi che la stringa di connessione comprenda ""
&sslVerifyCertificate=false
Nei casi in cui la risoluzione dei nomi DNS non è possibile, si può usare l'indirizzo IP.
Seleziona Salva.
L'indirizzo del server di origine deve essere l'indirizzo dell'elemento primario se l'origine è un set di repliche e il router se l'origine è un cluster MongoDB partizionato. Per un cluster MongoDB partizionato, il Servizio Migrazione del database di Azure deve potersi connettere alle singole partizioni nel cluster e questo potrebbe richiedere l'apertura del firewall in più computer.
Specificare i dettagli della destinazione
Nella schermata Dettagli destinazione della migrazione specificare i dettagli di connessione dell'account Azure Cosmos DB di destinazione, che è l'account di MongoDB di Azure Cosmos DB di cui è già stato effettuato il provisioning e verso cui si esegue la migrazione dei dati MongoDB.
Seleziona Salva.
Eseguire il mapping nei database di destinazione
Nella schermata Map to target databases (Esegui il mapping nel database di destinazione) eseguire il mapping del database di origine e del database di destinazione per la migrazione.
Se il database di destinazione contiene lo stesso nome del database di origine, il Servizio Migrazione del database di Azure seleziona il database di destinazione per impostazione predefinita.
Se accanto al nome del database viene visualizzata la stringa Create (Crea), ciò indica che Servizio Migrazione del database di Azure non ha trovato il database di destinazione e provvederà quindi a crearlo.
A questo punto della migrazione, se si vuole la velocità effettiva condivisa per il database, specificare un valore di UR di velocità effettiva. In Azure Cosmos DB è possibile effettuare il provisioning della produttività a livello di database o di singola raccolta. In Azure Cosmos DB la produttività viene misurata in Unità Richieste in Azure Cosmos DB (UR). Vedere altre informazioni sui prezzi di Azure Cosmos DB.
Seleziona Salva.
Nella schermata Impostazioni raccolta espandere l'elenco delle raccolte, quindi esaminare le raccolte di cui verrà eseguita la migrazione.
Servizio Migrazione del database di Azure seleziona automaticamente tutte le raccolte esistenti nell'istanza di MongoDB di origine che non esistono nell'account Azure Cosmos DB di destinazione. Se si vuole eseguire di nuovo la migrazione di raccolte che già includono dati, è necessario selezionarle esplicitamente in questa schermata.
È possibile specificare il numero di UR da usare per le raccolte. Nella maggior parte dei casi dovrebbe essere sufficiente un valore compreso tra 500 (almeno 1000 per le raccolte partizionate) e 4000. Servizio Migrazione del database di Azure suggerisce le impostazioni predefinite intelligenti in base alle dimensioni della raccolta.
Eseguire la migrazione del database e la raccolta in parallelo usando più istanze di Servizio Migrazione del database di Azure, se necessario, per rendere più rapida l'esecuzione.
È anche possibile specificare una chiave di partizione per sfruttare il partizionamento in Azure Cosmos DB per una scalabilità ottimale. Esaminare le procedure consigliate per la selezione di una chiave di partizione. Se non si ha una chiave di partizione, è sempre possibile usare _id come chiave di partizione per una migliore produttività.
Seleziona Salva.
Nella schermata Riepilogo migrazione specificare un nome per l'attività di migrazione nella casella di testo Nome attività.
Eseguire la migrazione
Selezionare Esegui migrazione.
Verrà visualizzata la finestra dell'attività di migrazione con lo stato dell'attività.
Monitorare la migrazione
Nella schermata dell'attività di migrazione selezionare Aggiorna per aggiornare la visualizzazione finché come Stato della migrazione non viene indicato Riproduzione.
Nota
È possibile selezionare l'attività per ottenere dettagli sulle metriche di migrazione a livello di database e raccolta.
Verificare i dati in Azure Cosmos DB
Apportare modifiche al database MongoDB di origine.
Connettersi ad Azure Cosmos DB per verificare se i dati vengano replicati dal server MongoDB di origine.
Completare la migrazione
Quando tutti i documenti dell'origine sono disponibili nella destinazione Azure Cosmos DB, selezionare Fine nel menu di scelta rapida dell'attività di migrazione per completare la migrazione.
Questa azione terminerà la riproduzione di tutte le modifiche in sospeso e completerà la migrazione.
Ottimizzazione della post-migrazione
Dopo aver eseguito la migrazione dei dati archiviati nel database MongoDB ad Azure Cosmos DB for MongoDB, è possibile connettersi ad Azure Cosmos DB e gestire i dati. È anche possibile eseguire altre procedure di ottimizzazione della post-migrazione, ad esempio: ottimizzare i criteri di indicizzazione, aggiornare il livello di coerenza predefinito o configurare la distribuzione globale per l'account Azure Cosmos DB. Per altre informazioni, vedere l'articolo Ottimizzazione della post-migrazione.
Risorse aggiuntive
Si sta tentando di pianificare la capacità per una migrazione ad Azure Cosmos DB?
- Se si conosce solo il numero di vCore e server nel cluster di database esistente, leggere le informazioni sulla stima delle unità richieste con vCore o vCPU
- Se si conosce la frequenza delle richieste tipiche per il carico di lavoro corrente del database, leggere le informazioni sulla stima delle unità richieste con lo strumento di pianificazione della capacità di Azure Cosmos DB