Backup online automatico e ripristino con Azure Cosmos DBAutomatic online backup and restore with Azure Cosmos DB

Azure Cosmos DB esegue automaticamente il backup di tutti i dati a intervalli regolari.Azure Cosmos DB automatically takes backups of all your data at regular intervals. I backup automatici vengono eseguiti senza impatto sulle prestazioni o sulla disponibilità delle operazioni del database.The automatic backups are taken without affecting the performance or availability of your database operations. Tutti i backup vengono archiviati separatamente in un altro servizio di archiviazione, oltre a essere replicati a livello globale per garantire la resilienza in caso di emergenze locali.All your backups are stored separately in another storage service, and those backups are globally replicated for resiliency against regional disasters. I backup automatici sono destinati agli scenari in cui si elimina involontariamente il contenitore Cosmos DB e in un secondo momento è necessario il ripristino dei dati o una soluzione di ripristino di emergenza.The automatic backups are intended for scenarios when you accidentally delete your Cosmos DB container and later require data recovery or a disaster recovery solution.

L'articolo offre un breve riepilogo iniziale della ridondanza e della disponibilità dei dati in Cosmos DB e quindi illustra i backup.This article starts with a quick recap of the data redundancy and availability in Cosmos DB, and then discusses backups.

Disponibilità elevata con Cosmos DB: riepilogoHigh availability with Cosmos DB - a recap

Cosmos DB è progettato per la distribuzione globale e consente di ridimensionare la velocità effettiva in più aree di Azure con failover basato su criteri e API multihosting trasparenti.Cosmos DB is designed to be globally distributed – it allows you to scale throughput across multiple Azure regions along with policy driven failover and transparent multi-homing APIs. Azure Cosmos DB offre contratti di servizio con disponibilità del 99,99% per tutti gli account in una singola area e tutti gli account in più aree con coerenza media e con disponibilità in lettura del 99,999% per tutti gli account di database in più aree.Auzre Cosmos DB offers 99.99% availability SLAs for all single region accounts and all multi-region accounts with relaxed consistency, and 99.999% read availability on all multi-region database accounts. Tutte le operazioni di scrittura in Azure Cosmos DB sono sottoposte a commit durevole su dischi locali da un quorum di repliche in un data center locale prima della conferma nel client.All the writes in Azure Cosmos DB are durably committed to local disks by a quorum of replicas within a local data center before acknowledging to the client. Si noti che la disponibilità elevata di Cosmos DB si basa sull'archiviazione locale e non dipende da tecnologie di archiviazione esterna.Note that the high availability of Cosmos DB relies on local storage and does not depend on any external storage technologies. Inoltre, se l'account di database è associato a più di un'area di Azure, le operazioni di scrittura vengono replicate anche nelle altre aree.Additionally, if your database account is associated with more than one Azure region, your writes are replicated across other regions as well. Per scalare la velocità effettiva e accedere ai dati a basse latenze, è possibile avere tutte le aree di lettura associate all'account di database che si vuole.To scale your throughput and access data at low latencies, you can have as many read regions associated with your database account as you like. In ogni area di lettura, i dati (replicati) vengono mantenuti in modo permanente in un set di repliche.In each read region, the (replicated) data is durably persisted across a replica set.

Come illustrato nel diagramma seguente, un singolo contenitore Cosmos DB viene sottoposto a partizionamento orizzontale.As illustrated in the following diagram, a single Cosmos DB container is horizontally partitioned. Una "partizione" è indicata da un cerchio nel diagramma sotto e ogni partizione viene resa altamente disponibile tramite un set di repliche.A “partition” is denoted by a circle in the following diagram, and each partition is made highly available via a replica set. Si tratta della distribuzione locale all'interno di un'unica area di Azure (indicata dall'asse X).This is the local distribution within a single Azure region (denoted by the X axis). In più, ogni partizione (con il set di repliche corrispondente) viene successivamente distribuita a livello globale in più aree associate all'account di database (ad esempio, le tre aree geografiche presenti nell'illustrazione, ovvero Stati Uniti orientali, Stati Uniti occidentali e India centrale).Further, each partition (with its corresponding replica set) is then globally distributed across multiple regions associated with your database account (for example, in this illustration the three regions – East US, West US and Central India). Il "Set di partizioni" è un'entità distribuita a livello globale che comprende più copie dei dati in ogni area (indicata dall'asse Y).The “partition set” is a globally distributed entity comprising of multiple copies of your data in each region (denoted by the Y axis). È possibile assegnare la priorità alle aree associate all'account di database e, in caso di emergenza, verrà effettuato il failover trasparente di Cosmos DB nell'area successiva.You can assign priority to the regions associated with your database account and Cosmos DB will transparently failover to the next region in case of disaster. È anche possibile simulare manualmente il failover per testare la disponibilità end-to-end dell'applicazione.You can also manually simulate failover to test the end-to-end availability of your application.

L'immagine seguente illustra l'elevato grado di ridondanza con Cosmos DB.The following image illustrates the high degree of redundancy with Cosmos DB.

Elevato grado di ridondanza con Cosmos DB

Elevato grado di ridondanza con Cosmos DB

Backup online, completi, automaticiFull, automatic, online backups

È possibile che il contenitore o il database venga eliminato.Oops, I deleted my container or database! Con Cosmos DB, non solo i dati ma anche i relativi backup vengono resi altamente ridondanti e resilienti in caso di emergenze locali.With Cosmos DB, not only your data, but the backups of your data are also made highly redundant and resilient to regional disasters. I backup automatici vengono attualmente eseguiti ogni quattro ore circa; ogni volta vengono archiviati i due backup più recenti.These automated backups are currently taken approximately every four hours and latest 2 backups are stored at all times. Se i dati vengono involontariamente eliminati o danneggiati, contattare il supporto tecnico di Azure entro otto ore.If the data is accidentally dropped or corrupted, please contact Azure support within eight hours.

I backup vengono eseguiti senza influenzare le prestazioni o la disponibilità delle operazioni del database.The backups are taken without affecting the performance or availability of your database operations. Cosmos DB esegue il backup in background senza utilizzare le UR di cui è stato effettuato il provisioning o influenzare le prestazioni e senza influire sulla disponibilità del database.Cosmos DB takes the backup in the background without consuming your provisioned RUs or affecting the performance and without affecting the availability of your database.

A differenza dei dati archiviati all'interno di Cosmos DB, i backup automatici vengono memorizzati nel servizio di archiviazione BLOB di Azure.Unlike your data that is stored inside Cosmos DB, the automatic backups are stored in Azure Blob Storage service. Per garantire il caricamento efficiente e a bassa latenza, lo snapshot del backup viene caricato in un'istanza dell'archivio BLOB di Azure nella stessa area dell'area di scrittura corrente dell'account di database Cosmos DB.To guarantee the low latency/efficient upload, the snapshot of your backup is uploaded to an instance of Azure Blob storage in the same region as the current write region of your Cosmos DB database account. Per garantire la resilienza in caso di emergenze locali, ogni snapshot dei dati di backup nell'archivio BLOB di Azure viene replicato nuovamente tramite l'archiviazione con ridondanza geografica (GRS) in un'altra area.For resiliency against regional disaster, each snapshot of your backup data in Azure Blob Storage is again replicated via geo-redundant storage (GRS) to another region. Il diagramma seguente illustra il backup dell'intero contenitore Cosmos DB (in questo esempio con tutte le tre partizioni primarie negli Stati Uniti occidentali) in un account di archiviazione BLOB di Azure remoto negli Stati Uniti occidentali e quindi la replica con archiviazione con ridondanza geografica negli Stati Uniti orientali.The following diagram shows that the entire Cosmos DB container (with all three primary partitions in West US, in this example) is backed up in a remote Azure Blob Storage account in West US and then GRS replicated to East US.

L'immagine di seguito illustra i backup completi periodici di tutte le entità di Cosmos DB nell'archiviazione con ridondanza geografica di Azure.The following image illustrates periodic full backups of all Cosmos DB entities in GRS Azure Storage.

Backup completi periodici di tutte le entità di Cosmos DB nell'archiviazione con ridondanza geografica di Azure

Periodo di conservazione dei backupBackup retention period

Come descritto sopra, Azure Cosmos DB crea snapshot dei dati ogni quattro ore a livello di partizione.As described above, Azure Cosmos DB takes snapshots of your data every four hours at the partition level. In qualsiasi momento risultano disponibili solo gli ultimi due snapshot.At any given time, only the last two snapshots are retained. Tuttavia, se il database/raccolta viene eliminato, gli snapshot esistenti per tutte le partizioni eliminate all'interno del database/raccolta specificato vengono conservati per 30 giorni.However, if the collection/database is deleted, we retain the existing snapshots for all of the deleted partitions within the given collection/database for 30 days.

Se si vuole mantenere gli snapshot, è possibile usare l'opzione di esportazione in JSON nello strumento di migrazione dei dati di Azure Cosmos DB per pianificare backup aggiuntivi.If you want to maintain your own snapshots, you can use the export to JSON option in the Azure Cosmos DB Data Migration tool to schedule additional backups.

Ripristino di un database da un backup onlineRestoring a database from an online backup

Se si elimina involontariamente il database o la raccolta, è possibile creare un ticket di supporto o contattare il supporto di Azure per ripristinare i dati dall'ultimo backup automatico.If you accidentally delete your database or collection, you can file a support ticket or call Azure support to restore the data from the last automatic backup. Se è necessario ripristinare il database a causa di un problema di danneggiamento dei dati, inclusa l'eliminazione di documenti contenuti in una raccolta, vedere Gestione del danneggiamento dei dati perché è necessario eseguire passaggi aggiuntivi per evitare che i dati danneggiati sovrascrivano i backup esistenti.If you need to restore your database because of data corruption issue (includes cases where documents within a collection are deleted), see Handling data corruption as you need to take additional steps to prevent the corrupted data from overwriting the existing backups. Per il ripristino di uno snapshot specifico del backup, Cosmos DB richiede che i dati siano stati disponibili per la durata del ciclo di backup per tale snapshot.For a specific snapshot of your backup to be restored, Cosmos DB requires that the data was available for the duration of the backup cycle for that snapshot.

Gestione del danneggiamento dei datiHandling data corruption

Azure Cosmos DB conserva gli ultimi due backup di ogni partizione nell'account del database.Azure Cosmos DB retains the last two backups of every partition in the database account. Questo modello è ideale quando un contenitore (raccolta di documenti, grafo, tabella) o un database viene eliminato involontariamente perché consente di ripristinare una delle versioni più recenti.This model works well when a container (collection of documents, graph, table) or a database is accidentally deleted since one of the last versions can be restored. Se tuttavia gli utenti causano un problema di danneggiamento dei dati, Azure Cosmos DB potrebbe non rilevare il danneggiamento dei dati, che potrebbero quindi aver sovrascritto i dati nei backup esistenti.However, in the case when users may introduce a data corruption issue, Azure Cosmos DB may be unaware of the data corruption, and it is possible that the corruption may have overwritten the existing backups. Non appena il danneggiamento viene rilevato, l'utente deve eliminare il contenitore danneggiato (raccolta/grafo/tabella) in modo che i backup siano protetti e non vengano sovrascritti con i dati danneggiati.As soon as corruption is detected, the user should delete the corrupted container (collection/graph/table) so that backups are protected from being overwritten with corrupted data.

Passaggi successiviNext steps

Per replicare il database in più data center, vedere l'articolo su come distribuire i dati a livello globale con Cosmos DB.To replicate your database in multiple data centers, see distribute your data globally with Cosmos DB.

Per contattare il supporto di Azure, creare un ticket dal portale di Azure.To file contact Azure Support, file a ticket from the Azure portal.