Восстановление учетной записи Azure Cosmos DB, использующей режим непрерывного резервного копирования

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

Возможность восстановления до точки во времени в Azure Cosmos DB позволяет выполнить восстановление после случайного изменения в контейнере, восстановить удаленную учетную запись, базу данных или контейнер, а также выполнить восстановление в любом регионе (где существовали резервные копии). Режим непрерывного резервного копирования позволяет выполнять восстановление до любой точки во времени в течение последних 30 дней.

Эта статья содержит сведения о том, как определить время восстановления и восстановить действующую или удаленную учетную запись Azure Cosmos DB. В нем показано, как восстановить учетную запись с помощью портал Azure, PowerShell, CLI или шаблона Azure Resource Manager.

Восстановление учетной записи с помощью портала Azure

Восстановление действующей учетной записи после случайного изменения

С помощью портала Azure можно восстановить действующую учетную запись или выбранные базы данных и контейнеры, относящиеся к ней. Чтобы восстановить данные, выполните следующие действия:

  1. Войдите на портал Azure.

  2. Перейдите к учетной записи Azure Cosmos DB и откройте колонку Восстановление до точки во времени.

    Примечание.

    Колонка восстановления на портале Azure заполняется информацией только при наличии у вас разрешения Microsoft.DocumentDB/locations/restorableDatabaseAccounts/*/read. Дополнительные сведения о настройке этого разрешения см. в статье о разрешениях на резервное копирование и восстановление.

  3. Укажите следующие сведения для восстановления:

    • Точка восстановления (в формате UTC). Это метка времени в пределах последних 30 дней. Учетная запись должна уже существовать на момент, заданный этой меткой времени. Точку восстановления можно указать в формате UTC. Это момент, на который вы хотите восстановить данные, и его можно указать с точностью до секунды. Если вам нужна помощь с определением точки восстановления, нажмите Щелкните здесь.

    • Расположение. Это регион назначения, в котором восстанавливается учетная запись. Учетная запись должна существовать в этом регионе (например, западная часть США или восточная часть США) на момент, заданный меткой времени. Учетную запись можно восстановить только в тех регионах, в которых существовала исходная учетная запись.

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

    • Группа ресурсов. Это группа ресурсов, в которой будет создана и восстановлена целевая учетная запись. Группа ресурсов уже должна существовать.

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

    Восстановление действующей учетной записи с помощью портала Azure после случайного изменения.

  4. Выбрав указанные выше параметры, нажмите Отправить, чтобы начать восстановление. За восстановление взимается однократная плата, размер которой зависит от объема данных и от тарифов на хранение резервных копий в конкретном регионе. Дополнительные сведения см. в разделе Цены.

Удаление исходной учетной записи во время восстановления может привести к сбою восстановления.

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

Чтобы восстановить не удаленные действующие учетные записи Azure Cosmos DB, рекомендуется всегда определять последнюю восстанавливаемую метку времени для контейнера. Затем эту метку времени можно использовать для восстановления учетной записи до ее последней версии.

Определение времени восстановления с помощью канала событий

Если при настройке восстановления на портале Azure вам нужна помощь с определением точки восстановления, нажмите Щелкните здесь, чтобы перейти в колонку веб-канала событий. Веб-канал событий предоставляет полный достоверный список событий создания, замены и удаления в базах данных и контейнерах исходной учетной записи.

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

Определение времени точки восстановления с помощью веб-канала событий.

Примечание.

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

Восстановление удаленной учетной записи

Портал Azure можно использовать для полного восстановления удаленной учетной записи в течение 30 дней после ее удаления. Чтобы восстановить удаленную учетную запись, выполните следующие действия:

  1. Войдите на портал Azure.

  2. Найдите ресурсы по запросу Azure Cosmos DB, используя строку глобального поиска. Появится перечень всех ваших существующих учетных записей.

  3. Затем нажмите кнопку Восстановить. В колонке восстановления появится список удаленных учетных записей, которые можно восстановить в течение периода хранения, что составляет 30 дней с момента удаления.

  4. Выберите учетную запись, которую вы хотите восстановить.

    Восстановление удаленной учетной записи на портале Azure.

    Примечание.

    Колонка восстановления на портале Azure заполняется информацией только при наличии у вас разрешения Microsoft.DocumentDB/locations/restorableDatabaseAccounts/*/read. Дополнительные сведения о настройке этого разрешения см. в статье о разрешениях на резервное копирование и восстановление.

  5. Выберите удаленную учетную запись для восстановления и введите следующие сведения:

    • Точка восстановления (в формате UTC). Это метка времени в пределах последних 30 дней. Учетная запись должна существовать в момент, заданный этой меткой времени. Укажите точку восстановления в формате UTC. Это момент, на который вы хотите восстановить данные, и его можно указать с точностью до секунды.

    • Расположение. Это регион назначения, в котором нужно восстановить учетную запись. Исходная учетная запись должна существовать в этом регионе на момент, заданный меткой времени. Пример: западная часть США или восточная часть США.

    • Группа ресурсов. Это группа ресурсов, в которой будет создана и восстановлена целевая учетная запись. Группа ресурсов уже должна существовать.

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

Отслеживание состояния операции восстановления

После инициализации операции восстановления щелкните значок Уведомление (в виде колокольчика) в правом верхнем углу портала. По ссылке будет показано состояние восстанавливаемой учетной записи. Пока выполняется восстановление, учетная запись будет иметь статус Создание, а после завершения восстановления состояние учетной записи изменится на Подключено.

Состояние восстановленной учетной записи изменяется с

Получение сведений о восстановлении из восстановленной учетной записи

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

Чтобы получить сведения о восстановлении на портале Azure, выполните приведенные ниже действия.

  1. Войдите в портал Azure и перейдите к восстановленной учетной записи.

  2. Перейдите к области Экспорт шаблона. Откроется шаблон JSON, соответствующий восстановленной учетной записи.

Восстановление учетной записи с помощью Azure PowerShell

Перед восстановлением учетной записи установите последнюю версию Azure PowerShell или версию выше 9.6.0. Затем подключитесь к учетной записи Azure и выберите нужную подписку с помощью следующих команд:

  1. Войдите в Azure, выполнив следующую команду.

    Connect-AzAccount
    
  2. Чтобы выбрать определенную подписку, выполните следующую команду:

    Select-AzSubscription -Subscription <SubscriptionName>
    

Активация операции восстановления для учетной записи API для NoSQL

Следующий командлет — это пример запуска операции восстановления с помощью целевой учетной записи, исходной учетной записи, расположения, группы ресурсов, PublicNetworkAccess, DisableTtl и метки времени:


Restore-AzCosmosDBAccount `
  -TargetResourceGroupName "MyRG" `
  -TargetDatabaseAccountName "RestoredAccountName" `
  -SourceDatabaseAccountName "SourceDatabaseAccountName" `
  -RestoreTimestampInUtc "UTCTime" `
  -Location "AzureRegionName" ` 
  -PublicNetworkAccess Disabled `
  -DisableTtl $true

Пример 1. Восстановление всей учетной записи.


Restore-AzCosmosDBAccount `
  -TargetResourceGroupName "MyRG" `
  -TargetDatabaseAccountName "Pitracct" `
  -SourceDatabaseAccountName "source-sql" `
  -RestoreTimestampInUtc "2021-01-05T22:06:00" `
  -Location "West US" `
  -PublicNetworkAccess Disabled
  -DisableTtl $false


Если PublicNetworkAccess не задано, восстановленная учетная запись доступна из общедоступной сети, убедитесь, что передайте DisabledPublicNetworkAccess параметр, чтобы отключить доступ к общедоступной сети для восстановленной учетной записи. Параметр DisableTtl to $true гарантирует, что TTL отключен в восстановленной учетной записи, не предоставляя параметру восстановление учетной записи с включенной функцией TTL, если она была задана ранее.

Примечание.

Для восстановления с отключенным доступом к общедоступной сети требуется минимальная стабильная версия Az.CosmosDB 1.12.0.

Пример 2: Восстановление конкретных коллекций и баз данных. В этом примере восстанавливаются коллекции MyCol1, MyCol2 из MyDB1 и база данных MyDB2 в целом вместе со всеми контейнерами.

$datatabaseToRestore1 = New-AzCosmosDBDatabaseToRestore -DatabaseName "MyDB1" -CollectionName "MyCol1", "MyCol2"
$datatabaseToRestore2 = New-AzCosmosDBDatabaseToRestore -DatabaseName "MyDB2"

Restore-AzCosmosDBAccount `
  -TargetResourceGroupName "MyRG" `
  -TargetDatabaseAccountName "Pitracct" `
  -SourceDatabaseAccountName "SourceSql" `
  -RestoreTimestampInUtc "2021-01-05T22:06:00" `
  -DatabasesToRestore $datatabaseToRestore1, $datatabaseToRestore2 `
  -Location "West US"

Пример 3. Восстановление API для учетной записи Gremlin. В этом примере восстанавливаются графы graph1, graph2 из MyDB1 и база данных MyDB2 целиком вместе со всеми контейнерами.

$datatabaseToRestore1 = New-AzCosmosDBGremlinDatabaseToRestore  -DatabaseName "MyDB1" -GraphName "graph1", "graph2"  
$datatabaseToRestore2 = New-AzCosmosDBGremlinDatabaseToRestore  -DatabaseName "MyDB2"

Restore-AzCosmosDBAccount `
  -TargetResourceGroupName "MyRG" `
  -TargetDatabaseAccountName "Pitracct" `
  -SourceDatabaseAccountName "SourceGremlin" `
  -RestoreTimestampInUtc "2022-04-05T22:06:00" `
  -DatabasesToRestore $datatabaseToRestore1, $datatabaseToRestore2 `
  -Location "West US"

Пример 4. Восстановление API для учетной записи таблицы. В этом примере восстанавливаются таблицы table1, table1 из MyDB1

$tablesToRestore  = New-AzCosmosDBTableToRestore -TableName "table1", "table2"  

Restore-AzCosmosDBAccount `
  -TargetResourceGroupName "MyRG" `
  -TargetDatabaseAccountName "Pitracct" `
  -SourceDatabaseAccountName "SourceTable" `
  -RestoreTimestampInUtc "2022-04-06T22:06:00" `
  -TablesToRestore $tablesToRestore ` 
  -Location "West US"

Восстановление непрерывной учетной записи, настроенной с помощью управляемого удостоверения с помощью CLI

Чтобы восстановить непрерывную учетную запись управляемого клиентом ключа (CMK), ознакомьтесь с инструкциями, приведенными здесь.

Получение сведений о восстановлении из восстановленной учетной записи

Az.CosmosDB Импортируйте модуль версии 1.12.0 и выполните следующую команду, чтобы получить сведения о восстановлении. А restoreTimestamp отображается под объектом restoreParameters:

Get-AzCosmosDBAccount -ResourceGroupName MyResourceGroup -Name MyCosmosDBDatabaseAccount 

Перечисление восстанавливаемых ресурсов для API для NoSQL

Командлеты перечисления помогают найти ресурсы, доступные для восстановления в различных метках времени. Кроме того, они предоставляют канал ключевых событий в восстанавливаемых ресурсах учетной записи, базы данных и контейнера.

Вывод всех учетных записей, которые могут быть восстановлены в текущей подписке

Выполните команду PowerShell Get-AzCosmosDBRestorableDatabaseAccount, чтобы вывести список всех учетных записей, которые можно восстановить в текущей подписке.

Ответ содержит все учетные записи базы данных (как активных, так и удаленных), которые можно восстановить, и регионы, из которых они могут быть восстановлены.

{
    "accountName": "SampleAccount",
    "apiType": "Sql",
    "creationTime": "2020-08-08T01:04:52.070190+00:00",
    "deletionTime": null,
    "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.DocumentDB/locations/West US/restorableDatabaseAccounts/23e99a35-cd36-4df4-9614-f767a03b9995",
    "identity": null,
    "location": "West US",
    "name": "23e99a35-cd36-4df4-9614-f767a03b9995",
    "restorableLocations": [
      {
        "creationTime": "2020-08-08T01:04:52.945185+00:00",
        "deletionTime": null,
        "location": "West US",
        "regionalDatabaseAccountInstanceId": "30701557-ecf8-43ce-8810-2c8be01dccf9"
      },
      {
        "creationTime": "2020-08-08T01:15:43.507795+00:00",
        "deletionTime": null,
        "location": "East US",
        "regionalDatabaseAccountInstanceId": "8283b088-b67d-4975-bfbe-0705e3e7a599"
      }
    ],
    "tags": null,
    "type": "Microsoft.DocumentDB/locations/restorableDatabaseAccounts"
  }

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

Вывод списка всех версий баз данных SQL в действующей учетной записи базы данных

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

Выполните следующую команду PowerShell, чтобы вывести список всех версий баз данных. Эта команда работает только с активными учетными записями. Параметры DatabaseAccountInstanceId и Location получены из свойств name и location в ответе командлета Get-AzCosmosDBRestorableDatabaseAccount. DatabaseAccountInstanceIdАтрибут ссылается на свойство instanceId восстанавливаемой учетной записи базы данных источника:


Get-AzCosmosdbSqlRestorableDatabase `
  -Location "East US" `
  -DatabaseAccountInstanceId <DatabaseAccountInstanceId>

Вывод списка всех версий контейнеров SQL базы данных в активной учетной записи базы данных.

Используйте следующую команду, чтобы получить список всех версий контейнеров SQL. Эта команда работает только с активными учетными записями. Параметр DatabaseRId — это ResourceId базы данных, которую необходимо восстановить. Это значение атрибута ownerResourceid, содержащееся в ответе командлета Get-AzCosmosdbSqlRestorableDatabase. Ответ также содержит список операций, выполняемых со всеми контейнерами в этой базе данных.


Get-AzCosmosdbSqlRestorableContainer `
  -DatabaseAccountInstanceId "d056a4f8-044a-436f-80c8-cd3edbc94c68" `
  -DatabaseRId "AoQ13r==" `
  -Location "West US"

Поиск баз данных или контейнеров, которые можно восстановить по любой заданной метке времени

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


Get-AzCosmosdbSqlRestorableResource `
  -DatabaseAccountInstanceId "d056a4f8-044a-436f-80c8-cd3edbc94c68" `
  -Location "West US" `
  -RestoreLocation "East US" `
  -RestoreTimestamp "2020-07-20T16:09:53+0000"

Перечисление восстанавливаемых ресурсов в API для MongoDB

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

Вывод списка всех версий баз данных MongoDB в действующей учетной записи базы данных


Get-AzCosmosdbMongoDBRestorableDatabase `
  -DatabaseAccountInstanceId "d056a4f8-044a-436f-80c8-cd3edbc94c68" `
  -Location "West US"

Вывод списка всех версий коллекций MongoDB базы данных в активной учетной записи базы данных


Get-AzCosmosdbMongoDBRestorableCollection `
  -DatabaseAccountInstanceId "d056a4f8-044a-436f-80c8-cd3edbc94c68" `
  -DatabaseRId "AoQ13r==" `
  -Location "West US"

Перечисление всех ресурсов учетной записи базы данных MongoDB, доступных для восстановления в заданной метке времени и регионе


Get-AzCosmosdbMongoDBRestorableResource `
  -DatabaseAccountInstanceId "d056a4f8-044a-436f-80c8-cd3edbc94c68" `
  -Location "West US" `
  -RestoreLocation "West US" `
  -RestoreTimestamp "2020-07-20T16:09:53+0000"

Перечисление восстанавливаемых ресурсов для API для Gremlin

Командлеты перечисления помогают найти ресурсы, доступные для восстановления в различных метках времени. Кроме того, они предоставляют канал ключевых событий в восстанавливаемых ресурсах учетной записи, базы данных и графа.

Вывод списка всех версий баз данных Gremlin в активной учетной записи базы данных

Перечисление всех версий баз данных позволяет выбрать правильную базу данных в сценарии, в котором фактическое время существования базы данных неизвестно. Выполните следующую команду PowerShell, чтобы вывести список всех версий баз данных. Эта команда работает только с активными учетными записями. Параметры DatabaseAccountInstanceId и Location получены из свойств name и location в ответе командлета Get-AzCosmosDBRestorableDatabaseAccount. DatabaseAccountInstanceIdАтрибут ссылается на свойство instanceId восстанавливаемой учетной записи базы данных источника:

Get-AzCosmosdbGremlinRestorableDatabase ` 
   -Location "East US" ` 
   -DatabaseAccountInstanceId <DatabaseAccountInstanceId> 

Вывод списка всех версий графов баз данных Gremlin в активной учетной записи базы данных

Используйте следующую команду, чтобы получить список всех версий API для графов Gremlin. Эта команда работает только с активными учетными записями. Параметр DatabaseRId — это ResourceId базы данных, которую необходимо восстановить. Это значение атрибута ownerResourceid, содержащееся в ответе командлета Get-AzCosmosdbGremlinRestorableDatabase. Ответ также содержит список операций, выполняемых со всеми графами в этой базе данных.

Get-AzCosmosdbGremlinRestorableGraph ` 
   -DatabaseAccountInstanceId "d056a4f8-044a-436f-80c8-cd3edbc94c68" ` 
   -DatabaseRId "AoQ13r==" ` 
   -Location "West US" 

Поиск баз данных или графов, которые можно восстановить по любой заданной метке времени

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

Get-AzCosmosdbGremlinRestorableResource ` 
   -DatabaseAccountInstanceId "d056a4f8-044a-436f-80c8-cd3edbc94c68" ` 
   -Location "West US" ` 
   -RestoreLocation "East US" ` 
   -RestoreTimestamp "2020-07-20T16:09:53+0000" 

Перечисление восстанавливаемых ресурсов для API для таблицы

Командлеты перечисления помогают найти ресурсы, доступные для восстановления в различных метках времени. Кроме того, они предоставляют канал ключевых событий в восстанавливаемых ресурсах учетной записи и таблицы.

Вывод списка всех версий таблиц базы данных в активной учетной записи базы данных.

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

Get-AzCosmosdbTableRestorableTable ` 
   -DatabaseAccountInstanceId "d056a4f8-044a-436f-80c8-cd3edbc94c68"   ` 
   -Location "West US" 

Поиск таблиц, которые можно восстановить по любой заданной метке времени

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

Get-AzCosmosdbTableRestorableResource ` 
   -DatabaseAccountInstanceId "d056a4f8-044a-436f-80c8-cd3edbc94c68" ` 
   -Location "West US" ` 
   -RestoreLocation "East US" ` 
   -RestoreTimestamp "2020-07-20T16:09:53+0000" 

Восстановление учетной записи с помощью Azure CLI

Перед восстановлением учетной записи установите Azure CLI, выполнив следующие действия:

  1. Установите последнюю версию Azure CLI.

    • Установите последнюю версию Azure CLI или более поздней версии 2.52.0.
    • Если вы уже установили интерфейс командной строки, выполните команду az upgrade для обновления до последней версии. Эта команда будет работать только с версией CLI выше 2.52.0. Если у вас более ранняя версия, используйте ссылку выше, чтобы установить последнюю версию.
  2. Вход и выбор подписки

    • Войдите в учетную запись Azure с помощью команды az login.
    • Выберите необходимую подписку, используя команду az account set -s <subscriptionguid>.

Активация операции восстановления с помощью Azure CLI

Самый простой способ активировать восстановление — выполнить команду restore, указав имя целевой учетной записи, исходную учетную запись, расположение, группу ресурсу, метку времени (в формате UTC) и, при необходимости, имена базы данных и контейнера. Ниже приведены примеры активации операции восстановления.

Создание учетной записи Azure Cosmos DB путем восстановления имеющейся учетной записи


az cosmosdb restore \
 --target-database-account-name <MyRestoredCosmosDBDatabaseAccount> \
 --account-name <MySourceAccount> \
 --restore-timestamp 2020-07-13T16:03:41+0000 \
 --resource-group <MyResourceGroup> \
 --location "West US" \
 --public-network-access Disabled \
 --disable-ttl True 

Если --public-network-access не задано, восстановленная учетная запись доступна из общедоступной сети. Передайте Disabled параметр, чтобы запретить доступ к общедоступной --public-network-access сети для восстановленной учетной записи. Параметр disable-ttl to $true гарантирует, что TTL отключен в восстановленной учетной записи, и не предоставляет этот параметр восстанавливает учетную запись с включенным TTL, если он был установлен ранее.

Примечание.

Для восстановления с отключенным доступом к общедоступной сети минимальная стабильная версия azure-cli — 2.52.0.

Создание учетной записи Azure Cosmos DB путем восстановления только выбранных баз данных и контейнеров из существующей учетной записи базы данных


az cosmosdb restore \
 --resource-group MyResourceGroup \
 --target-database-account-name MyRestoredCosmosDBDatabaseAccount \
 --account-name MySourceAccount \
 --restore-timestamp 2020-07-13T16:03:41+0000 \
 --location "West US" \
 --databases-to-restore name=MyDB1 collections=Collection1 Collection2 \
 --databases-to-restore name=MyDB2 collections=Collection3 Collection4

Создание нового API Azure Cosmos DB для учетной записи Gremlin путем восстановления только выбранных баз данных и графов из существующей учетной записи API для Gremlin


az cosmosdb restore \
 --resource-group MyResourceGroup \
 --target-database-account-name MyRestoredCosmosDBDatabaseAccount \
 --account-name MySourceAccount \
 --restore-timestamp 2022-04-13T16:03:41+0000 \
 --location "West US" \
 --gremlin-databases-to-restore name=MyDB1 graphs=graph1 graph2 \
 --gremlin-databases-to-restore name=MyDB2 graphs =graph3 graph4 

Создание нового API Azure Cosmos DB для учетной записи таблицы путем восстановления только выбранных таблиц из существующей учетной записи API для таблицы


az cosmosdb restore \
 --resource-group MyResourceGroup \
 --target-database-account-name MyRestoredCosmosDBDatabaseAccount \
 --account-name MySourceAccount \
 --restore-timestamp 2022-04-14T06:03:41+0000 \
 --location "West US" \
 --tables-to-restore table1 table2 

Получение сведений о восстановлении из восстановленной учетной записи

Выполните следующую команду, чтобы получить сведения о восстановлении: В выходных данных команды az cosmosdb show приведено значение свойства createMode. Если задано значение Восстановить, оно указывает, что учетная запись была восстановлена из другой учетной записи. Свойство restoreParameters имеет дополнительные сведения, например restoreSource, с указанием идентификатора исходной учетной записи. Последним уникальным идентификатором в параметре restoreSource является instanceId исходной учетной записи. restoreTimestamp будет находиться в объекте restoreParameters:

az cosmosdb show --name MyCosmosDBDatabaseAccount --resource-group MyResourceGroup

Перечисление восстанавливаемых ресурсов для API для NoSQL

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

Вывод всех учетных записей, которые могут быть восстановлены в текущей подписке

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

az cosmosdb restorable-database-account list --account-name "Pitracct"

Ответ содержит все учетные записи базы данных (как активных, так и удаленных), которые можно восстановить, и регионы, из которых они могут быть восстановлены.

{
    "accountName": "Pitracct",
    "apiType": "Sql",
    "creationTime": "2021-01-08T23:34:11.095870+00:00",
    "deletionTime": null,
    "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.DocumentDB/locations/West US/restorableDatabaseAccounts/abcd1234-d1c0-4645-a699-abcd1234",
    "identity": null,
    "location": "West US",
    "name": "abcd1234-d1c0-4645-a699-abcd1234",
    "restorableLocations": [
      {
        "creationTime": "2021-01-08T23:34:11.095870+00:00",
        "deletionTime": null,
        "locationName": "West US",
        "regionalDatabaseAccountInstanceId": "f02df26b-c0ec-4829-8bef-3482d36e6230"
      }
    ],
    "tags": null,
    "type": "Microsoft.DocumentDB/locations/restorableDatabaseAccounts"
  }

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

Вывод списка всех версий баз данных в действующей учетной записи базы данных

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

Выполните приведенную команду Azure CLI, чтобы вывести список всех версий баз данных. Эта команда работает только с активными учетными записями. Параметры instance-id и location получены из свойств name и location в ответе команды az cosmosdb restorable-database-account list. Атрибут instanceId также является свойством восстанавливаемой учетной записи базы данных-источника:

az cosmosdb sql restorable-database list \
  --instance-id "abcd1234-d1c0-4645-a699-abcd1234" \
  --location "West US"

Теперь в выходных данных команды показано, когда была создана и удалена база данных.

[
  {
    "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.DocumentDB/locations/West US/restorableDatabaseAccounts/abcd1234-d1c0-4645-a699-abcd1234/restorableSqlDatabases/40e93dbd-2abe-4356-a31a-35567b777220",
     "name": "40e93dbd-2abe-4356-a31a-35567b777220",
    "resource": {
      "database": {
        "id": "db1"
      },
      "eventTimestamp": "2021-01-08T23:27:25Z",
      "operationType": "Create",
      "ownerId": "db1",
      "ownerResourceId": "YuZAAA=="
    },
   
  },
  {
    "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.DocumentDB/locations/West US/restorableDatabaseAccounts/abcd1234-d1c0-4645-a699-abcd1234/restorableSqlDatabases/243c38cb-5c41-4931-8cfb-5948881a40ea",
    "name": "243c38cb-5c41-4931-8cfb-5948881a40ea",
    "resource": {
      "database": {
        "id": "spdb1"
      },
      "eventTimestamp": "2021-01-08T23:25:25Z",
      "operationType": "Create",
      "ownerId": "spdb1",
      "ownerResourceId": "OIQ1AA=="
    },
 
  }
]

Вывод списка всех версий контейнеров SQL базы данных в активной учетной записи базы данных.

Используйте следующую команду, чтобы получить список всех версий контейнеров SQL. Эта команда работает только с активными учетными записями. Параметр database-rid — это ResourceId базы данных, которую необходимо восстановить. Это значение атрибута ownerResourceid, содержащееся в ответе команды az cosmosdb sql restorable-database list.

az cosmosdb sql restorable-container list \
    --instance-id "abcd1234-d1c0-4645-a699-abcd1234" \
    --database-rid "OIQ1AA==" \
    --location "West US"

Выходные данные команды содержат список операций, выполненных со всеми контейнерами в этой базе данных.

[
  {
      "eventTimestamp": "2021-01-08T23:25:29Z",
      "operationType": "Replace",
      "ownerId": "procol3",
      "ownerResourceId": "OIQ1APZ7U18="
  },
  {
      "eventTimestamp": "2021-01-08T23:25:26Z",
      "operationType": "Create",
      "ownerId": "procol3",
      "ownerResourceId": "OIQ1APZ7U18="
  },
]

Поиск баз данных или контейнеров, которые можно восстановить по любой заданной метке времени

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


az cosmosdb sql restorable-resource list \
  --instance-id "abcd1234-d1c0-4645-a699-abcd1234" \
  --location "West US" \
  --restore-location "West US" \  
  --restore-timestamp "2021-01-10T01:00:00+0000"

[
  {
    "collectionNames": [
      "procol1",
      "procol2"
    ],
    "databaseName": "db1"
  },
  {
    "collectionNames": [
      "procol3",
       "spcol1"
    ],
    "databaseName": "spdb1"
  }
]

Перечисление восстанавливаемых ресурсов для учетной записи API для MongoDB

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

Вывод списка всех версий баз данных MongoDB в действующей учетной записи базы данных

az cosmosdb mongodb restorable-database list \
    --instance-id "abcd1234-d1c0-4645-a699-abcd1234" \
    --location "West US"

Вывод списка всех версий коллекций MongoDB базы данных в активной учетной записи базы данных

az cosmosdb mongodb restorable-collection list \
    --instance-id "abcd1234-d1c0-4645-a699-abcd1234" \
    --database-rid "AoQ13r==" \
    --location "West US"

Вывод всех ресурсов учетной записи базы данных mongodb, доступных для восстановления в заданной метке времени и регионе

az cosmosdb mongodb restorable-resource list \
    --instance-id "abcd1234-d1c0-4645-a699-abcd1234" \
    --location "West US" \
    --restore-location "West US" \
    --restore-timestamp "2020-07-20T16:09:53+0000"

Вывод списка всех версий баз данных в действующей учетной записи базы данных

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

az cosmosdb gremlin restorable-database list \ 
   --instance-id "abcd1234-d1c0-4645-a699-abcd1234" \ 
   --location "West US"

Теперь в выходных данных команды показано, когда была создана и удалена база данных.

[ { 
    "id": "/subscriptions/abcd1234-b6ac-4328-a753-abcd1234/providers/Microsoft.DocumentDB/locations/eastus2euap/restorableDatabaseAccounts/abcd1234-4316-483b-8308-abcd1234/restorableGremlinDatabases/abcd1234-0e32-4036-ac9d-abcd1234", 
    "name": "abcd1234-0e32-4036-ac9d-abcd1234", 
    "resource": { 
      "eventTimestamp": "2022-02-09T17:10:18Z", 
      "operationType": "Create", 
      "ownerId": "db1", 
      "ownerResourceId": "1XUdAA==", 
      "rid": "ymn7kwAAAA==" 
    }, 
    "type": "Microsoft.DocumentDB/locations/restorableDatabaseAccounts/restorableGremlinDatabases" 
    
  } 
] 

Вывод списка всех версий графов баз данных Gremlin в активной учетной записи базы данных

az cosmosdb gremlin restorable-graph list \ 
   --instance-id "abcd1234-d1c0-4645-a699-abcd1234" \ 
   --database-rid "OIQ1AA==" \ 
   --location "West US" 

Выходные данные команды содержат список операций, выполненных со всеми контейнерами в этой базе данных.

[ { 

    "id": "/subscriptions/23587e98-b6ac-4328-a753-03bcd3c8e744/providers/Microsoft.DocumentDB/locations/eastus2euap/restorableDatabaseAccounts/a00d591d-4316-483b-8308-44193c5f3073/restorableGraphs/1792cead-4307-4032-860d-3fc30bd46a20", 
    "name": "1792cead-4307-4032-860d-3fc30bd46a20", 
    "resource": { 
      "eventTimestamp": "2022-02-09T17:10:31Z", 
      "operationType": "Create", 
      "ownerId": "graph1", 
      "ownerResourceId": "1XUdAPv9duQ=", 
      "rid": "IcWqcQAAAA==" 
    }, 
    "type": "Microsoft.DocumentDB/locations/restorableDatabaseAccounts/restorableGraphs" 
  } 
] 

Поиск баз данных или графов, которые можно восстановить по любой заданной метке времени

 
az cosmosdb gremlin restorable-resource list \ 
   --instance-id "abcd1234-d1c0-4645-a699-abcd1234" \ 
   --location "West US" \ 
   --restore-location "West US" \ 
   --restore-timestamp "2021-01-10T01:00:00+0000" 

В выходных данных этой команды показаны графы, которые можно восстановить:

[
 { 
"databaseName": "db1", 
"graphNames": [ "graph1",   "graph3",   "graph2"  ] 
  } 
] 

Перечисление восстанавливаемых ресурсов для учетной записи API для таблицы

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

Вывод списка всех версий таблиц в действующей учетной записи базы данных

az cosmosdb table restorable-table list \ 
   --instance-id "abcd1234-d1c0-4645-a699-abcd1234"  
   --location "West US" 
[   { 

"id": "/subscriptions/23587e98-b6ac-4328-a753-03bcd3c8e744/providers/Microsoft.DocumentDB/locations/WestUS/restorableDatabaseAccounts/7e4d666a-c6ba-4e1f-a4b9-e92017c5e8df/restorableTables/59781d91-682b-4cc2-93a3-c25d03fab159", 
"name": "59781d91-682b-4cc2-93a3-c25d03fab159", 
"resource": { 
  "eventTimestamp": "2022-02-09T17:09:54Z", 
  "operationType": "Create", 
  "ownerId": "table1", 
  "ownerResourceId": "tOdDAKYiBhQ=", 
  "rid": "9pvDGwAAAA==" 
  }, 
"type": "Microsoft.DocumentDB/locations/restorableDatabaseAccounts/restorableTables" 
   }, 

{"id": "/subscriptions/23587e98-b6ac-4328-a753-03bcd3c8e744/providers/Microsoft.DocumentDB/locations/eastus2euap/restorableDatabaseAccounts/7e4d666a-c6ba-4e1f-a4b9-e92017c5e8df/restorableTables/2c9f35eb-a14c-4ab5-a7e0-6326c4f6b785", 
"name": "2c9f35eb-a14c-4ab5-a7e0-6326c4f6b785", 
"resource": { 
  "eventTimestamp": "2022-02-09T20:47:53Z", 
  "operationType": "Create", 
  "ownerId": "table3", 
  "ownerResourceId": "tOdDALBwexw=", 
  "rid": "01DtkgAAAA==" 
}, 
"type": "Microsoft.DocumentDB/locations/restorableDatabaseAccounts/restorableTables" 

  }, 
] 

Список всех ресурсов API для учетной записи таблицы, доступной для восстановления в заданной метке времени и регионе.

az cosmosdb table restorable-resource list \ 
   --instance-id "abcd1234-d1c0-4645-a699-abcd1234" \ 
   --location "West US" \ 
   --restore-location "West US" \ 
   --restore-timestamp "2020-07-20T16:09:53+0000" 

Ниже приведен результат команды.

{   
  "tableNames": [ 
"table1", 
"table3", 
"table2" 

  ] 
} 

Восстановление с помощью шаблона Azure Resource Manager

Кроме того, вы можете восстановить учетную запись с помощью шаблона Azure Resource Manager (ARM). При определении шаблона добавьте следующие параметры:

Восстановление учетной записи API для NoSQL или MongoDB с помощью шаблона ARM

  1. Задайте для параметра createMode значение Восстановить.
  2. Определите restoreParameters, обратите внимание, что значение restoreSource извлекается из выходных данных команды az cosmosdb restorable-database-account list для исходной учетной записи. Для восстановления используется атрибут идентификатора экземпляра для имени учетной записи.
  3. Задайте для параметра restoreMode значение PointInTime и настройте его значение restoreTimestampInUtc.

Используйте следующий шаблон ARM для восстановления учетной записи ДЛЯ API Azure Cosmos DB для NoSQL или MongoDB. Ниже приведены примеры для других API.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [
    {
      "name": "vinhpitrarmrestore-kal3",
      "type": "Microsoft.DocumentDB/databaseAccounts",
      "apiVersion": "2023-04-15",
      "location": "West US",
      "properties": {
        "locations": [
          {
            "locationName": "West US"
          }
        ],
        "databaseAccountOfferType": "Standard",
        "createMode": "Restore",
        "restoreParameters": {
            "restoreSource": "/subscriptions/2296c272-5d55-40d9-bc05-4d56dc2d7588/providers/Microsoft.DocumentDB/locations/West US/restorableDatabaseAccounts/6a18ecb8-88c2-4005-8dce-07b44b9741df",
            "restoreMode": "PointInTime",
            "restoreTimestampInUtc": "6/24/2020 4:01:48 AM",
            "restoreWithTtlDisabled": "true"
        }
      }
    }
  ]
}

Восстановление учетной записи API для Gremlin с помощью шаблона ARM

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [
    {
      "name": "ademo-pitr1",
      "type": "Microsoft.DocumentDB/databaseAccounts",
      "apiVersion": "2023-04-15",
      "location": "West US",
      "properties": {
        "locations": [
          {
            "locationName": "West US"
          }
        ],
        "backupPolicy": { 
          "type": "Continuous" 
        }, 
        "databaseAccountOfferType": "Standard",
        "createMode": "Restore",
        "restoreParameters": {
            "restoreSource": "/subscriptions/2296c272-5d55-40d9-bc05-4d56dc2d7588/providers/Microsoft.DocumentDB/locations/West US/restorableDatabaseAccounts/5cb9d82e-ec71-430b-b977-cd6641db85bc",
            "restoreMode": "PointInTime",
            "restoreTimestampInUtc": "2021-10-27T23:20:46Z",
            "gremlinDatabasesToRestore": [{ 
                "databaseName": "db1", 
                "graphNames": [ 
                    "graph1", "graph2" 
                ] 
            }]
        }
      }
    }
  ]
}

Восстановление API для учетной записи таблицы с помощью шаблона ARM

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [
    {
      "name": "ademo-pitr1",
      "type": "Microsoft.DocumentDB/databaseAccounts",
      "apiVersion": "2023-04-15",
      "location": "West US",
      "properties": {
        "locations": [
          {
            "locationName": "West US"
          }
        ],
        "backupPolicy": { 
          "type": "Continuous" 
        }, 
        "databaseAccountOfferType": "Standard",
        "createMode": "Restore",
        "restoreParameters": {
            "restoreSource": "/subscriptions/1296c352-5d33-40d9-bc05-4d56dc2a7521/providers/Microsoft.DocumentDB/locations/West US/restorableDatabaseAccounts/4bcb9d82e-ec71-430b-b977-cd6641db85ad",
            "restoreMode": "PointInTime",
            "restoreTimestampInUtc": "2022-04-13T10:20:46Z",
             "tablesToRestore": [ 
                "table1", "table2" 
            ] 
        }
      }
    }
  ]
}

Затем разверните шаблон с помощью Azure PowerShell или Azure CLI. В следующем примере показано, как развернуть шаблон с помощью команды Azure CLI:

az deployment group create -g <ResourceGroup> --template-file <RestoreTemplateFilePath> 

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