Backup continuo con ripristino temporizzato in Azure Cosmos DB

SI APPLICA A: NoSQL MongoDB Gremlin Tabella

La funzionalità di ripristino temporizzato di Azure Cosmos DB risulta utile in numerosi scenari, tra cui:

  • Ripristino da un'operazione accidentale di scrittura o di eliminazione in un contenitore.
  • Ripristino di un account, un database o un contenitore eliminato.
  • Ripristino in qualsiasi area, in cui erano disponibili backup, in corrispondenza del punto di ripristino.

Azure Cosmos DB esegue il backup dei dati in background senza utilizzare velocità effettiva aggiuntiva (UR) di cui è stato effettuato il provisioning o senza influire sulle prestazioni e la disponibilità del database. I backup continui vengono eseguiti in ogni area in cui è presente l'account. Ad esempio, un account può avere un'area di scrittura negli Stati Uniti occidentali e aree di lettura negli Stati Uniti orientali e negli Stati Uniti orientali 2. È quindi possibile eseguire il backup di queste aree di replica in un account di archiviazione di Azure remoto in ogni rispettiva area. Per impostazione predefinita, il backup di ogni area viene archiviato negli account di archiviazione con ridondanza locale. Se nell'area sono abilitate le zone di disponibilità, il backup verrà archiviato negli account di archiviazione con ridondanza della zona.

Diagramma che illustra come viene eseguito il backup di un contenitore in più aree.

L'intervallo di tempo disponibile per il ripristino (noto anche come periodo di conservazione) rappresenta il valore inferiore tra le due opzioni seguenti: 30 giorni e sette giorni.

L'opzione selezionata dipende dal livello scelto del backup continuo. La temporizzazione del ripristino può essere qualsiasi timestamp compreso nel periodo di conservazione purché non superi il punto in cui è stata creata la risorsa. Nella modalità di coerenza assoluta i backup eseguiti nell'area di scrittura sono più aggiornati rispetto alle aree di lettura. Le aree di lettura potrebbero presentare un ritardo dovuto alla rete o ad altri problemi temporanei. Durante il ripristino, è possibile ottenere il timestamp ripristinabile più recente per una risorsa specificata in una determinata area. Facendo riferimento al timestamp ripristinabile più recente, è possibile confermare che i backup delle risorse sono fino al timestamp specificato e possono essere ripristinati in tale area.

Attualmente, è possibile ripristinare in un altro account i contenuti di un account Azure Cosmos DB (API per NoSQL o MongoDB, API per Tabella, API per Gremlin) relativi a un momento specifico. È possibile eseguire questa operazione di ripristino tramite il portale di Azure, l'interfaccia della riga di comando di Azure, Azure PowerShell o i modelli di Azure Resource Manager.

Ridondanza dell'archivio di backup

Per impostazione predefinita, Azure Cosmos DB archivia i dati di backup in modalità continua in BLOB di archiviazione con ridondanza locale. Per le aree per cui è configurata la ridondanza della zona, il backup viene archiviato in BLOB di archiviazione con ridondanza della zona. Con la modalità di backup continuo non è possibile aggiornare la ridondanza dell'archivio di backup.

Diverse modalità di ripristino

Con la modalità di backup continuo sono supportati due modi per ripristinare contenitori e database eliminati. Possono essere ripristinati in un nuovo account, come documentato in questo articolo, oppure in un account esistente, come descritto qui. La scelta tra queste due modalità dipende dagli scenari. Nella maggior parte dei casi, è preferibile ripristinare i contenitori eliminati e i database in un account esistente. In questo modo si evita il costo del trasferimento dei dati necessario nel caso in cui vengano ripristinati in un nuovo account. Per uno scenario in cui è stata eseguita la modifica accidentale dei dati, il ripristino in un nuovo account potrebbe essere l'opzione preferita.

Che cosa viene ripristinato in un nuovo account?

In uno stato stabile tutte le mutazioni eseguite nell'account di origine (inclusi database, contenitori ed elementi) vengono sottoposte a backup in modo asincrono entro 100 secondi. Se il supporto di backup di Archiviazione di Azure è inattivo o non disponibile, le mutazioni vengono salvate in modo permanente in locale fino a quando il supporto non diventa disponibile. Le mutazioni vengono quindi eliminate per evitare la perdita di fedeltà delle operazioni che possono essere ripristinate.

È possibile scegliere di ripristinare qualsiasi combinazione di contenitori di velocità effettiva con provisioning, database di velocità effettiva condivisi o l'intero account. Questa azione ripristina tutti i dati e le relative proprietà di indice in un nuovo account. Il processo di ripristino garantisce che tutti i dati ripristinati in un account, un database o un contenitore siano coerenti fino all'ora di ripristino specificata. La durata del ripristino dipende dalla quantità di dati da ripristinare. L'impostazione di coerenza dell'account del database appena ripristinato sarà uguale alle impostazioni di coerenza dell'account del database di origine.

Nota

Con la modalità di backup continuo i backup vengono eseguiti in tutte le aree in cui è disponibile l'account Azure Cosmos DB. I backup eseguiti per ogni account di area presentano ridondanza locale per impostazione predefinita e ridondanza della zona se nell'account è abilitata la funzionalità della zona di disponibilità per tale area. L'azione di ripristino consente di eseguire il ripristino dei dati sempre in un nuovo account.

Che cosa non viene ripristinato?

Dopo il ripristino temporizzato non vengono ripristinate le configurazioni seguenti:

  • Non è possibile ripristinare un subset di contenitori in un database con velocità effettiva condivisa. L’intero database può essere completamente ripristinato.
  • Firewall, Rete virtuale rete virtuale, controllo degli accessi in base al ruolo del piano dati o impostazioni dell'endpoint privato.
  • Tutte le aree dell'account di origine.
  • Stored procedure, trigger e funzioni definite dall'utente.
  • Assegnazioni del controllo degli accessi in base al ruolo.

È possibile aggiungere queste configurazioni all'account ripristinato al termine del ripristino.

Timestamp ripristinabile per account attivi

Per ripristinare gli account attivi Azure Cosmos DB che non sono eliminati, è consigliabile identificare sempre il timestamp ripristinabile più recente per il contenitore. È quindi possibile usare questo timestamp per ripristinare l'account alla versione più recente.

Scenari di ripristino

La funzionalità di ripristino temporizzato supporta gli scenari seguenti. Gli scenari da [1] a [3] illustrano come attivare un ripristino se il timestamp di ripristino è già noto. Tuttavia, potrebbero verificarsi scenari in cui non si conosce l'ora esatta dell'eliminazione o del danneggiamento accidentale. Gli scenari [4] e [5] illustrano come individuare il timestamp di ripristino usando le nuove API del feed di eventi nel database o nei contenitori ripristinabili.

Eventi del ciclo di vita con timestamp per un account ripristinabile.

  1. Ripristinare l'account eliminato. Tutti gli account eliminati che è possibile ripristinare sono visibili nel riquadro Ripristino. Ad esempio, considerare il caso dell'account A che viene eliminato in corrispondenza del timestamp T3. In questo caso sono sufficienti il timestamp precedente a quello T3, la località, il nome dell'account di destinazione, il gruppo di risorse per eseguire il ripristino dal portale di Azure, da PowerShell o dall'interfaccia della riga di comando.

    Eventi del ciclo di vita con timestamp per un database e un contenitore ripristinabili.

  2. Ripristinare dati di un account in una determinata area. È ad esempio il caso dell'account A, presente in due aree Stati Uniti orientali e Stati Uniti occidentali in corrispondenza del timestamp T3. Se è necessaria una copia dell'account A nell'area Stati Uniti occidentali, è possibile eseguire un ripristino temporizzato dal portale di Azure, da PowerShell o dall'interfaccia della riga di comando impostando Stati Uniti occidentali come località di destinazione.

  3. Eseguire il ripristino in caso di un'operazione di scrittura o eliminazione accidentale all'interno di un contenitore con un timestamp di ripristino noto. Ad esempio quando è noto che i contenuti del contenitore 1 nel database 1 sono stati modificati accidentalmente in corrispondenza del timestamp T3. È possibile eseguire un ripristino temporizzato dal portale di Azure, da PowerShell o dall'interfaccia della riga di comando in un altro account in corrispondenza del timestamp T3 per ripristinare lo stato desiderato del contenitore.

  4. Ripristinare un account a un momento precedente all'eliminazione accidentale del database. Nel portale di Azureè possibile usare il riquadro del feed di eventi per determinare quando un database è stato eliminato e trovare l'ora di ripristino. Analogamente, con l'interfaccia della riga di comando di Azure e PowerShell è possibile individuare l'evento di eliminazione del database enumerando il feed di eventi del database e quindi attivare il comando di ripristino con i parametri richiesti.

  5. Ripristinare un account a un momento precedente all'eliminazione o alla modifica accidentale delle proprietà del contenitore. Nel portale di Azureè possibile usare il riquadro del feed di eventi per determinare quando è stato creato, modificato o eliminato un contenitore e trovare l'ora di ripristino. Analogamente, con l'interfaccia della riga di comando di Azure e PowerShell, è possibile individuare tutti gli eventi del contenitore enumerando il feed di eventi del contenitore e quindi attivare il comando di ripristino con i parametri richiesti.

Autorizzazioni

Azure Cosmos DB consente di isolare e limitare le autorizzazioni di ripristino per un account di backup continuo a un ruolo o a un'entità di sicurezza specifica. Per altre informazioni, vedere l'articolo Autorizzazioni.

Prezzi

L'account Azure Cosmos DB con backup continuo di 30 giorni prevede un addebito mensile aggiuntivo per archiviare il backup. Sia il livello per 30 giorni che quello per sette giorni di backup continuo comportano addebiti per il ripristino dei dati. Il costo di ripristino viene aggiunto ogni volta che si avvia l'operazione di ripristino. Se si configura un account con backup continuo ma non si ripristinano i dati, nella fattura viene incluso solo il costo dell'archivio di backup.

L'esempio seguente si basa sul prezzo di un account Azure Cosmos DB distribuito negli Stati Uniti occidentali. I prezzi e i calcoli possono variare a seconda dell'area in uso. Per informazioni più aggiornate sui prezzi, vedere la pagina dei prezzi di Azure Cosmos DB.

  • Tutti gli account abilitati con criteri di backup continuo per 30 giorni sono soggetti a un addebito mensile per l'archivio di backup che viene calcolato nel modo seguente:

    0,20 USD/GB * Dimensioni dei dati in GB nell'account * Numero di aree

  • Ogni chiamata dell'API di ripristino comporta un addebito una tantum. L'addebito è una funzione della quantità di dati ripristinati:

    0,15 USD/GB * Dimensione dei dati in GB.

Se ad esempio si ha un TB di dati in due aree:

  • Il costo dell'archivio di backup viene calcolato come (1000 * 0,20 * 2) = 400 USD al mese

  • Il costo del ripristino viene calcolato come (1000 * 0,15) = 150 USD al mese

Suggerimento

Per altre informazioni sulla misurazione dell'utilizzo corrente dei dati dell'account Azure Cosmos DB, vedere Esplorare le informazioni dettagliate su Azure Cosmos DB in Monitoraggio di Azure. Il livello continuo per sette giorni non comporta costi per il backup dei dati.

Confronto tra livello continuo per 30 giorni e livello continuo per sette giorni

  • Il periodo di conservazione per un livello è di 30 giorni, mentre è di sette giorni per un altro livello.
  • Il livello di conservazione di 30 giorni viene addebitato per l'archiviazione di backup. Il livello di conservazione di 7 giorni non viene addebitato.
  • Il ripristino viene sempre addebitato in entrambi i livelli.

Chiavi gestite dal cliente

Vedere In che modo le chiavi gestite dal cliente influiscono sui backup continui? per informazioni su:

  • Come configurare l'account Azure Cosmos DB quando si usano chiavi gestite dal cliente con i backup continui.
  • In che modo le chiavi gestite dal cliente influiscono sui ripristini?

Limitazioni correnti

Attualmente, la funzionalità di ripristino temporizzato presenta le limitazioni seguenti:

  • API di Azure Cosmos DB per SQL, MongoDB, Gremlin e Tabella supportate per il backup continuo. L'API per Cassandra non è ancora supportata.

  • "Gli account di scrittura in più aree non sono supportati".

  • Attualmente, è possibile abilitare Collegamento ad Azure Synapse negli account di database per il backup continuo. Ma la situazione opposta non è ancora supportata, non è possibile attivare il backup continuo in Collegamento a Synapse account di database abilitati. Inoltre l'archivio analitico non è incluso nei backup. Per altre informazioni sul backup e sull'archivio analitico, vedere Backup dell'archivio analitico.

  • L'account ripristinato viene creato nella stessa area in cui risiede l'account di origine. Non è possibile ripristinare un account in un'area in cui non esisteva l'account di origine.

  • La finestra di ripristino dura solo 30 giorni per il livello per 30 giorni e sette giorni per il livello per sette giorni. Questi livelli possono essere scambiati, ma non è possibile modificare le quantità effettive (7 o 30). Inoltre, se si passa dal livello per 30 giorni al livello per sette giorni, è probabile che si verifichi una perdita di dati nei giorni successivi al settimo.

  • I backup non sono automaticamente resistenti al ripristino di emergenza geografico. Un'altra area deve essere aggiunta in modo esplicito per la resilienza dell'account e del backup.

  • Mentre è in corso un ripristino, non modificare o eliminare i criteri di gestione delle identità e degli accessi (IAM). Questi criteri concedono le autorizzazioni per l'account di modificare eventuali configurazioni della rete virtuale o del firewall.

  • Gli account Azure Cosmos DB per MongoDB con backup continuo non supportano la creazione di un indice univoco per una raccolta esistente. Per un account di questo tipo, gli indici univoci devono essere creati insieme alla relativa raccolta; può essere eseguita usando i comandi di creazione dell'estensione della raccolta.

  • La funzionalità di ripristino temporizzato esegue sempre il ripristino in un nuovo account Azure Cosmos DB. Il ripristino in un account esistente non è attualmente supportato. Per fornire feedback sul ripristino sul posto, contattare il team di Azure Cosmos DB tramite il rappresentante dell'account.

  • Dopo il ripristino, è possibile che l'indice coerente di determinate raccolte venga ricompilato. È possibile controllare lo stato dell'operazione di ricompilazione tramite la proprietà IndexTransformationProgress.

  • Il processo di ripristino ripristina tutte le proprietà di un contenitore, inclusa la configurazione TTL per impostazione predefinita, è possibile passare il parametro per disabilitare la durata (TTL) durante l'esecuzione del ripristino. Di conseguenza, è possibile che, se configurati in questo modo, i dati ripristinati vengano eliminati immediatamente. Per evitare questa situazione, il timestamp di ripristino deve essere precedente al momento in cui le proprietà TTL sono state aggiunte al contenitore.

  • Non è possibile aggiungere o aggiornare indici univoci nell'API per MongoDB quando si crea un account in modalità di backup continuo. Non possono essere modificati neanche durante la migrazione di un account dalla modalità periodica alla modalità continua.

  • Il ripristino in modalità continua potrebbe non ripristinare l'impostazione della velocità effettiva valida al punto di ripristino.

Passaggi successivi