Backup online automatico e ripristino con Azure Cosmos DB

Azure Cosmos DB esegue automaticamente il backup di tutti i dati a intervalli regolari. I backup automatici vengono eseguiti senza impatto sulle prestazioni o sulla disponibilità delle operazioni del database. 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. I backup automatici sono destinati agli scenari in cui si elimina accidentalmente il contenitore Cosmos DB e in un secondo momento è necessario il ripristino dei dati o una soluzione di ripristino di emergenza.

L'articolo offre un breve riepilogo iniziale della ridondanza e della disponibilità dei dati in Cosmos DB e quindi illustra i backup.

Disponibilità elevata con Cosmos DB: riepilogo

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. Dato che si tratta di un sistema di database che offre contratti di servizio con disponibilità del 99,99%, tutte le operazioni di scrittura in 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. Si noti che la disponibilità elevata di Cosmos DB si basa sull'archiviazione locale e non dipende da tecnologie di archiviazione esterna. Inoltre, se l'account di database è associato a più di un'area di Azure, le operazioni di scrittura vengono replicate anche nelle altre aree. 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. In ogni area di lettura, i dati (replicati) vengono mantenuti in modo permanente in un set di repliche.

Come illustrato nel diagramma seguente, un singolo contenitore Cosmos DB viene sottoposto a partizionamento orizzontale. Una "partizione" è indicata da un cerchio nel diagramma sotto e ogni partizione viene resa altamente disponibile tramite un set di repliche. Si tratta della distribuzione locale all'interno di un'unica area di Azure (indicata dall'asse X). 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). Il "Set di partizioni" è un'entità distribuita a livello globale che comprende più copie dei dati in ogni area (indicata dall'asse Y). È 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. È anche possibile simulare manualmente il failover per testare la disponibilità end-to-end dell'applicazione.

L'immagine seguente illustra l'elevato grado di ridondanza con Cosmos DB.

Elevato grado di ridondanza con Cosmos DB

Elevato grado di ridondanza con Cosmos DB

Backup online, completi, automatici

È possibile che il contenitore o il database venga eliminato. Con Cosmos DB, non solo i dati ma anche i relativi backup vengono resi altamente ridondanti e resilienti in caso di emergenze locali. I backup automatici vengono attualmente eseguiti ogni quattro ore circa; ogni volta vengono archiviati i due backup più recenti. Se i dati vengono involontariamente eliminati o danneggiati, contattare il supporto tecnico di Azure entro 8 ore.

I backup vengono eseguiti senza influenzare le prestazioni o la disponibilità delle operazioni del database. 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.

A differenza dei dati archiviati all'interno di Cosmos DB, i backup automatici vengono memorizzati nel servizio di archiviazione BLOB di Azure. 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. 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. 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.

L'immagine di seguito illustra i backup completi periodici di tutte le entità di Cosmos DB nell'archiviazione con ridondanza geografica di Azure.

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

Periodo di conservazione di uno snapshot specifico

Come descritto in precedenza, vengono eseguiti snapshot dei dati ogni 4 ore e gli ultimi due snapshot vengono mantenuti per 30 giorni. In base alle normative di conformità, gli snapshot vengono eliminati dopo 90 giorni.

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.

Ripristinare il database dal backup online

Nel caso di un'involontaria eliminazione dei dati, è possibile creare un ticket di supporto o contattare il supporto Azure per ripristinare i dati dall'ultimo backup automatico. Per il ripristino di uno snapshot specifico del backup, Cosmos DB richiede che i dati siano stati disponibili almeno per la durata del ciclo di backup per tale snapshot.

Passaggi successivi

Per replicare il database in più data center, vedere l'articolo su come distribuire i dati a livello globale con Cosmos DB.

Per contattare il supporto di Azure, creare un ticket dal portale di Azure.