Esercitazione: Eseguire la migrazione online di MongoDB ad Azure Cosmos DB per MongoDB ur usando Servizio Migrazione del database di Azure

SI APPLICA A: Mongodb

Importante

Leggere questa guida completa prima di eseguire i passaggi di migrazione. Servizio Migrazione del database di Azure attualmente non supporta le migrazioni a un account vCore di Azure Cosmos DB per 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.

Diagram of migration steps.

Panoramica della migrazione dei dati online da MongoDB ad Azure Cosmos DB tramite Servizio Migrazione del database

È possibile usare Servizio Migrazione del database di Azure per eseguire una migrazione online (tempo di inattività minimo) dei database da un'istanza locale o cloud di MongoDB ad Azure Cosmos DB per 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 quando si è 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 per MongoDB con tempi di inattività minimi tramite Servizio Migrazione del database di Azure. Se non è già configurata un'origine MongoDB, vedere Installare e configurare MongoDB in una macchina virtuale Windows in Azure.

Nota

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

In Servizio Migrazione del database di Azure è possibile eseguire la migrazione dei database offline o mentre sono online. In una migrazione offline , il tempo di inattività dell'applicazione inizia 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 per MongoDB. Per una migrazione offline, vedere Eseguire la migrazione offline di MongoDB ad Azure Cosmos DB per MongoDB tramite Servizio Migrazione del database.

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 per MongoDB e assicurarsi che SSR (tentativo lato server) sia abilitato.

    Nota

    Il servizio Migrazione del database non è attualmente supportato se si esegue la migrazione a un account Azure Cosmos DB per 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.

    Nota

    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.

  • Assicurarsi che le regole del gruppo di sicurezza di rete virtuale non blocchino le porte di comunicazione seguenti: 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, potrebbe essere necessario aggiungere regole del firewall per consentire al Servizio Migrazione del database di Azure di accedere ai database di origine per la migrazione.

Configurare i tentativi sul lato server di Azure Cosmos DB per una migrazione efficiente

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/s di cui è stato effettuato il provisioning. Azure Cosmos DB può limitare una determinata richiesta di Servizio Migrazione dei dati nel corso della migrazione se tale richiesta supera le UR/sec di cui è stato effettuato il provisioning del contenitore; quindi la richiesta deve essere ritentata. 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 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

Screenshot of MongoDB Server-Side Retry feature.

E se è Disabilitato, è consigliabile abilitarlo come illustrato di seguito

Screenshot of MongoDB Server-Side Retry enable.

Registrare il provider di risorse

Prima di creare la prima istanza del servizio Migrazione del database, registrare il provider di risorse Microsoft.DataMigration.

  1. Accedi al portale di Azure. Cerca e seleziona Sottoscrizioni.

    Show portal subscriptions

  2. Selezionare la sottoscrizione in cui si vuole creare l'istanza del Servizio Migrazione del database di Azure e quindi selezionare Provider di risorse.

    Show resource providers

  3. Cercare migration e quindi selezionare Registra per Microsoft.DataMigration.

    Register resource provider

Creare un'istanza

  1. 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.

    Azure Marketplace

  2. Nella schermata Servizio Migrazione del database di Azure selezionare Crea.

    Create Azure Database Migration Service instance

  3. Nella schermata Crea servizio Migrazione specificare un nome per il servizio, la sottoscrizione e un gruppo di risorse nuovo o esistente.

  4. Selezionare la località in cui si vuole creare l'istanza del Servizio Migrazione del database di Azure.

  5. 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.

  6. 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.

    Configure Azure Database Migration Service instance settings

  7. 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.

  1. 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.

    Locate all instances of Azure Database Migration Service

  2. 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.

    Use the Search pane in the Azure portal

  3. Selezionare + Nuovo progetto di migrazione.

  4. Nella schermata Nuovo progetto di migrazione specificare un nome per il progetto, nella casella di testo Tipo server di origine selezionare MongoDB, nella casella di testo Tipo di server di destinazione selezionare Azure Cosmos DB per MongoDB e quindi selezionare Migrazione dei dati online [anteprima].

    Create Database Migration Service project

  5. Selezionare Salva e quindi Crea ed esegui attività per creare il progetto ed eseguire l'attività di migrazione.

Specificare i dettagli dell'origine

  1. Nella schermata Dettagli origine specificare i dettagli di connessione per il server MongoDB di origine.

    Importante

    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 MongoDB. 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.

    Specify source details

  2. Seleziona Salva.

    Nota

    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, Servizio Migrazione del database di Azure deve potersi connettere alle singole partizioni nel cluster e questo può richiedere l'apertura del firewall in più computer.

Specificare i dettagli della destinazione

  1. Nella schermata Dettagli destinazione migrazione specificare i dettagli di connessione per l'account Azure Cosmos DB di destinazione, ovvero il pre-provisioning di Azure Cosmos DB per l'account MongoDB a cui si sta eseguendo la migrazione dei dati mongoDB.

    Specify target details

  2. Seleziona Salva.

Eseguire il mapping nei database di destinazione

  1. 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 velocità effettiva a livello di database o singolarmente per ogni raccolta. La velocità effettiva viene misurata in unità richiesta (UR). Vedere altre informazioni sui prezzi di Azure Cosmos DB.

    Map to target databases

  2. Seleziona Salva.

  3. 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.

    Nota

    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 velocità effettiva.

    Select collections tables

  4. Seleziona Salva.

  5. Nella schermata Riepilogo migrazione specificare un nome per l'attività di migrazione nella casella di testo Nome attività.

    Migration summary

Eseguire la migrazione

  • Selezionare Esegui migrazione.

    Verrà visualizzata la finestra dell'attività di migrazione con lo stato dell'attività.

    Activity status

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.

    Activity status replaying

Verificare i dati in Azure Cosmos DB

  1. Apportare modifiche al database MongoDB di origine.

  2. Connessione ad Azure Cosmos DB per verificare se i dati vengono replicati dal server MongoDB di origine.

    Screenshot that shows where you can verify that the data was replicated.

Completare la migrazione

  • Dopo che tutti i documenti dell'origine sono disponibili nella destinazione Azure Cosmos DB, selezionare Fine dal 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.

    Screenshot that shows the Finish menu option.

Ottimizzazione della post-migrazione

Dopo la migrazione dei dati archiviati nel database MongoDB ad Azure Cosmos DB per 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

Passaggi successivi