Последняя восстанавливаемая метка времени для учетных записей Azure Cosmos DB с режимом непрерывного резервного копирования

Область применения: Nosql Mongodb Гремлин Таблица

Azure Cosmos DB предлагает API, чтобы получить последнюю восстанавливаемую метку времени контейнера. Этот API доступен для учетных записей с включенным режимом непрерывного резервного копирования. Последняя восстанавливаемая метка времени представляет последнюю метку времени в формате UTC, до которой ваши данные успешно резервировались. С помощью этого API можно получить восстанавливаемую метку времени, чтобы запустить восстановление действующей учетной записи или отслеживать своевременное восстановление данных.

Этот API также принимает расположение учетной записи в качестве входного параметра и возвращает последнюю восстанавливаемую метку времени для заданного контейнера в этом расположении. Если учетная запись существует в нескольких расположениях, последняя восстанавливаемая метка времени для контейнера в разных расположениях может отличаться, так как резервные копии в каждом расположении создаются независимо друг от друга.

По умолчанию этот API работает только на уровне контейнера, но его можно легко расширить для работы на уровне базы данных или учетной записи. Эта статья поможет понять семантику API, как она вычисляется и использует варианты его использования. Дополнительные сведения см. в статье о том, как получить последнюю метку времени восстановления для учетных записей API для NoSQL, MongoDB, Table и Gremlin.

Случаи использования

Последнюю восстанавливаемую метку времени можно использовать в приведенных ниже случаях.

  • Вы можете получить последнюю восстанавливаемую метку времени для контейнера, базы данных или учетной записи и использовать ее для запуска восстановления. Эта метка времени представляет данные указанного ресурса или все его базовые ресурсы успешно резервного копирования.

  • Этот API можно использовать для идентификации успешного резервного копирования данных перед удалением учетной записи. Если метка времени, возвращаемая этим API, меньше последней метки времени записи, то это означает, что есть некоторые данные, которые еще не были резервными копиями. В этом случае необходимо вызывать этот API до тех пор, пока метка времени не станет равной или больше метки времени последней записи. Если учетная запись существует в нескольких расположениях, перед удалением учетной записи необходимо получить последнюю метку времени восстановления во всех расположениях.

  • С помощью этого API можно следить за своевременным резервным копированием ваших данных. Как правило, эта отметка времени находится в пределах нескольких сотен секунд от текущей метки, хотя иногда отличие может быть более существенным.

семантика

Последняя восстанавливаемая метка времени для контейнера — это минимальная метка времени, резервная копия всех его секций в расположении. Этот API вычисляет последнюю метку времени восстановления, извлекая последнюю метку времени резервного копирования для каждой секции контейнера в расположении и возвращая минимальную метку времени всех этих меток времени. Если данные для всех его секций резервируются и не было новых данных, записанных в эти секции, он возвращает максимум текущей метки времени и последней метки времени резервного копирования данных.

Если для раздела еще не было выполнено резервное копирование, но у него есть некоторые данные, для которых необходимо сделать резервную копию, он вернет минимальную метку времени Unix (эпоху), т. е. 1 января 1970 г., в полночь (в формате UTC). В таких случаях пользователю необходимо повторять попытку, пока не будет задана метка времени больше, чем метка времени эпохи.

Вычисление последней восстанавливаемой метки времени

В следующем примере описывается ожидаемый результат последнего api метки времени восстановления в разных сценариях. В каждом сценарии мы обсудим текущее состояние резервного копирования журналов секции, ожидающие резервного копирования данных и о том, как это влияет на общее вычисление метки времени восстановления для контейнера.

Предположим, у нас есть учетная запись, которая существует в двух регионах (восточная часть США, западная часть США). У нас есть контейнер cont1, который имеет две секции (Partition1,Partition2). Если мы отправим запрос на получение последней восстанавливаемой метки времени для этого контейнера во время метки t3, общая последняя метка времени для этого контейнера будет вычисляться приведенным ниже образом.

Вариант 1. Для данных всех разделов еще не была создана резервная копия

Регион восточной части США

  • Раздел 1. Время последней резервной копии = t2, но в нем есть дополнительные данные для резервного копирования после t2.
  • Раздел 2. Время последней резервной копии = t3 и для всех его данных созданы резервные копии.
  • Последняя восстанавливаемая метка времени = мин. (t2, t3) = t2

Регион западной части США

  • Раздел 1. Время последней резервной копии = t1, но в нем есть дополнительные данные для резервного копирования после t1.
  • Раздел 2. Время последней резервной копии = t2, но в нем есть дополнительные данные для резервного копирования после t2.
  • Последняя восстанавливаемая метка времени = мин. (t1, t2) = t1
Вариант 2. Для данных всех разделов создана резервная копия

Регион восточной части США

  • Раздел 1. Время последней резервной копии = t2 и для всех его данных создана резервная копия.
  • Раздел 2. Время последней резервной копии = t3 и для всех его данных созданы резервные копии.
  • Последняя восстанавливаемая временная точка = макс. (текущая метка времени, t2, t3)

Регион западной части США

  • Раздел 1. Время последней резервной копии = t3 и для всех его данных создана резервная копия.
  • Раздел 2. Время последней резервной копии = t3 и для всех его данных созданы резервные копии.
  • Последняя восстанавливаемая временная точка = макс. (текущая метка времени, t3, t3)
Вариант 3. Если для одного или нескольких разделов еще не создана резервная копия

Регион восточной части США

  • Раздел 1. Резервное копирование журнала для этого раздела еще не было выполнено.
  • Раздел 2. Время последней резервной копии = t3
  • Последняя восстанавливаемая метка времени = 01.01.1970 00:00:00

Часто задаваемые вопросы

Можно ли использовать этот API для учетных записей с периодическим резервным копированием?

№ Этот API можно использовать только для учетных записей с режимом непрерывного резервного копирования.

Можно ли использовать этот API для учетных записей, переведенных в непрерывный режим?

Да. Этот API можно использовать для учетной записи, для которой настроен режим непрерывного резервного копирования или которая успешно переведена в режим непрерывного резервного копирования.

Какова типичная задержка между последней записанной и последней восстанавливаемой метками времени?

Резервное копирование журналов выполняется каждые 100 секунд. Однако в некоторых исключительных случаях резервное копирование может быть задержано более чем на 100 секунд.

Будет ли восстановлена метка времени для удаленных ресурсов?

№ Она применяется только к динамическим ресурсам (базам данных, коллекциям или учетной записи). Вы можете получить восстанавливаемую метку времени, чтобы активировать восстановление действующей учетной записи или отслеживать своевременное резервное копирование ваших данных.

Следующие шаги