Condividi tramite


Copiare processi in Azure Cosmos DB (anteprima)

È 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:

I processi di copia possono essere creati e gestiti usando i comandi dell'interfaccia della riga di comando di Azure.

Operazioni preliminari

Per iniziare a usare la copia del contenitore online per gli account API NoSQL di Azure Cosmos DB, eseguire la registrazione per il flag di funzionalità di anteprima della copia del contenitore online (NoSQL) nelle funzionalità di anteprima nel portale di Azure. Al termine della registrazione, l'anteprima è valida per tutti gli account API NoSQL nella sottoscrizione.

Prerequisiti

  1. Abilitare il backup continuo nell'account Azure Cosmos DB di origine.
  2. 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 doppie UR 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

  1. 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).
  2. Creare il processo di copia del contenitore.
  3. Monitorare lo stato di avanzamento del processo di copia.
  4. 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.
  5. 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?

  1. 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.
  2. Un singolo processo viene eseguito in tutte le istanze in qualsiasi momento.
  3. 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.
  4. Una volta completato il processo, la piattaforma de-alloca 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

  1. 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).
  2. Arrestare le operazioni nella raccolta di origine sospendo le istanze dell'applicazione o tutti i client che si connettono.
  3. Creare il processo di copia.
  4. Monitorare lo stato di avanzamento del processo di copia e attendere il completamento.
  5. Riprendere le operazioni puntando 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?

  1. La piattaforma alloca istanze di calcolo lato server per l'account Azure Cosmos DB di destinazione.
  2. Queste istanze vengono allocate quando vengono creati uno o più processi di copia raccolta all'interno dell'account.
  3. I processi di copia vengono eseguiti in queste istanze.
  4. Un singolo processo viene eseguito in tutte le istanze in qualsiasi momento.
  5. Le istanze vengono condivise da tutti i processi di copia in esecuzione all'interno dello stesso account.
  6. 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.
  7. La piattaforma potrebbe annullare l'allocazione delle istanze se sono 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

  1. 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).
  2. Arrestare le operazioni nella tabella di origine sospendo le istanze dell'applicazione o tutti i client che si connettono.
  3. Creare il processo di copia.
  4. Monitorare lo stato di avanzamento del processo di copia e attendere il completamento.
  5. Riprendere le operazioni puntando 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?

  1. La piattaforma alloca istanze di calcolo lato server per l'account Azure Cosmos DB di destinazione.
  2. Queste istanze vengono allocate quando vengono creati uno o più processi di copia all'interno dell'account.
  3. I processi di copia vengono eseguiti in queste istanze.
  4. Un singolo processo viene eseguito in tutte le istanze in qualsiasi momento.
  5. Le istanze vengono condivise da tutti i processi di copia in esecuzione all'interno dello stesso account.
  6. 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.
  7. La piattaforma potrebbe annullare l'allocazione delle istanze se sono inattive per più di 15 minuti.

Fattori che influiscono sulla frequenza di un processo di copia

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

I processi di copia del contenitore non funzionano con gli account in cui sono abilitate le funzionalità seguenti. Disabilitare queste funzionalità prima di eseguire i processi di copia del contenitore:

Configurazioni dell'account

L'impostazione Durata (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ù processi all'interno dello stesso account. I processi 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 ai processi di copia del contenitore 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
West US 2 Israele centrale Australia sud-orientale
Non supportato Sudafrica settentrionale Non supportato

Problemi noti e comuni

  • 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 per garantire il corretto funzionamento dei processi di copia del contenitore.

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

    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