Restaurer un compte Azure Cosmos DB qui utilise le mode de sauvegarde continue

S’APPLIQUE À : NoSQL MongoDB Gremlin Table

La fonctionnalité de restauration à un instant dans le passé d’Azure Cosmos DB vous permet de récupérer vos données après une modification accidentelle au sein d’un conteneur, de restaurer un compte, une base de données ou un conteneur supprimé, ou de restaurer dans n’importe quelle région (où des sauvegardes existent). Le mode de sauvegarde continue vous permet d’effectuer une restauration à n’importe quel instant dans le passé au cours des 30 derniers jours.

Cet article explique comment identifier l’heure de restauration et restaurer un compte Azure Cosmos DB actif ou supprimé. Il montre comment restaurer le compte à l’aide du portail Azure, de PowerShell, de CLI ou d’un modèle Azure Resource Manager.

Restaurer un compte à l’aide de portail Azure

Restaurer un compte actif à la suite d’une modification accidentelle

Vous pouvez utiliser Portail Azure pour restaurer un compte actif entier ou certaines bases de données et certains conteneurs sous celui-ci. Pour restaurer vos données, procédez comme suit :

  1. Connectez-vous au portail Azure.

  2. Accédez à votre compte Azure Cosmos DB et ouvrez le panneau Restauration à un instant dans le passé.

    Notes

    Le panneau de restauration du portail Azure n’est rempli que si vous disposez de l’autorisation Microsoft.DocumentDB/locations/restorableDatabaseAccounts/*/read. Pour en savoir plus sur la définition de cette autorisation, consultez l’article Autorisations de sauvegarde et de restauration.

  3. Renseignez les détails suivants pour la restauration :

    • Point de restauration (UTC) : Un timestamp au cours des 30 derniers jours. Le compte doit exister à cette date. Vous pouvez spécifier le point de restauration en heure UTC. Il peut être aussi proche de la seconde quand vous souhaitez le restaurer. Sélectionnez le lien Cliquez ici pour obtenir de l’aide sur l’identification du point de restauration.

    • Emplacement : Région de destination où le compte est restauré. Le compte doit exister dans cette région à l’horodatage donné (par exemple, USA Ouest ou USA Est). Un compte ne peut être restauré que dans les régions où le compte source existait.

    • Restaurer une ressource : Vous pouvez choisir soit Intégralité du compte, soit une base de données ou un conteneur à restaurer. Les bases de données et les conteneurs doivent exister à l’heure donnée. En fonction du point de restauration et de l’emplacement sélectionnés, les ressources de restauration sont renseignées, ce qui permet à l’utilisateur de sélectionner des bases de données ou des conteneurs spécifiques qui doivent être restaurés.

    • Groupe de ressources : Groupe de ressources sous lequel le compte cible sera créé et restauré. Le groupe de ressources doit déjà exister.

    • Restaurer le compte cible : Nom du compte cible. Le nom du compte cible doit respecter les mêmes instructions que lorsque vous créez un nouveau compte. Ce compte sera créé par le processus de restauration dans la même région que celle où se trouve votre compte source.

    Restore a live account from accidental modification Azure portal.

  4. Après avoir sélectionné les paramètres ci-dessus, sélectionnez le bouton Envoyer pour lancer une restauration. Le coût de restauration est une charge unique, qui est basée sur la taille des données et le coût du stockage de sauvegarde dans la région sélectionnée. Pour plus d’informations, consultez la section Tarification.

La suppression du compte source alors qu’une restauration est en cours peut entraîner l’échec de la restauration.

Horodatage restaurable pour les comptes actifs

Pour restaurer des comptes Azure Cosmos DB qui ne sont pas supprimés, il est conseillé de toujours identifier le dernier horodatage restaurable du conteneur. Vous pouvez ensuite utiliser cet horodatage pour restaurer la dernière version du compte.

Utiliser un flux d’événements pour identifier l’heure de la restauration

Lorsque vous renseignez l’heure de l’instant dans le passé dans le portail Azure, si vous avez besoin d’aide pour identifier le point de restauration, sélectionnez le lien Cliquez ici pour accéder au panneau du flux d’événements. Le flux d’événements fournit une liste complète des événements de création, de remplacement et de suppression sur les bases de données et les conteneurs du compte source.

Par exemple, si vous souhaitez effectuer une restauration au point précédant la suppression ou la mise à jour d’un conteneur donné, consultez ce flux d’événements. Les événements sont affichés dans l’ordre chronologique décroissant du moment où ils se sont produits, les événements récents se trouvant en haut de la liste. Vous pouvez parcourir les résultats et sélectionner l’heure avant ou après l’événement pour affiner encore davantage l’heure de votre choix.

Use event feed to identify the restore point time.

Remarque

Le flux d’événements n’affiche pas les modifications apportées aux ressources de l’élément. Vous pouvez toujours spécifier manuellement un timestamp au cours des 30 derniers jours (à condition que le compte existe à ce moment-là) pour la restauration.

Restaurer un compte supprimé

Vous pouvez utiliser Portail Azure pour restaurer complètement un compte supprimé dans les 30 jours suivant sa suppression. Pour restaurer un compte supprimé, procédez comme suit :

  1. Connectez-vous au portail Azure.

  2. Recherchez les ressources Azure Cosmos DB dans la barre de recherche globale. Elle répertorie tous vos comptes existants.

  3. Sélectionnez ensuite le bouton Restaurer. Le panneau Restaurer affiche la liste des comptes supprimés qui peuvent être restaurés pendant la période de rétention, qui est de 30 jours à partir de la date de suppression.

  4. Choisissez le compte que vous souhaitez restaurer.

    Restore a deleted account from Azure portal.

    Remarque

    Le panneau de restauration du portail Azure n’est rempli que si vous disposez de l’autorisation Microsoft.DocumentDB/locations/restorableDatabaseAccounts/*/read. Pour en savoir plus sur la définition de cette autorisation, consultez l’article Autorisations de sauvegarde et de restauration.

  5. Pour restaurer un compte supprimé, sélectionnez un compte à restaurer et entrez les informations suivantes :

    • Point de restauration (UTC) : Un timestamp au cours des 30 derniers jours. Le compte doit exister à cette date. Spécifiez le point de restauration en heure UTC. Il peut être aussi proche de la seconde quand vous souhaitez le restaurer.

    • Emplacement : Région de destination où le compte doit être restauré. Le compte source doit exister dans cette région à l’heure donnée. Par exemple : USA Ouest ou USA Est.

    • Groupe de ressources : Groupe de ressources sous lequel le compte cible sera créé et restauré. Le groupe de ressources doit déjà exister.

    • Restaurer le compte cible : Le nom du compte cible doit respecter les mêmes instructions que lorsque vous créez un nouveau compte. Ce compte sera créé par le processus de restauration dans la même région que celle où se trouve votre compte source.

Suivre l’état de l’opération de restauration

Après avoir lancé une opération de restauration, sélectionnez l’icône Notification en forme de cloche dans le coin supérieur droit du portail. Elle donne un lien qui affiche l’état du compte en cours de restauration. Pendant que la restauration est en cours, l’état du compte est En cours de création ; une fois l’opération de restauration terminée, l’état du compte devient En ligne.

The status of restored account changes from creating to online when the operation is complete.

Récupérer les détails de la restauration à partir du compte restauré

Une fois l’opération de restauration terminée, vous souhaiterez peut-être connaître les détails du compte source à partir duquel vous avez restauré, ou l’heure de la restauration.

Procédez comme suit pour récupérer les détails de la restauration à partir du portail Azure :

  1. Connectez-vous au portail Azure et accédez au compte restauré.

  2. Accédez au volet Exporter le modèle. Il ouvre un modèle JSON correspondant au compte restauré.

Restaurer un compte à l’aide d’Azure PowerShell

Avant de restaurer le compte, installez la dernière version d’Azure PowerShell ou une version supérieure à 9.6.0. Connectez-vous ensuite à votre compte Azure et sélectionnez l’abonnement requis avec les commandes suivantes :

  1. Connectez-vous à Azure en utilisant la commande suivante :

    Connect-AzAccount
    
  2. Sélectionnez un abonnement spécifique avec la commande suivante :

    Select-AzSubscription -Subscription <SubscriptionName>
    

Déclencher une opération de restauration pour le compte API pour NoSQL

L’applet de commande suivante est un exemple qui permet de déclencher une opération de restauration avec la commande Restore à l’aide du compte cible, du compte source, de l’emplacement, du groupe de ressources, PublicNetworkAccess et du timestamp :


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

Exemple 1 : Restauration de l'intégralité du compte :


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

Si PublicNetworkAccess n’est pas défini, le compte restauré est accessible depuis le réseau public, veillez à passer Disabled à l’option PublicNetworkAccess pour désactiver l’accès au réseau public pour le compte restauré.

Remarque

Pour une restauration avec accès au réseau public désactivé, la version stable minimale de Az.CosmosDB requise est 1.12.0.

Exemple 2 : Restauration de collections et de bases de données spécifiques. Cet exemple restaure les collections MyCol1, MyCol2 à partir de MyDB1 et la totalité de la base de données MyDB2, qui comprend tous les conteneurs sous celui-ci.

$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"

Exemple 3 : Restauration du compte API pour Gremlin. Cet exemple restaure les collections graph1, graph2 à partir de MyDB1 et la totalité de la base de données MyDB2, qui comprend tous les conteneurs sous celui-ci.

$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"

Exemple 4 : Restauration du compte API pour Table. Cet exemple restaure les tables table1, table1 à partir de 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"

Pour restaurer un compte continu configuré avec une identité managée à l’aide de l’interface CLI

Pour restaurer un compte continu de clé gérée par le client (CMK), reportez-vous aux étapes fournies ici

Récupérer les détails de la restauration à partir du compte restauré

Importez la version 1.12.0 du module Az.CosmosDB et exécutez la commande suivante pour obtenir les détails de la restauration. Le restoreTimestamp se trouve sous l’objet restoreParameters :

Get-AzCosmosDBAccount -ResourceGroupName MyResourceGroup -Name MyCosmosDBDatabaseAccount 

Énumérer les ressources restaurables pour l’API pour NoSQL

Les cmdlets d’énumération vous aident à découvrir les ressources disponibles pour la restauration à différents moments. En outre, elles fournissent également un flux d’événements clés sur les ressources du compte, des bases de données et des conteneurs restaurables.

Répertorier tous les comptes qui peuvent être restaurés dans l’abonnement actuel

Exécutez la commande PowerShell Get-AzCosmosDBRestorableDatabaseAccount pour répertorier tous les comptes qui peuvent être restaurés dans l’abonnement actuel.

La réponse comprend tous les comptes de base de données (à la fois actifs et supprimés) qui peuvent être restaurés et les régions à partir desquelles ils peuvent être restaurés.

{
    "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"
  }

À l’instar de l’heure CreationTime ou DeletionTime pour le compte, il y a également une heure CreationTime ou DeletionTime pour la région. Ces heures vous permettent de choisir la bonne région et une plage horaire valide pour restaurer dans cette région.

Répertorier toutes les versions des bases de données SQL dans un compte de base de données actif

La liste de toutes les versions de bases de données vous permet de choisir la base de données appropriée dans un scénario où le moment réel de l'existence de la base de données est inconnu.

Exécutez la commande PowerShell suivante pour répertorier toutes les versions des bases de données. Cette commande fonctionne uniquement avec des comptes actifs. Les paramètres DatabaseAccountInstanceId et Location sont obtenus à partir des propriétés name et location dans la réponse de l’applet de commande Get-AzCosmosDBRestorableDatabaseAccount. L’attribut DatabaseAccountInstanceId fait référence à la propriété instanceId du compte de base de données source en cours de restauration :


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

Répertorier toutes les versions des conteneurs SQL d’une base de données dans un compte de base de données actif

Utilisez la commande suivante pour répertorier toutes les versions des conteneurs SQL. Cette commande fonctionne uniquement avec des comptes actifs. Le paramètre DatabaseRId est le ResourceId de la base de données que vous souhaitez restaurer. Il s’agit de la valeur de l’attribut ownerResourceid trouvé dans la réponse de l’applet de commande Get-AzCosmosdbSqlRestorableDatabase. La réponse inclut également la liste des opérations effectuées sur tous les conteneurs de cette base de données.


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

Rechercher des bases de données ou des conteneurs qui peuvent être restaurés à une heure donnée

Utilisez la commande suivante pour récupérer la liste des bases de données ou des conteneurs qui peuvent être restaurés à une heure donnée. Cette commande fonctionne uniquement avec des comptes actifs.


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

Énumérer les ressources restaurables dans l’API pour MongoDB

Les commandes d’énumération décrites ci-dessous vous aident à découvrir les ressources disponibles pour la restauration à différents moments. En outre, elles fournissent également un flux d’événements clés sur les ressources du compte, des bases de données et des conteneurs restaurables. Ces commandes ne fonctionnent que pour les comptes actifs et sont similaires aux commandes de l’API pour NoSQL, mais avec MongoDB dans le nom de la commande au lieu de sql.

Répertorier toutes les versions des bases de données MongoDB dans un compte de base de données actif


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

Répertorier toutes les versions des collections MongoDB d’une base de données dans un compte de base de données actif


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

Répertorier toutes les ressources d’un compte de base de données MongoDB qui peuvent être restaurées à une heure et dans une région données


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

Énumérer les ressources restaurables pour l’API pour Gremlin

Les cmdlets d’énumération vous aident à découvrir les ressources disponibles pour la restauration à différents moments. En outre, elles fournissent également un flux d’événements clés sur les ressources du compte, des bases de données et des conteneurs restaurables.

Répertorier toutes les versions des bases de données Gremlin dans un compte de base de données actif

La liste de toutes les versions de bases de données vous permet de choisir la base de données appropriée dans un scénario où le moment réel de l'existence de la base de données est inconnu. Exécutez la commande PowerShell suivante pour répertorier toutes les versions des bases de données. Cette commande fonctionne uniquement avec des comptes actifs. Les paramètres DatabaseAccountInstanceId et Location sont obtenus à partir des propriétés name et location dans la réponse de l’applet de commande Get-AzCosmosDBRestorableDatabaseAccount. L’attribut DatabaseAccountInstanceId fait référence à la propriété instanceId du compte de base de données source en cours de restauration :

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

Répertorier toutes les versions des conteneurs Gremlin d’une base de données dans un compte de base de données actif

Utilisez la commande suivante pour répertorier toutes les versions des graphiques de l'API pour Gremlin. Cette commande fonctionne uniquement avec des comptes actifs. Le paramètre DatabaseRId est le ResourceId de la base de données que vous souhaitez restaurer. Il s’agit de la valeur de l’attribut ownerResourceid trouvé dans la réponse de l’applet de commande Get-AzCosmosdbGremlinRestorableDatabase. La réponse inclut également la liste des opérations effectuées sur tous les conteneurs de cette base de données.

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

Rechercher des bases de données ou des conteneurs qui peuvent être restaurés à une heure donnée

Utilisez la commande suivante pour récupérer la liste des bases de données ou des conteneurs qui peuvent être restaurés à une heure donnée. Cette commande fonctionne uniquement avec des comptes actifs.

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

Énumérer les ressources restaurables pour l’API pour Table

Les cmdlets d’énumération vous aident à découvrir les ressources disponibles pour la restauration à différents moments. En outre, elles fournissent également un flux d’événements clés sur les ressources du compte, des bases de données et des conteneurs restaurables.

Listez toutes les versions des tables d'une base de données dans un compte de base de données en direct

Utilisez la commande suivante pour répertorier toutes les versions des tables. Cette commande fonctionne uniquement avec des comptes actifs.

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

Rechercher des bases de données qui peuvent être restaurés à une heure donnée

Utilisez la commande suivante pour récupérer la liste des bases de données qui peuvent être restaurés à une heure donnée. Cette commande fonctionne uniquement avec des comptes actifs.

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

Restaurer un compte à l’aide d’Azure CLI

Avant de restaurer le compte, installez Azure CLI en procédant comme suit :

  1. Installez la dernière version d’Azure CLI.

    • Installez la dernière version d'Azure CLI ou une version supérieure à 2.52.0.
    • Si vous avez déjà installé l’interface CLI, exécutez la commande az upgrade pour effectuer la mise à jour vers la dernière version. Cette commande ne fonctionnera qu'avec la version CLI supérieure à 2.52.0. Si vous disposez d’une version antérieure, utilisez le lien ci-dessus pour installer la dernière version.
  2. Se connecter et sélectionner votre abonnement

    • Connectez-vous à votre compte Azure avec la commande az login.
    • Sélectionnez l’abonnement requis à l’aide de la commande az account set -s <subscriptionguid>.

Déclencher une opération de restauration avec Azure CLI

La façon la plus simple de déclencher une restauration consiste à lancer la commande de restauration avec le nom du compte cible, le compte source, l’emplacement, le groupe de ressources, le timestamp (UTC) et éventuellement les noms de la base de données et du conteneur. Voici quelques exemples pour déclencher l’opération de restauration :

Créez un compte Azure Cosmos DB en le restaurant à partir d’un compte existant


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

Si --public-network-access n’est pas défini, le compte restauré est accessible à partir du réseau public. Assurez-vous de faire passer l’option de Disabled à --public-network-access pour empêcher l’accès au réseau public pour le compte restauré.

Remarque

Pour une restauration avec accès au réseau public désactivé, la version stable minimale de azure-cli est 2.52.0.

Créez un compte Azure Cosmos DB en restaurant uniquement les bases de données et les conteneurs sélectionnés à partir d’un compte de base de données existant


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

Créer un compte API pour Gremlin Azure Cosmos DB en restaurant uniquement les bases de données et graphiques sélectionnés à partir d’un compte API pour Gremlin existant


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 

Créez un compte d’API pour Table Azure Cosmos DB en restaurant uniquement les tables sélectionnées à partir d’un compte API pour Table existant


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 

Récupérer les détails de la restauration à partir du compte restauré

Exécutez la commande suivante pour récupérer les détails de la restauration. La sortie de la commande az cosmosdb show affiche la valeur de la propriété createMode. Si la valeur est définie sur Restaurer, elle indique que le compte a été restauré à partir d’un autre compte. La propriété restoreParameters contient des détails supplémentaires, tels que restoreSource, qui a l’ID de compte source. Le dernier GUID du paramètre restoreSource est celui instanceId du compte source. Et le restoreTimestamp sera sous l’objet restoreParameters :

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

Énumérer les ressources restaurables pour l’API pour NoSQL

Les commandes d’énumération décrites ci-dessous vous aident à découvrir les ressources disponibles pour la restauration à différents moments. En outre, elles fournissent également un flux d’événements clés sur les ressources du compte, des bases de données et des conteneurs restaurables.

Répertorier tous les comptes qui peuvent être restaurés dans l’abonnement actuel

Exécutez la commande Azure CLI suivante pour répertorier tous les comptes qui peuvent être restaurés dans l'abonnement actuel

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

La réponse comprend tous les comptes de base de données (actifs et supprimés) qui peuvent être restaurés, ainsi que les régions à partir desquelles ils peuvent être restaurés :

{
    "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"
  }

À l’instar de l’heure CreationTime ou DeletionTime pour le compte, il y a également une heure CreationTime ou DeletionTime pour la région. Ces heures vous permettent de choisir la bonne région et une plage horaire valide pour restaurer dans cette région.

Répertorier toutes les versions des bases de données dans un compte de base de données actif

L’énumération de toutes les versions de bases de données vous permet de choisir la base de données appropriée dans un scénario où le moment réel de l’existence de la base de données est inconnu.

Exécutez la commande Azure CLI suivante pour répertorier toutes les versions des bases de données. Cette commande fonctionne uniquement avec des comptes actifs. Les paramètres instance-id et location sont obtenus à partir des propriétés name et location dans la réponse de la commande az cosmosdb restorable-database-account list. L'attribut instanceId est également une propriété du compte de la base de données source qui est restauré :

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

Cette sortie de commande indique désormais quand une base de données a été créée et supprimée.

[
  {
    "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=="
    },
   ..
  }
]

Répertorier toutes les versions des conteneurs SQL d’une base de données dans un compte de base de données actif

Utilisez la commande suivante pour répertorier toutes les versions des conteneurs SQL. Cette commande fonctionne uniquement avec des comptes actifs. Le paramètre database-rid est le ResourceId de la base de données que vous souhaitez restaurer. Il s’agit de la valeur de l’attribut ownerResourceid trouvé dans la réponse de la commande 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"

Cette sortie de commande affiche la liste des opérations effectuées sur tous les conteneurs de cette base de données :

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

Rechercher des bases de données ou des conteneurs qui peuvent être restaurés à une heure donnée

Utilisez la commande suivante pour récupérer la liste des bases de données ou des conteneurs qui peuvent être restaurés à une heure donnée. Cette commande fonctionne uniquement avec des comptes actifs.


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"
  }
]

Énumérer les ressources restaurables pour le compte d’API pour MongoDB

Les commandes d’énumération décrites ci-dessous vous aident à découvrir les ressources disponibles pour la restauration à différents moments. En outre, elles fournissent également un flux d’événements clés sur les ressources du compte, des bases de données et des conteneurs restaurables. Ces commandes fonctionnent uniquement pour les comptes actifs.

Répertorier toutes les versions des bases de données MongoDB dans un compte de base de données actif

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

Répertorier toutes les versions des collections MongoDB d’une base de données dans un compte de base de données actif

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

Répertorier toutes les ressources d’un compte de base de données mongodb qui peuvent être restaurées à une heure et dans une région données

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"

Répertorier toutes les versions des bases de données dans un compte de base de données actif

Les commandes d’énumération décrites ci-dessous vous aident à découvrir les ressources disponibles pour la restauration à différents moments. En outre, elles fournissent également un flux d’événements clés sur les ressources du compte, des bases de données et des conteneurs restaurables. Ces commandes fonctionnent uniquement pour les comptes actifs.

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

Cette sortie de commande indique désormais quand une base de données a été créée et supprimée.

[ { 
    "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" 
    
  } 
] 

Répertorier toutes les versions des conteneurs Gremlin d’une base de données dans un compte de base de données actif

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

Cette sortie de commande affiche la liste des opérations effectuées sur tous les conteneurs de cette base de données :

[ { 

    "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" 
  } 
] 

Rechercher des bases de données ou des conteneurs qui peuvent être restaurés à une heure donnée

 
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" ]

  } 
] 

Énumérer les ressources restaurables pour le compte API pour Table

Les commandes d’énumération décrites ci-dessous vous aident à découvrir les ressources disponibles pour la restauration à différents moments. En outre, elles fournissent également un flux d'événements clés sur les ressources restaurables de compte et d’API pour Table. Ces commandes fonctionnent uniquement pour les comptes actifs.

Lister toutes les versions des tables dans un compte de base de données en direct

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"

  }, 
] 

Liste de toutes les ressources d'un compte de l'API pour Table qui sont disponibles pour être restaurées à un moment donné et dans une région donnée

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"

  ] 
} 

Restauration à l'aide du modèle Azure Resource Manager

Vous pouvez également restaurer un compte en utilisant le modèle Azure Resource Manager (ARM). Lorsque vous définissez le modèle, incluez les paramètres suivants :

Restaurer l’API pour le compte NoSQL ou MongoDB à l’aide d’un modèle ARM

  1. Définissez le paramètre createMode sur Restore.
  2. Définissez le paramètre restoreParameters, et notez que la valeur de restoreSource est extraite de la sortie de la commande az cosmosdb restorable-database-account list pour votre compte source. L’attribut ID d’instance de votre nom de compte est utilisé pour effectuer la restauration.
  3. Définissez le paramètre restoreMode sur PointInTime et configurez la valeur restoreTimestampInUtc.

Utilisez le modèle ARM suivant pour restaurer un compte pour l’API Azure Cosmos DB pour NoSQL ou MongoDB. Des exemples pour d’autres API sont fournis ci-dessous.

{
  "$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"
        }
      }
    }
  ]
}

Restaurer un compte d’API pour Gremlin à l’aide d’un modèle 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" 
                ] 
            }]
        }
      }
    }
  ]
}

Restaurer un compte d’API pour Table à l’aide d’un modèle 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" 
            ] 
        }
      }
    }
  ]
}

Ensuite, déployez le modèle en utilisant Azure PowerShell ou Azure CLI. L'exemple suivant montre comment déployer le modèle avec une commande Azure CLI :

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

Étapes suivantes