Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
È possibile eseguire la copia dei dati in Azure Cosmos DB usando i processi di copia del contenitore.
Potrebbe essere necessario copiare dati dall'account Azure Cosmos DB se si vuole ottenere uno di questi scenari:
- Copiare tutti gli elementi da un contenitore a un altro.
- Modificare la granularità in base alla quale viene effettuato il provisioning della velocità effettiva, da database a contenitore e viceversa.
- Modificare la chiave di partizione di un contenitore.
- Aggiornare le chiavi univoche di un contenitore.
- Rinominare un contenitore o un database.
- Modificare la modalità di capacità di un account da serverless a con provisioning o viceversa.
- Adottare nuove funzionalità supportate solo per i nuovi contenitori, ad esempio chiavi di partizione gerarchica.
I processi di copia possono essere creati e gestiti usando i comandi dell'interfaccia della riga di comando di Azure.
Iniziare
Per iniziare a usare la copia del contenitore online per gli account API NoSQL di Azure Cosmos DB, registrarsi per la funzionalità di anteprima Copia del contenitore online (NoSQL) in Anteprima funzionalità nel portale di Azure. Al termine della registrazione, l'anteprima è valida per tutti gli account API NoSQL nella sottoscrizione.
Prerequisiti
- Abilitare il backup continuo nell'account Azure Cosmos DB di origine.
- Eseguire la registrazione per tutte le versioni ed eliminare la funzionalità di anteprima della modalità feed di modifiche nella sottoscrizione dell'account di origine.
Importante
Tutte le operazioni di scrittura nel contenitore di origine verranno addebitate al 10% di UR aggiuntive per mantenere le versioni precedenti e correnti delle modifiche apportate agli elementi nel contenitore. Questo aumento dell'addebito delle UR è soggetto a modifiche in futuro.
Copiare i dati di un contenitore
- Creare il contenitore Azure Cosmos DB di destinazione usando le impostazioni desiderate (chiave di partizione, granularità della velocità effettiva, unità richiesta, chiave univoca e così via).
- Creare il processo di copia del contenitore.
- Monitorare lo stato di avanzamento del processo di copia.
- Dopo aver copiato tutti i documenti, arrestare gli aggiornamenti nel contenitore di origine e quindi chiamare l'API di completamento per contrassegnare il processo come completato.
- Riprendere le operazioni puntando in modo appropriato l'applicazione o il client al contenitore di origine o di destinazione come previsto.
Come funziona la copia del contenitore?
- La piattaforma alloca le istanze di calcolo lato server per l'account Azure Cosmos DB di destinazione per eseguire i processi di copia del contenitore.
- Un singolo processo viene eseguito in tutte le istanze in qualsiasi momento.
- I processi di copia online usano tutte le versioni ed eliminano la modalità feed di modifiche per copiare i dati e replicare le modifiche incrementali dal contenitore di origine al contenitore di destinazione.
- Al termine del lavoro, la piattaforma dealloca queste istanze dopo 15 minuti di inattività.
È possibile eseguire processi di copia della raccolta offline per copiare i dati nello stesso account Azure Cosmos DB per Mongo DB.
Copiare i dati di una raccolta
- Creare la raccolta di Azure Cosmos DB di destinazione usando le impostazioni da usare (chiave di partizione, granularità della velocità effettiva, unità richiesta, chiave univoca e così via).
- Arrestare le operazioni nella raccolta di origine sospendendo le istanze dell'applicazione o tutti i client che si connettono.
- Creare il processo di copia.
- Monitorare lo stato di avanzamento del processo di copia e attendere il completamento.
- Riprendere le operazioni indirizzando in modo appropriato l'applicazione o il client alla raccolta di origine o di destinazione come previsto.
Nota
È consigliabile interrompere l'esecuzione di operazioni sulla raccolta di origine prima di iniziare il processo di copia della raccolta offline. Le eliminazioni e gli aggiornamenti degli elementi eseguiti nella raccolta di origine dopo l'avvio del processo di copia potrebbero non essere acquisiti. Se si continuano a eseguire operazioni sulla raccolta di origine mentre il processo di copia è in corso, potrebbero essere presenti dati duplicati o mancanti nella raccolta di destinazione.
Come funziona la copia della raccolta?
- La piattaforma alloca istanze di calcolo lato server per l'account Azure Cosmos DB di destinazione.
- Queste istanze vengono allocate quando vengono creati uno o più processi di copia raccolta all'interno dell'account.
- I processi di copia vengono eseguiti su queste istanze.
- Un singolo processo viene eseguito in tutte le istanze in qualsiasi momento.
- Le istanze vengono condivise da tutti i processi di copia in esecuzione all'interno dello stesso account.
- I processi di copia offline usano flussi di modifica per copiare i dati e replicare le modifiche incrementali dalla raccolta di origine alla raccolta di destinazione.
- La piattaforma potrebbe deallocare le istanze se rimangono inattive per più di 15 minuti.
È possibile eseguire la copia della tabella offline per copiare i dati di una tabella in un'altra tabella all'interno dello stesso account Azure Cosmos DB per Apache Cassandra.
Copiare i dati di una tabella
- Creare la tabella di Azure Cosmos DB di destinazione usando le impostazioni da usare (chiave di partizione, granularità della velocità effettiva, unità richiesta e così via).
- Arrestare le operazioni nella tabella di origine sospendo le istanze dell'applicazione o tutti i client che si connettono.
- Creare il processo di copia.
- Monitorare lo stato di avanzamento del processo di copia e attendere il completamento.
- Riprendere le operazioni indirizzando in modo appropriato l'applicazione o il client alla tabella di origine o di destinazione come previsto.
Nota
È consigliabile interrompere l'esecuzione di qualsiasi operazione nella tabella di origine prima di iniziare il processo di copia della tabella offline. Le eliminazioni e gli aggiornamenti degli elementi eseguiti nella tabella di origine dopo l'avvio del processo di copia potrebbero non essere acquisiti. Se si continuano a eseguire operazioni sulla tabella di origine mentre il processo di copia è in corso, è possibile che nella tabella di destinazione siano presenti dati duplicati o mancanti.
Come funziona la copia della tabella?
- La piattaforma alloca istanze di calcolo lato server per l'account Azure Cosmos DB di destinazione.
- Queste istanze vengono allocate quando vengono creati uno o più processi di copia all'interno dell'account.
- I processi di copia vengono eseguiti su queste istanze.
- Un singolo processo viene eseguito in tutte le istanze in qualsiasi momento.
- Le istanze vengono condivise da tutti i processi di copia in esecuzione all'interno dello stesso account.
- I processi di copia offline utilizzano il feed di modifiche per copiare i dati e replicare le modifiche incrementali dalla tabella di origine alla tabella di destinazione.
- La piattaforma potrebbe deallocare le istanze se rimangono inattive per più di 15 minuti.
Fattori che influiscono sulla velocità di una copiatura
La velocità di avanzamento del processo di copia del contenitore è determinata da questi fattori:
Impostazione di velocità effettiva del contenitore o del database di origine.
Impostazione di velocità effettiva del contenitore o del database di destinazione.
Suggerimento
Impostare la velocità effettiva del contenitore di destinazione su un valore pari ad almeno il doppio della velocità effettiva del contenitore di origine.
Istanze di calcolo lato server allocate all'account Azure Cosmos DB per l'esecuzione del trasferimento dei dati.
Importante
Lo SKU predefinito offre due istanze lato server da 16 GB con 4 vCPU per account.
Limiti
Criteri di idoneità per l'anteprima
Le operazioni di copia dei contenitori non funzionano con gli account che hanno abilitate le seguenti funzionalità. Disabilitare queste funzionalità prima di eseguire i processi di copia del contenitore:
Configurazioni dell'account
L'impostazione relativa alla Durata del ciclo di vita (TTL) non viene modificata nel contenitore di destinazione. Di conseguenza, se un documento non è scaduto nel contenitore di origine, avvia nuovamente il conto alla rovescia nel contenitore di destinazione.
Domande frequenti
Esiste un contratto di servizio per i processi di copia del contenitore?
I processi di copia del contenitore sono attualmente supportati in base al principio del massimo impegno. Non vengono fornite garanzie relative al contratto di servizio per il tempo necessario per il completamento dei processi.
È possibile creare più processi di copia del contenitore all'interno di un account?
Sì, è possibile creare più lavori all'interno dello stesso account. I lavori verranno eseguiti consecutivamente. È possibile elencare tutti i processi creati all'interno di un account e monitorarne lo stato.
È possibile copiare un intero database all'interno dell'account Azure Cosmos DB?
È necessario creare un processo per ogni contenitore nel database.
Ho un account Azure Cosmos DB con più aree. In quale area verrà eseguito il processo di copia del contenitore?
Il processo di copia del contenitore viene eseguito nell'area di scrittura. In un account configurato con le scritture in più aree, il processo viene eseguito in una delle aree presenti nell'elenco delle aree di scrittura.
Cosa accade alle attività di copia dei container se cambia l'area di scrittura dell'account?
L'area di scrittura dell'account potrebbe cambiare nell'improbabile caso di un'interruzione di servizio nell'area o a causa del failover manuale. In questo scenario, i processi di copia del contenitore incompleti creati all'interno dell'account avranno esito negativo. Sarà necessario creare nuovamente questi processi non riusciti. I processi ricreati vengono quindi eseguiti nella nuova (corrente) area di scrittura.
Aree geografiche supportate
Attualmente, la copia del contenitore è supportata nelle aree seguenti:
Americhe | Europa e Africa | Asia Pacifico |
---|---|---|
Brasile meridionale | Francia centrale | Australia centrale |
Canada centrale | Francia meridionale | Australia centrale 2 |
Canada orientale | Germania settentrionale | Australia orientale |
Stati Uniti centrali | Germania centro-occidentale | India centrale |
Stati Uniti centrali (EUAP) | Europa settentrionale | Giappone orientale |
Stati Uniti orientali | Norvegia orientale | Corea centrale |
Stati Uniti orientali 2 | Norvegia occidentale | Asia sud-orientale |
Stati Uniti orientali 2 (EUAP) | Svizzera settentrionale | Emirati Arabi Uniti centrali |
Stati Uniti centro-settentrionali | Svizzera occidentale | India occidentale |
Stati Uniti centro-meridionali | Regno Unito meridionale | Asia orientale |
Stati Uniti centro-occidentali | Regno Unito occidentale | Malaysia meridionale |
Stati Uniti occidentali | Europa occidentale | Giappone occidentale |
Stati Uniti occidentali 2 | Israele centrale | Australia sud-orientale |
Non supportato | Sudafrica settentrionale | Non supportato |
Problemi noti e comuni
Quando si usa la funzionalità di copia del contenitore online, se il
id
campo viene modificato nel contenitore di origine, il contenitore di destinazione archivia due documenti separati, ognuno corrispondente ai valori distintiid
.Quando si modificano le chiavi di partizione durante la copia dei dati nel contenitore di destinazione, assicurarsi che le nuove combinazioni e
id
chiave di partizione siano univoche nel contenitore.Ad esempio, si consideri il seguente scenario:
Chiave di partizione originale:
/department
Documenti di origine:{ "id": "101", "employeeName": "John Doe", "department": "HR" }, { "id": "101", "employeeName": "John Doe", "department": "Finance" }
Nuova chiave di partizione:
/employeeName
Documenti risultanti nel contenitore di destinazione:{ "id": "101", "employeeName": "John Doe", "department": "HR" }, { "id": "101", "employeeName": "John Doe", "department": "Finance" }
In questo caso, entrambi i documenti condividono ora la stessa chiave di partizione (
/employeeName
) e la combinazione (id
"employeeName": "John Doe", "id": "101"
), che causa un conflitto. Questo conflitto genera un errore di inserimento. Per evitare questi problemi, assicurarsi che la nuova chiave di partizione eid
le nuove combinazioni siano univoche in tutti i documenti nel contenitore di destinazione.Errore : la chiave di partizione ha raggiunto le dimensioni massime di 20 GB
Quando si modificano le chiavi di partizione durante la copia dei dati nel contenitore di destinazione, assicurarsi che la nuova chiave di partizione rimanga entro il limite di dimensioni della chiave di partizione logica di 20 GB. Se questo limite viene superato, il processo avrà esito negativo con l'errore seguente:
"code": "403", "message": "Response status code does not indicate success: Forbidden (403); Substatus: 1014; ActivityId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx; Reason: (Message: {"Errors":["Partition key reached maximum size of 20 GB. Learn more: https://aka.ms/CosmosDB/sql/errors/full-pk"]"
Errore: La risorsa proprietaria non esiste.
Se la creazione del processo ha esito negativo e restituisce l'errore La risorsa proprietaria non esiste (codice errore 404), il contenitore di destinazione non è stato ancora creato o il nome del contenitore usato per creare il processo non corrisponde a un nome di contenitore effettivo.
Assicurarsi che il contenitore di destinazione venga creato prima di eseguire il processo e assicurarsi che il nome del contenitore nel processo corrisponda a un nome di contenitore effettivo.
"code": "404", "message": "Response status code does not indicate success: NotFound (404); Substatus: 1003; ActivityId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx; Reason: (Message: {\"Errors\":[\"Owner resource does not exist\"]
Errore: La richiesta non è autorizzata.
Se la richiesta ha esito negativo e restituisce l'errore Non autorizzato (codice errore 401), l'autorizzazione locale potrebbe essere disabilitata.
I processi di copia del contenitore usano le chiavi primarie per l'autenticazione. Se l'autorizzazione locale è disabilitata, la creazione del processo ha esito negativo. L'autorizzazione locale deve essere abilitata affinché le operazioni di copia dei container funzionino.
"code": "401", "message": " Response status code does not indicate success: Unauthorized (401); Substatus: 5202; ActivityId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx; Reason: Local Authorization is disabled. Use an AAD token to authorize all requests."
Errore: Errore durante il recupero delle risorse per il compito.
Questo errore può verificarsi a causa di problemi interni del server. Per risolvere questo problema, contattare il supporto tecnico Microsoft aprendo una Nuova richiesta di supporto nel portale di Azure. Per Tipo di problema: selezionare Migrazione dei dati. Per Sottotipo problema, selezionare Copia del contenitore all'interno dell'account.
"code": "500" "message": "Error while getting resources for job, StatusCode: 500, SubStatusCode: 0, OperationId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx, ActivityId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Passaggi successivi
- Informazioni su come creare, monitorare e gestire i processi di copia del contenitore nell'account Azure Cosmos DB usando i comandi dell'interfaccia della riga di comando.