Ripristinare un account Azure Cosmos DB che usa la modalità di backup continuo

SI APPLICA A: NoSQL MongoDB Gremlin Tabella

La funzionalità di ripristino temporizzato di Azure Cosmos DB consente di eseguire il ripristino da una modifica accidentale in un contenitore per ripristinare un account, un database o un contenitore eliminato oppure per eseguire il ripristino in un'area, in cui esistono i backup. La modalità di backup continuo consente di eseguire il ripristino a qualsiasi momento negli ultimi 30 giorni.

Questo articolo descrive come identificare l'ora di ripristino e ripristinare un account Azure Cosmos DB attivo o eliminato. Illustra come ripristinare l'account usando il portale di Azure, PowerShell, l'interfaccia della riga di comando o un modello di Azure Resource Manager.

Ripristinare un account usando il portale di Azure

Ripristinare un account attivo da modifiche accidentali

È possibile usare il portale di Azure per ripristinare un intero account attivo o database e contenitori selezionati in esso contenuti. Per ripristinare i dati, seguire questa procedura:

  1. Accedere al portale di Azure.

  2. Passare all'account Azure Cosmos DB e aprire il pannello Ripristino temporizzato.

    Nota

    Il pannello di ripristino nel portale di Azure viene popolato solo se si dispone dell'autorizzazione Microsoft.DocumentDB/locations/restorableDatabaseAccounts/*/read. Per altre informazioni su come impostare questa autorizzazione, vedere l'articolo Autorizzazioni di backup e ripristino.

  3. Compilare i dettagli seguenti per il ripristino:

    • Punto di ripristino (UTC): un timestamp negli ultimi 30 giorni. L'account deve esistere in quel timestamp. È possibile specificare il punto di ripristino in formato UTC. Può avvicinarsi al secondo del momento in cui si vuole eseguire il ripristino. Selezionare il collegamento Fare clic qui per ottenere informazioni su come identificare il punto di ripristino.

    • Posizione: l'area di destinazione in cui viene ripristinato l'account. L'account deve esistere in questa area nel timestamp specificato, ad esempio Stati Uniti occidentali o Stati Uniti orientali. Un account può essere ripristinato solo nelle aree in cui era presente l'account di origine.

    • Risorsa di ripristino: è possibile scegliere un intero account o un database/contenitore selezionato da ripristinare. I database e i contenitori devono esistere nel timestamp specificato. In base al punto di ripristino e alla posizione selezionata, vengono popolate le risorse di ripristino, consentendo all'utente di selezionare database o contenitori specifici da ripristinare.

    • Gruppo di risorse: gruppo di risorse in cui verrà creato e ripristinato l'account di destinazione. Il gruppo di risorse deve già esistere.

    • Account di destinazione di ripristino: nome dell'account di destinazione. Il nome dell'account di destinazione deve seguire le stesse linee guida seguite durante la creazione di un nuovo account. Questo account verrà creato dal processo di ripristino nella stessa area in cui è presente l'account di origine.

    Ripristinare un account live da modifiche accidentali portale di Azure.

  4. Dopo aver selezionato i parametri precedenti, selezionare il pulsante Invia per avviare un ripristino. Il costo del ripristino è un addebito una tantum, basato sulle dimensioni dei dati e sul costo dell'archivio di backup nell'area selezionata. Per altre informazioni, vedere la sezione Prezzi.

L'eliminazione dell'account di origine mentre è in corso un ripristino potrebbe causare un errore di ripristino.

Timestamp ripristinabile per gli account attivi

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

Usare il feed di eventi per identificare l'ora di ripristino

Quando si compila l'ora del punto di ripristino nel portale di Azure, se è necessaria assistenza per identificare il punto di ripristino, selezionare il collegamento Fare clic qui collegamento per passare al pannello del feed di eventi. Il feed di eventi fornisce un elenco estremamente fedele degli eventi di creazione, sostituzione, eliminazione nei database e nei contenitori dell'account di origine.

Ad esempio, se si vuole eseguire il ripristino del punto precedente all'eliminazione o all'aggiornamento di un determinato contenitore, controllare questo feed di eventi. Gli eventi vengono visualizzati in ordine cronologico decrescente del momento in cui si sono verificati, con gli eventi recenti all'inizio. È possibile esplorare i risultati e selezionare l'ora precedente o successiva all'evento per restringere ulteriormente l'intervallo di tempo.

Usare il feed di eventi per identificare il punto di ripristino.

Nota

Il feed di eventi non mostra le modifiche apportate alle risorse dell'elemento. È sempre possibile specificare manualmente un timestamp negli ultimi 30 giorni (purché esista un account in quel momento) per il ripristino.

Ripristinare un account eliminato

È possibile usare il portale di Azure per ripristinare completamente un account eliminato entro 30 giorni dall'eliminazione. Usare la procedura seguente per ripristinare un account eliminato:

  1. Accedere al portale di Azure.

  2. Cercare le risorse di Azure Cosmos DB nella barra di ricerca globale. Vengono elencati tutti gli account esistenti.

  3. Selezionare quindi il pulsante Ripristinare. Il pannello Ripristinare mostra un elenco di account eliminati che possono essere ripristinati entro il periodo di conservazione, ovvero 30 giorni dall'ora di eliminazione.

  4. Scegliere l'account che si desidera ripristinare.

    Ripristinare un account eliminato da portale di Azure.

    Nota

    Il pannello di ripristino nel portale di Azure viene popolato solo se si dispone dell'autorizzazione Microsoft.DocumentDB/locations/restorableDatabaseAccounts/*/read. Per altre informazioni su come impostare questa autorizzazione, vedere l'articolo Autorizzazioni di backup e ripristino.

  5. Selezionare un account da ripristinare e immettere i dettagli seguenti per ripristinare un account eliminato:

    • Punto di ripristino (UTC): un timestamp negli ultimi 30 giorni. L'account doveva esistere in quel timestamp. Specificare il punto di ripristino in formato UTC. Può avvicinarsi al secondo del momento in cui si vuole eseguire il ripristino.

    • Posizione: l'area di destinazione in cui deve essere ripristinato l'account. L'account di origine deve esistere in questa area in corrispondenza del timestamp specificato. Esempio Stati Uniti occidentali o Stati Uniti orientali.

    • Gruppo di risorse: gruppo di risorse in cui verrà creato e ripristinato l'account di destinazione. Il gruppo di risorse deve già esistere.

    • Account di destinazione di ripristino: il nome dell'account di destinazione deve seguire le stesse linee guida seguite durante la creazione di un nuovo account. Questo account verrà creato dal processo di ripristino nella stessa area in cui è presente l'account di origine.

Tenere traccia dello stato dell'operazione di ripristino

Dopo aver avviato un'operazione di ripristino, selezionare l'icona a forma di campanello Notifica nell'angolo in alto a destra del portale. Questa fornisce un collegamento che mostra lo stato dell'account da ripristinare. Mentre il ripristino è in corso, lo stato dell'account sarà Creazione in corso. Al termine dell'operazione di ripristino, lo stato dell'account verrà modificato in Online.

Lo stato dell'account ripristinato passa dalla creazione a online al termine dell'operazione.

Ottenere i dettagli di ripristino dall'account ripristinato

Al termine dell'operazione di ripristino, è possibile conoscere i dettagli dell'account di origine da cui è stato eseguito il ripristino o l'ora del ripristino.

Usare la procedura seguente per ottenere i dettagli di ripristino dal portale di Azure:

  1. Accedere al portale di Azure e passare all'account ripristinato.

  2. Passare al riquadro Esporta il modello. SI apre un modello JSON, corrispondente all'account ripristinato.

Ripristinare un account usando Azure PowerShell

Prima di ripristinare l'account, installare la versione più recente di Azure PowerShell o una versione successiva alla 9.6.0. Connettersi quindi all'account Azure e selezionare la sottoscrizione necessaria con i comandi seguenti:

  1. Accedere ad Azure usando il comando seguente:

    Connect-AzAccount
    
  2. Selezionare una sottoscrizione specifica con il comando seguente:

    Select-AzSubscription -Subscription <SubscriptionName>
    

Attivare un'operazione di ripristino per l'account API per NoSQL

Il cmdlet seguente è un esempio per attivare un'operazione di ripristino con il comando restore usando l'account di destinazione, l'account di origine, la posizione, il gruppo di risorse, PublicNetworkAccess, DisableTtl e il timestamp:


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

Esempio 1: ripristino dell'intero account:


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


Se PublicNetworkAccess non è impostato, l'account ripristinato è accessibile dalla rete pubblica. Assicurarsi di passare a Disabled per l'opzione PublicNetworkAccess per disabilitare l'accesso alla rete pubblica per l'account ripristinato. L'impostazione di DisableTtl su $true garantisce che la durata (TTL) sia disabilitata nell'account ripristinato, senza che il parametro ripristini l'account con TTL abilitato se è stato impostato in precedenza.

Nota

Per il ripristino con accesso alla rete pubblica disabilitata, la versione minima stabile di Az.CosmosDB necessaria è la versione 1.12.0.

Esempio 2: ripristino di raccolte e database specifici. In questo esempio vengono ripristinate le raccolte MyCol1, MyCol2 da MyDB1 e dall'intero database MyDB2, che include tutti i contenitori al suo interno.

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

Esempio 3: ripristino dell'account API per Gremlin. In questo esempio vengono ripristinati i grafi graph1, graph2 da MyDB1 e dall'intero database MyDB2, che include tutti i contenitori al suo interno.

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

Esempio 4: ripristino dell'account API per tabelle. In questo esempio vengono ripristinate le tabelle table1, table1 da 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"

Ripristinare un account continuo configurato con l'identità gestita tramite l'interfaccia della riga di comando

Per ripristinare l'account continuo della chiave gestita dal cliente, vedere i passaggi indicati qui

Ottenere i dettagli di ripristino dall'account ripristinato

Importare il modulo Az.CosmosDB, versione 1.12.0, ed eseguire il comando seguente per ottenere i dettagli di ripristino. restoreTimestamp si troverà nell'oggetto restoreParameters:

Get-AzCosmosDBAccount -ResourceGroupName MyResourceGroup -Name MyCosmosDBDatabaseAccount 

Enumerare le risorse ripristinabili per l'API per NoSQL

I cmdlet di enumerazione consentono di individuare le risorse disponibili per il ripristino in vari timestamp. Inoltre, forniscono anche un feed degli eventi chiave nelle risorse di account, database e contenitore ripristinabili.

Elencare tutti gli account che possono essere ripristinati nella sottoscrizione corrente

Eseguire il comando di PowerShell Get-AzCosmosDBRestorableDatabaseAccount per elencare tutti gli account che possono essere ripristinati nella sottoscrizione corrente.

La risposta include tutti gli account di database (sia attivi che eliminati) che possono essere ripristinati e le aree da cui è possibile ripristinarli.

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

Proprio come CreationTime o DeletionTime per l'account, CreationTime o DeletionTime esistono anche per l'area. Questi orari consentono di scegliere l'area corretta e un intervallo di tempo valido per eseguire il ripristino in tale area.

Elencare tutte le versioni dei database SQL in un account di database attivo

Elencare tutte le versioni dei database consente di scegliere il database corretto in uno scenario in cui il tempo effettivo di esistenza del database non è noto.

Eseguire il comando di PowerShell seguente per elencare tutte le versioni dei database. Questo comando funziona solo con gli account attivi. I parametri DatabaseAccountInstanceId e Location sono ottenuti dalle proprietà name e location nella risposta del cmdlet Get-AzCosmosDBRestorableDatabaseAccount. L'attributo DatabaseAccountInstanceId fa riferimento alla proprietà instanceId dell'account del database di origine da ripristinare:


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

Elencare tutte le versioni dei contenitori SQL di un database in un account di database attivo

Usare il comando seguente per elencare tutte le versioni dei contenitori SQL. Questo comando funziona solo con gli account attivi. Il parametro DatabaseRId è il ResourceId del database da ripristinare. È il valore dell'attributo ownerResourceid individuato nella risposta del cmdlet Get-AzCosmosdbSqlRestorableDatabase. La risposta include anche un elenco di operazioni eseguite in tutti i contenitori all'interno di questo database.


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

Individuare i database o i contenitori che possono essere ripristinati in qualsiasi timestamp

Usare il comando seguente per ottenere l'elenco di database o contenitori che possono essere ripristinati in un determinato timestamp. Questo comando funziona solo con gli account attivi.


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

Enumerare le risorse ripristinabili nell'API per MongoDB

I comandi di enumerazione descritti di seguito consentono di individuare le risorse disponibili per il ripristino in vari timestamp. Inoltre, forniscono anche un feed degli eventi chiave nelle risorse di account, database e contenitore ripristinabili. Questi comandi funzionano solo per gli account attivi e sono simili ai comandi di API per NoSQL, ma con MongoDB anziché sql nel nome del comando.

Elencare tutte le versioni dei database MongoDB in un account di database attivo


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

Elencare tutte le versioni delle raccolte MongoDB di un database in un account di database attivo


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

Elencare tutte le risorse di un account di database MongoDB disponibili per il ripristino in un determinato timestamp e in una determinata area


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

Enumerare le risorse ripristinabili per l'API per Gremlin

I cmdlet di enumerazione consentono di individuare le risorse disponibili per il ripristino in vari timestamp. Inoltre, forniscono anche un feed degli eventi chiave nelle risorse di account, database e grafo ripristinabili.

Elencare tutte le versioni dei database Gremlin in un account di database attivo

Elencare tutte le versioni dei database consente di scegliere il database corretto in uno scenario in cui il tempo effettivo di esistenza del database non è noto. Eseguire il comando di PowerShell seguente per elencare tutte le versioni dei database. Questo comando funziona solo con gli account attivi. I parametri DatabaseAccountInstanceId e Location sono ottenuti dalle proprietà name e location nella risposta del cmdlet Get-AzCosmosDBRestorableDatabaseAccount. L'attributo DatabaseAccountInstanceId fa riferimento alla proprietà instanceId dell'account del database di origine da ripristinare:

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

Elencare tutte le versioni dei grafi Gremlin di un database in un account di database attivo

Usare il comando seguente per elencare tutte le versioni dei grafi di API per Gremlin. Questo comando funziona solo con gli account attivi. Il parametro DatabaseRId è il ResourceId del database da ripristinare. È il valore dell'attributo ownerResourceid individuato nella risposta del cmdlet Get-AzCosmosdbGremlinRestorableDatabase. La risposta include anche un elenco di operazioni eseguite su tutti i grafii all'interno di questo database.

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

Individuare database o grafi che possono essere ripristinati in un determinato timestamp

Usare il comando seguente per ottenere l'elenco di database o grafi che possono essere ripristinati in un determinato timestamp. Questo comando funziona solo con gli account attivi.

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

Enumerare le risorse ripristinabili per l'API per tabelle

I cmdlet di enumerazione consentono di individuare le risorse disponibili per il ripristino in vari timestamp. Inoltre, forniscono anche un feed degli eventi chiave nelle risorse di account e tabelle ripristinabili.

Elencare tutte le versioni delle tabelle di un database in un account di database attivo

Usare il comando seguente per elencare tutte le versioni delle tabelle. Questo comando funziona solo con gli account attivi.

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

Individuare le tabelle che possono essere ripristinate in un determinato timestamp

Usare il comando seguente per ottenere l'elenco delle tabelle che possono essere ripristinati in un determinato timestamp. Questo comando funziona solo con gli account attivi.

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

Ripristinare un account usando l'interfaccia della riga di comando di Azure

Prima di ripristinare l'account, installare l'interfaccia della riga di comando di Azure seguendo questa procedura:

  1. Installare la versione più recente dell'interfaccia della riga di comando di Azure

    • Installare la versione più recente dell'interfaccia della riga di comando di Azure o una versione successiva alla 2.52.0.
    • Se l'interfaccia della riga di comando è già installata, eseguire il comando az upgrade per eseguire l'aggiornamento alla versione più recente. Questo comando funziona solo con la versione dell'interfaccia della riga di comando successiva alla versione 2.52.0. Se si dispone di una versione precedente, usare il collegamento precedente per installare la versione più recente.
  2. Eseguire l'accesso e selezionare la sottoscrizione

    • Accedere all'account Azure con il comando az login.
    • Selezionare la sottoscrizione richiesta usando il comando az account set -s <subscriptionguid>.

Attivare un'operazione di ripristino con l'interfaccia della riga di comando di Azure

Il modo più semplice per attivare un ripristino consiste nell'eseguire il comando di ripristino con il nome dell'account di destinazione, l'account di origine, la posizione, il gruppo di risorse, il timestamp (in formato UTC) e facoltativamente i nomi del database e del contenitore. Di seguito sono riportati alcuni esempi per attivare l'operazione di ripristino:

Creare un nuovo account Azure Cosmos DB eseguendo il ripristino da un account esistente


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 

Se --public-network-access non è impostato, l'account ripristinato è accessibile dalla rete pubblica. Assicurarsi di passare a Disabled per l'opzione --public-network-access per impedire l'accesso alla rete pubblica per l'account ripristinato. L'impostazione di disable-ttl su su $true garantisce che il TTL sia disabilitato nell'account ripristinato e che non fornisca questo parametro ripristina l'account con TTL abilitato se è stato impostato in precedenza.

Nota

Per il ripristino con accesso alla rete pubblica disabilitata, la versione minima stabile di azure-cli è la versione 2.52.0.

Creare un nuovo account Azure Cosmos DB ripristinando solo i database e i contenitori selezionati da un account di database esistente


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

Creare un nuovo account API per Gremlin di Azure Cosmos DB ripristinando solo i database e i grafi selezionati da un account API per Gremlin esistente


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 

Creare un nuovo account API per tabelle di Azure Cosmos DB ripristinando solo le tabelle selezionate da un account API per tabelle esistente


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 

Ottenere i dettagli di ripristino dall'account ripristinato

Eseguire il comando seguente per ottenere i dettagli di ripristino. L'output del comando az cosmosdb show mostra il valore della proprietà createMode. Se il valore è impostato su Ripristino, significa che l'account è stato ripristinato da un altro account. La proprietà restoreParameters include altri dettagli, ad esempio restoreSource, con l'ID dell'account di origine. L'ultimo GUID nel parametro restoreSource è il valore di instanceId dell'account di origine. E restoreTimestamp sarà nell'oggetto restoreParameters:

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

Enumerare le risorse ripristinabili per l'API per NoSQL

I comandi di enumerazione descritti di seguito consentono di individuare le risorse disponibili per il ripristino in vari timestamp. Inoltre, forniscono anche un feed degli eventi chiave nelle risorse di account, database e contenitore ripristinabili.

Elencare tutti gli account che possono essere ripristinati nella sottoscrizione corrente

Eseguire il comando dell'interfaccia della riga di comando di Azure seguente per elencare tutti gli account che possono essere ripristinati nella sottoscrizione corrente

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

La risposta include tutti gli account di database (sia attivi che eliminati) che possono essere ripristinati e le aree da cui è possibile ripristinarli:

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

Proprio come CreationTime o DeletionTime per l'account, CreationTime o DeletionTime esistono anche per l'area. Questi orari consentono di scegliere l'area corretta e un intervallo di tempo valido per eseguire il ripristino in tale area.

Elencare tutte le versioni dei database in un account di database attivo

Elencare tutte le versioni dei database consente di scegliere il database corretto in uno scenario in cui il tempo effettivo di esistenza del database non è noto.

Eseguire il comando dell'interfaccia della riga di comando di Azure seguente per elencare tutte le versioni dei database. Questo comando funziona solo con gli account attivi. I parametri instance-id e location sono ottenuti dalle proprietà name e location nella risposta del comando az cosmosdb restorable-database-account list. Anche l'attributo instanceId è una proprietà dell'account del database di origine da ripristinare:

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

Questo output del comando mostra ora quando un database è stato creato ed eliminato.

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

Elencare tutte le versioni dei contenitori SQL di un database in un account di database attivo

Usare il comando seguente per elencare tutte le versioni dei contenitori SQL. Questo comando funziona solo con gli account attivi. Il parametro database-rid è il ResourceId del database da ripristinare. È il valore dell'attributo ownerResourceid individuato nella risposta del comando 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"

Questo output del comando include un elenco di operazioni eseguite in tutti i contenitori all'interno di questo database:

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

Individuare i database o i contenitori che possono essere ripristinati in qualsiasi timestamp

Usare il comando seguente per ottenere l'elenco di database o contenitori che possono essere ripristinati in un determinato timestamp. Questo comando funziona solo con gli account attivi.


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

Enumerare le risorse ripristinabili per l'account API per MongoDB

I comandi di enumerazione descritti di seguito consentono di individuare le risorse disponibili per il ripristino in vari timestamp. Inoltre, forniscono anche un feed degli eventi chiave nelle risorse di account, database e contenitore ripristinabili. Questi comandi funzionano solo per gli account attivi.

Elencare tutte le versioni dei database MongoDB in un account di database attivo

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

Elencare tutte le versioni delle raccolte MongoDB di un database in un account di database attivo

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

Elencare tutte le risorse di un account di database MongoDB disponibili per il ripristino in un determinato timestamp e in una determinata area

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"

Elencare tutte le versioni dei database in un account di database attivo

I comandi di enumerazione descritti di seguito consentono di individuare le risorse disponibili per il ripristino in vari timestamp. Inoltre, forniscono anche un feed degli eventi chiave nelle risorse di account, database e grafo ripristinabili. Questi comandi funzionano solo per gli account attivi.

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

Questo output del comando mostra ora quando un database è stato creato ed eliminato.

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

Elencare tutte le versioni dei grafi Gremlin di un database in un account di database attivo

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

Questo output del comando include un elenco di operazioni eseguite in tutti i contenitori all'interno di questo database:

[ { 

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

Individuare database o grafi che possono essere ripristinati in un determinato timestamp

 
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" 

Questo output dei comandi mostra i grafici ripristinabili:

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

Enumerare le risorse ripristinabili per l'account API per tabelle

I comandi di enumerazione descritti di seguito consentono di individuare le risorse disponibili per il ripristino in vari timestamp. Inoltre, forniscono anche un feed degli eventi chiave nelle risorse di account e API per tabelle ripristinabili. Questi comandi funzionano solo per gli account attivi.

Elencare tutte le versioni delle tabelle in un account di database attivo

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" 

  }, 
] 

Elencare tutte le risorse di un account API per tabelle disponibili per il ripristino in un determinato timestamp e in una determinata area

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" 

Di seguito è riportato il risultato del comando .

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

  ] 
} 

Eseguire il ripristino usando il modello di Azure Resource Manager

È possibile ripristinare un account anche usando il modello di Azure Resource Manager (ARM). Quando si definisce il modello, includere i parametri seguenti:

Ripristinare l'account API per NoSQL o MongoDB usando il modello di Resource Manager

  1. Impostare il parametro createMode su Ripristino.
  2. Definire restoreParameters: si noti che il valore restoreSource viene estratto dall'output del comando az cosmosdb restorable-database-account list per l'account di origine. L'attributo ID istanza per il nome dell'account viene usato per eseguire il ripristino.
  3. Impostare il parametro restoreMode su PointInTime e configurare il valore restoreTimestampInUtc.

Usare il modello di Resource Manager seguente per ripristinare un account per l'API per NoSQL o MongoDB di Azure Cosmos DB. Di seguito sono riportati esempi per altre 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"
        }
      }
    }
  ]
}

Ripristinare l'account API per Gremlin usando il modello di Resource Manager

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

Ripristinare l'account API per tabelle usando il modello di Resource Manager

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

Distribuire quindi il modello usando Azure PowerShell o l'interfaccia della riga di comando di Azure. L'esempio seguente illustra come distribuire il modello con un comando dell'interfaccia della riga di comando di Azure:

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

Passaggi successivi