Rilocare un account Azure Cosmos DB NoSQL in un'altra area
Esistono diversi motivi per cui è possibile spostare le risorse di Azure esistenti da un'area a un'altra. È possibile:
- Sfruttare i vantaggi di una nuova area di Azure.
- Distribuire funzionalità o servizi disponibili solo in aree specifiche.
- Soddisfare i requisiti di governance e criteri interni.
- Allinearsi alle fusioni e alle acquisizioni aziendali
- Soddisfare i requisiti di pianificazione della capacità.
Questo articolo illustra come:
- Rilocare un'area in cui i dati vengono replicati in Azure Cosmos DB.
- Eseguire la migrazione dei metadati e dei dati dell'account (Azure Resource Manager) da un'area a un'altra.
Prerequisiti
È necessario creare una registrazione dell'app con autorizzazione delegata per l'istanza del gruppo di risorse di origine e di destinazione e l'autorizzazione API "User.ReadBasic.All".
L'API Cosmos DB selezionata deve rimanere invariata dall'origine alla destinazione. Questo documento usa l'API SQL DB.
I nomi degli account devono essere limitati a 44 caratteri, tutti minuscoli.
Quando si aggiungono o si rimuovono posizioni in un account Azure Cosmos, non è possibile modificare contemporaneamente altre proprietà.
Identificare tutte le risorse dipendenti di Cosmos DB.
Tempo di inattività
Considerazioni sugli endpoint di servizio
Gli endpoint servizio di rete virtuale per Azure Cosmos DB consentono di limitare l'accesso a una rete virtuale specificata. Gli endpoint possono inoltre limitare l'accesso a un elenco di intervalli di indirizzi IPv4 (protocollo IP versione 4). L'accesso viene negato a tutti gli utenti che si connettono a Hub eventi dall'esterno di tali origini. Se gli endpoint di servizio sono stati configurati nell'area di origine per la risorsa di Hub eventi, è necessario eseguire la stessa operazione nell'area di destinazione.
Per ricreare correttamente l'istanza di Azure Cosmos DB nell'area di destinazione, è necessario creare prima la rete virtuale e la subnet. Nel caso in cui lo spostamento di queste due risorse venga eseguito con lo strumento Spostamento risorse di Azure, gli endpoint di servizio non verranno configurati automaticamente. Di conseguenza, è necessario configurarli manualmente. L'operazione può essere eseguita tramite il portale di Azure, l'interfaccia della riga di comando di Azure o Azure PowerShell.
Ridistribuire senza dati
Nei casi in cui l'istanza di Cosmos DB deve essere rilocata da sola, senza i dati di configurazione e dei clienti, è possibile creare l'istanza stessa usando Microsoft.DocumentDB databaseAccounts
Ridistribuire con i dati
Azure Cosmos DB supporta la replica dei dati in modo nativo, quindi lo spostamento di dati da un'area a un'altra è semplice. È possibile eseguire l'operazione usando il portale di Azure, Azure PowerShell o l'interfaccia della riga di comando di Azure. Prevede i passaggi seguenti:
Aggiungere una nuova area all'account.
Per aggiungere una nuova area a un account Azure Cosmos DB, vedere Aggiungere/rimuovere aree da un account Azure Cosmos DB.
Eseguire un failover manuale nella nuova area.
Quando l'area da rimuovere è attualmente l'area di scrittura per l'account, è necessario avviare un failover nella nuova area aggiunta nel passaggio precedente. Si tratta di un'operazione senza alcun tempo di inattività. Se si sta spostando un'area di lettura in un account con più aree, è possibile ignorare questo passaggio.
Per avviare il failover, vedere Eseguire un failover manuale in un account Azure Cosmos DB.
Rimuovere l'area originale.
Per rimuovere un'area da un account Azure Cosmos DB, vedere Aggiungere/rimuovere aree dall'account Azure Cosmos DB.
Nota
Se si esegue un'operazione di failover manuale o si aggiunge/rimuove una nuova area mentre è in corso un'operazione asincrona di ridimensionare della velocità effettiva, quest'ultima verrà sospesa. Verrà ripreso automaticamente al termine dell'operazione di failover o aggiunta/rimozione dell'area.
Ridistribuire i metadati dell'account Azure Cosmos DB
Azure Cosmos DB non supporta in modo nativo la migrazione dei metadati dell'account da un'area a un'altra. Per eseguire la migrazione dei metadati dell'account e dei dati dei clienti da un'area a un'altra, è necessario creare un nuovo account nell'area desiderata e quindi copiare i dati manualmente.
Importante
Non è necessario eseguire la migrazione dei metadati dell'account se i dati vengono archiviati o spostati in un'area diversa. L'area in cui risiedono i metadati dell'account non ha alcun impatto sulle prestazioni, sulla sicurezza o su altri aspetti operativi dell'account Azure Cosmos DB.
Una migrazione con tempo di inattività quasi nullo per l'API per NoSQL richiede l'uso del feed di modifiche o di uno strumento che lo usa.
La procedura seguente illustra come eseguire la migrazione di un account Azure Cosmos DB per l'API per NoSQL e dei relativi dati da un'area a un'altra:
Creare un nuovo account Azure Cosmos DB nell'area desiderata.
Per creare un nuovo account tramite il portale di Azure, PowerShell o l'interfaccia della riga di comando di Azure, vedere Creare un account Azure Cosmos DB.
Creare un nuovo database e un nuovo contenitore.
Per creare un nuovo database e un nuovo contenitore, vedere Creare un contenitore di Azure Cosmos DB.
Eseguire la migrazione dei dati usando l'esempio di migrazione in tempo reale del connettore Spark per Azure Cosmos DB.
Per eseguire la migrazione dei dati con un tempo di inattività quasi nullo, vedere Eseguire la migrazione in tempo reale dati dei contenitori dell'API SQL di Azure Cosmos DB con il connettore Spark.
Aggiornare la stringa di connessione dell'applicazione.
Con l'esempio mi migrazione dei dati in tempo reale ancora in esecuzione, aggiornare le informazioni di connessione nella nuova distribuzione dell'applicazione. È possibile recuperare gli endpoint e le chiavi per l'applicazione dal portale di Azure.
Reindirizzare le richieste alla nuova applicazione.
Una volta connessa la nuova applicazione ad Azure Cosmos DB, è possibile reindirizzare le richieste dei client alla nuova distribuzione.
Eliminare le risorse non più necessarie.
Con le richieste ora completamente reindirizzate alla nuova istanza, è possibile eliminare l'account Azure Cosmos DB precedente e arrestare l'esempio di migrazione dei dati in tempo reale.
Passaggi successivi
Per altre informazioni ed esempi su come gestire l'account Azure Cosmos DB, nonché i database e i contenitori, leggere gli articoli seguenti: