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.

Diagramma dei passaggi di migrazione.

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.

Screenshot che mostra dove trovare la funzionalità di ripetizione dei tentativi lato server.

Se la caratteristica non è abilitata, abilitarla.

Screenshot che mostra come abilitare la funzionalità di ripetizione dei tentativi lato server.

Registrare il provider di risorse

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

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

    Screenshot di Mostra sottoscrizioni del portale.

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

    Screenshot di Mostra provider di risorse.

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

    Screenshot di Registra il provider di risorse.

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.

    Screenshot che mostra Azure Marketplace.

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

    Screenshot che mostra come creare un'istanza del Servizio Migrazione del database di Azure.

  3. In 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 Creare una rete virtuale con il portale di Azure.

  6. Selezionare un piano tariffario.

    Per altre informazioni sui costi e i piani tariffari, vedere la pagina relativa ai prezzi.

    Screenshot che mostra come configurare le impostazioni dell'istanza del Servizio Migrazione del database di Azure.

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

  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.

    Screenshot che mostra come individuare tutte le istanze di Servizio Migrazione del database di Azure.

  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.

  3. Selezionare + Nuovo progetto di migrazione.

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

    Screenshot che mostra le opzioni per il progetto.

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

    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.

    Screenshot che mostra i dettagli dell’origine da specificare.

  2. Seleziona Salva.

Specificare i dettagli della destinazione

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

    Screenshot che mostra i dettagli della destinazione da specificare.

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

    Screenshot che mostra il mapping ai database di destinazione.

  2. Seleziona Salva.

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

    Screenshot che mostra la selezione delle tabelle di raccolta.

  4. Seleziona Salva.

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

    Screenshot che mostra il riepilogo della migrazione.

Eseguire la migrazione

Selezionare Esegui migrazione. Viene visualizzata la finestra dell'attività di migrazione con il campo stato dell'attività impostato su Non avviato.

Screenshot che mostra lo stato dell’attività.

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.

Screenshot che mostra lo stato dell’attività come completato.

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.

Screenshot che mostra dove controllare l'account Azure Cosmos DB per verificare che la migrazione di tutte le raccolte sia stata completata correttamente.

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?