Esercitazione: usare il Servizio Migrazione del database di Azure per eseguire la migrazione offline di MongoDB ad Azure Cosmos DB for MongoDB UR
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. Usare l'estensione Migrazione di Azure Cosmos DB for MongoDB in Azure Data Studio per eseguire la migrazione offline di carichi di lavoro di MongoDB per la migrazione ad Azure Cosmos DB for MongoDB vCore.
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 offline da MongoDB ad Azure Cosmos DB tramite il Servizio Migrazione del database
È possibile usare il Servizio Migrazione del database di Azure per eseguire una migrazione offline (una tantum) di database da un'istanza locale o cloud di MongoDB ad Azure Cosmos DB for MongoDB.
In questa esercitazione apprenderai a:
- Creare un'istanza del servizio Migrazione del database di Azure.
- Creare un progetto di migrazione tramite il Servizio Migrazione del database di Azure.
- Eseguire la migrazione.
- Monitorare la migrazione.
In questa esercitazione si esegue la migrazione di un set di dati in MongoDB ospitato in una macchina virtuale di Azure. Usando il Servizio Migrazione del database di Azure, si esegue la migrazione del set di dati ad Azure Cosmos DB for MongoDB. Se non è già stata configurata un'origine MongoDB, vedere Installare e configurare MongoDB in una VM Windows in Azure.
Prerequisiti
Per completare questa esercitazione, è necessario:
Completare i processi di pre-migrazione, ad esempio stimare la produttività e scegliere una chiave di partizione.
Creare un account per 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 di cui è stato effettuato il provisioning con modalità serverless.
Creare una rete virtuale di Microsoft Azure per il Servizio Migrazione del database di Azure usando Azure Resource Manager. Questo modello di distribuzione fornisce connettività da sito a sito ai server di origine locali usando Azure ExpressRoute o VPN. Per altre informazioni sulla creazione di una rete virtuale, vedere la documentazione sulla rete virtuale di Azure, in particolare gli articoli di avvio rapido con istruzioni dettagliate.
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 o endpoint di Azure Cosmos DB)
- Endpoint di archiviazione
- Endpoint bus di servizio
Questa configurazione è necessaria perché il Servizio Migrazione del database di Azure non ha connettività Internet.
Assicurarsi che le regole del gruppo di sicurezza di rete (NSG) per la rete virtuale non blocchino le porte di comunicazione seguenti: 53, 443, 445, 9354, e 10000-20000. Per altre informazioni, vedere 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 davanti al database di origine, potrebbe essere necessario aggiungere regole del firewall per consentire al Servizio Migrazione del database di Azure di accedere al database di origine per la migrazione.
Configurare la funzionalità Ripetizione tentativi lato server
È possibile trarre vantaggio dalle funzionalità di governance delle risorse se si esegue la migrazione da MongoDB ad Azure Cosmos DB. Con queste funzionalità, è possibile usare completamente le unità richiesta di cui è stato effettuato il provisioning (UR/sec) della produttività. Azure Cosmos DB potrebbe limitare una determinata richiesta del Servizio Migrazione del database durante la migrazione, se tale richiesta supera le UR/sec con provisioning del contenitore. Quindi la richiesta deve essere ritentata.
Il Servizio Migrazione del database è in grado di eseguire nuovi tentativi. È importante comprendere che il tempo di round trip coinvolto nell'hop di rete tra il Servizio Migrazione del database 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 un tempo di round trip molto inferiore, migliorando notevolmente i tempi di risposta delle richieste.
Per usare la ripetizione lato server, nel portale di Azure Cosmos DB selezionare Funzionalità>tentativi lato server.
Se la caratteristica non è abilitata, abilitarla.
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.
In 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 Creare una rete virtuale con il portale di Azure.
Selezionare un piano tariffario.
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 e aprirlo. Quindi, 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.
Selezionare + Nuovo progetto di migrazione.
In Nuovo progetto di migrazione specificare il nome del progetto e, nella casella di testo Tipo del server di origine, selezionare MongoDBr. Nella casella di testo Tipo del server di destinazione selezionare Azure Cosmos DB for NoSQL e quindi selezionare Migrazione dei dati offiline per Scegli il tipo di attività.
Selezionare 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 in 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. Non selezionare questa opzione se il contenitore contiene file JSON.
Se si seleziona questa opzione, assicurarsi che la stringa di connessione dell'account di archiviazione abbia il formato seguente:
https://blobnameurl/container?SASKEY
Questa stringa di connessione SAS del contenitore BLOB si trova nell’explorer dell’Archiviazione di Azure. La creazione della SAS per il contenitore interessato fornirà l'URL nel formato richiesto descritto sopra.
Inoltre, in base alle informazioni sul tipo di dump in Archiviazione di Azure, tenere presente quanto segue:
Per i dump BSON, i dati all'interno del contenitore BLOB devono essere nel formato bsondump. Inserire i file di dati in cartelle denominate in base ai database contenenti nel formato collection.bson. Denominare qualsiasi file di metadati usando il 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. Inserire qualsiasi file di metadati 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
Non è consigliabile usare un certificato autofirmato nel server MongoDB. Se è necessario usarne uno, connettersi al server usando la modalità stringa di connessione e assicurarsi che il stringa di connessione contenga virgolette ("").
&sslVerifyCertificate=false
Nelle situazioni in cui la risoluzione del nome DNS non è possibile, si può usare l'indirizzo IP.
Seleziona Salva.
Specificare i dettagli della destinazione
Nella schermata Dettagli destinazione migrazione, specificare i dettagli di connessione per l'account Azure Cosmos DB di destinazione. Questo account è l'account Azure Cosmos DB for MongoDB con provisioning preliminare a cui si esegue la migrazione dei dati di 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 Crea, ciò indica che il Servizio Migrazione del database di Azure non ha trovato il database di destinazione e provvederà quindi a crearlo.
A questo punto della migrazione è possibile eseguire il provisioning della velocità effettiva. In Azure Cosmos DB è possibile effettuare il provisioning della produttività a livello di database o di singola raccolta. La produttività viene misurata in unità richieste. 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.
Il 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 questo riquadro.
È possibile specificare il numero di UR da usare per le raccolte. Servizio Migrazione del database di Azure suggerisce le impostazioni predefinite intelligenti in base alle dimensioni della raccolta.
Nota
Eseguire la migrazione e la raccolta del database in parallelo. Se necessario, è possibile usare più istanze del Servizio Migrazione del database di Azure per velocizzare 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/shard.
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. Viene visualizzata la finestra dell'attività di migrazione con il campo stato dell'attività impostato su Non avviato.
Monitorare la migrazione
Nella schermata dell'attività di migrazione selezionare Aggiorna per aggiornare la visualizzazione finché nel campo stato delle migrazioni non viene indicato Completata.
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
Al termine della migrazione è possibile controllare l'account Azure Cosmos DB per verificare che sia stata eseguita la migrazione di tutte le raccolte.
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 altri passaggi di ottimizzazione post-migrazione. Questi potrebbero includere l'ottimizzazione del criterio di indicizzazione, l'aggiornamento del livello di coerenza predefinito o la configurazione della distribuzione globale per l'account Azure Cosmos DB. Per altre informazioni, vedere 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