Timestamp ripristinabile più recente per gli account Azure Cosmos DB con modalità di backup continuo

SI APPLICA A: NoSQL MongoDB Gremlin Tabella

Azure Cosmos DB offre un'API per ottenere il timestamp ripristinabile più recente di un contenitore. Questa API è disponibile per gli account in cui è abilitata la modalità di backup continuo. Il timestamp ripristinabile più recente rappresenta il timestamp più recente in formato UTC in cui è stato eseguito il backup dei dati. Usando questa API, è possibile ottenere il timestamp ripristinabile per attivare il ripristino dell'account live o monitorare il backup dei dati in tempo reale.

Questa API accetta anche la posizione dell'account come parametro di input e restituisce il timestamp ripristinabile più recente per il contenitore specificato in questa posizione. Se un account esiste in più posizioni, il timestamp ripristinabile più recente per un contenitore in posizioni diverse potrebbe essere diverso perché i backup in ogni posizione vengono eseguiti in modo indipendente.

Per impostazione predefinita, questa API funziona solo a livello di contenitore, ma può essere facilmente estesa per funzionare a livello di database o account. Questo articolo illustra la semantica dell'API, il modo in cui vengono calcolati e casi d'uso. Per altre informazioni, vedere come ottenere il timestamp di ripristino più recente per gli account NoSQL, MongoDB, Table e Gremlin.

Utilizzare casi

È possibile usare il timestamp ripristinabile più recente nei casi d'uso seguenti:

  • È possibile ottenere il timestamp ripristinabile più recente per un contenitore, un database o un account e usarlo per attivare il ripristino. Questo timestamp rappresenta i dati della risorsa specificata o di tutte le risorse sottostanti di cui è stato eseguito il backup.

  • È possibile usare questa API per identificare che il backup dei dati è stato eseguito correttamente prima di eliminare l'account. Se il timestamp restituito da questa API è minore del timestamp dell'ultima scrittura, significa che sono presenti alcuni dati di cui non è ancora stato eseguito il backup. In questo caso, è necessario chiamare questa API fino a quando il timestamp non diventa uguale o maggiore dell'ultimo timestamp di scrittura. Se un account esiste in più posizioni, è necessario ottenere il timestamp ripristinabile più recente in tutte le posizioni per assicurarsi che i dati siano stati sottoposti a backup in tutte le aree prima di eliminare l'account.

  • È possibile usare questa API per monitorare il backup dei dati in tempo. Questo timestamp è in genere entro poche centinaia di secondi dal timestamp corrente, anche se a volte può differire di più.

semantica

Il timestamp ripristinabile più recente per un contenitore è il timestamp minimo upto, che è stato eseguito il backup di tutte le partizioni in una posizione. Questa API calcola il timestamp ripristinabile più recente recuperando il timestamp di backup più recente per ogni partizione del contenitore in una posizione e restituisce il timestamp minimo di tutti questi timestamp. Se viene eseguito il backup dei dati per tutte le partizioni e non sono stati scritti nuovi dati in tali partizioni, viene restituito il valore massimo del timestamp corrente e dell'ultimo timestamp del backup dei dati.

Se una partizione non ha ancora eseguito alcun backup, ma contiene alcuni dati di cui eseguire il backup, restituirà il timestamp minimo unix (epoca), ovvero il 1° gennaio 1970, la mezzanotte UTC (Coordinated Universal Time). In questi casi, l'utente deve riprovare finché non restituisce un timestamp maggiore del timestamp dell'epoca.

Calcolo timestamp ripristinabile più recente

L'esempio seguente descrive il risultato previsto dell'API timestamp ripristinabile più recente in diversi scenari. In ogni scenario viene illustrato lo stato di backup del log corrente della partizione, i dati in sospeso di cui eseguire il backup e il modo in cui influisce sul calcolo timestamp ripristinabile complessivo più recente per un contenitore.

Si supponga di avere un account, che esiste in due aree (Stati Uniti orientali, Stati Uniti occidentali). È disponibile un contenitore "cont1", che ha due partizioni (Partition1,Partition2). Se si invia una richiesta per ottenere il timestamp ripristinabile più recente per questo contenitore al timestamp 't3', il timestamp ripristinabile complessivo per questo contenitore verrà calcolato nel modo seguente:

Case1: i dati per tutte le partizioni non sono ancora stati sottoposti a backup

Area Stati Uniti orientali:

  • Partizione 1: ora dell'ultimo backup = t2, ma contiene altri dati di cui eseguire il backup dopo t2.
  • Partizione 2: ora dell'ultimo backup = t3 e viene eseguito il backup di tutti i relativi dati.
  • Timestamp ripristinabile più recente = min (t2, t3) = t2

Area Stati Uniti occidentali:

  • Partizione 1: ora dell'ultimo backup = t1, ma contiene altri dati di cui eseguire il backup dopo t1.
  • Partizione 2: ora dell'ultimo backup = t2, ma contiene altri dati di cui eseguire il backup dopo t2.
  • Timestamp ripristinabile più recente = min (t1, t2) = t1
Caso2: viene eseguito il backup dei dati per tutte le partizioni

Area Stati Uniti orientali:

  • Partizione 1: ora dell'ultimo backup = t2 e viene eseguito il backup di tutti i relativi dati.
  • Partizione 2: ora dell'ultimo backup = t3 e viene eseguito il backup di tutti i relativi dati.
  • Timestamp ripristinabile più recente = max (timestamp corrente, t2, t3)

Area Stati Uniti occidentali:

  • Partizione 1: ora dell'ultimo backup = t3 e viene eseguito il backup di tutti i relativi dati.
  • Partizione 2: ora dell'ultimo backup = t3 e viene eseguito il backup di tutti i relativi dati.
  • Timestamp ripristinabile più recente = max (timestamp corrente, t3, t3)
Caso3: quando una o più partizioni non hanno ancora eseguito alcun backup

Area Stati Uniti orientali:

  • Partizione 1: non è stato ancora eseguito alcun backup del log per questa partizione.
  • Partizione 2: Ora ultimo backup = t3
  • Timestamp ripristinabile più recente = 1/1/1970 12:00:00

Domande frequenti

È possibile usare questa API per gli account con backup periodico?

No. Questa API può essere usata solo per gli account con modalità di backup continuo.

È possibile usare questa API per gli account migrati in modalità continua?

Sì. Questa API può essere usata per l'account di cui è stato effettuato il provisioning con la modalità di backup continuo o è stata eseguita correttamente la migrazione alla modalità di backup continuo.

Qual è il ritardo tipico tra il timestamp di scrittura più recente e il timestamp ripristinabile più recente?

Il backup dei dati di backup del log viene eseguito ogni 100 secondi. Tuttavia, in alcuni casi eccezionali, i backup potrebbero essere ritardati per più di 100 secondi.

Il timestamp ripristinabile funzionerà per le risorse eliminate?

No. Si applica solo alle risorse attive (database, raccolte o account). È possibile ottenere il timestamp ripristinabile per attivare il ripristino o il monitoraggio dell'account live di cui viene eseguito il backup dei dati in tempo.

Passaggi successivi