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

SI APPLICA A: Nosql Mongodb Gremlin Tabella

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

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

Nota

Attualmente in anteprima, l'azione di ripristino per l'API per Table e Gremlin è supportata tramite PowerShell e l'interfaccia della riga di comando di Azure.

Ripristinare un account usando portale di Azure

Ripristinare un account live dalla modifica accidentale

È possibile usare portale di Azure per ripristinare un intero account live o database e contenitori selezionati. 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 in portale di Azure viene popolato solo se si dispone dell'autorizzazioneMicrosoft.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) : timestamp entro gli ultimi 30 giorni. L'account deve esistere in quel timestamp. È possibile specificare il punto di ripristino in formato UTC. Può essere più vicino al secondo quando si vuole ripristinarlo. Selezionare il collegamento Fare clic qui per ottenere assistenza per identificare il punto di ripristino.

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

    • Ripristina risorsa : è possibile scegliere Intero account o un database o un contenitore selezionato da ripristinare. I database e i contenitori devono esistere al timestamp specificato. In base al punto di ripristino e alla posizione selezionata, vengono popolate le risorse di ripristino, che consente all'utente di selezionare database o contenitori specifici che devono essere ripristinati.

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

    • Ripristina account di destinazione : nome dell'account di destinazione. Il nome dell'account di destinazione deve seguire le stesse linee guida della creazione di un nuovo account. Questo account verrà creato dal processo di ripristino nella stessa area in cui esiste l'account di origine.

    Ripristinare un account live dalla modifica accidentale 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 volta, che si basa sulle dimensioni dei dati e sul costo dell'archiviazione di backup nell'area selezionata. Per altre informazioni, vedere la sezione Prezzi .

L'eliminazione dell'account di origine durante un ripristino in corso potrebbe causare un errore del ripristino.

Timestamp ripristinabile per gli account live

Per ripristinare gli account live di Azure Cosmos DB non 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 il tempo di ripristino

Quando si compila il tempo di ripristino nella portale di Azure, se è necessaria assistenza per identificare il punto di ripristino, selezionare il collegamento Fare clic qui, viene visualizzato il pannello feed eventi. Il feed di eventi fornisce un elenco completo di fedeltà di creazione, sostituzione, eliminazione di eventi nei database e nei contenitori dell'account di origine.

Ad esempio, se si vuole ripristinare il punto prima dell'eliminazione o dell'aggiornamento di un determinato contenitore, controllare questo feed di eventi. Gli eventi vengono visualizzati in ordine cronologico di tempo decrescente quando si sono verificati, con eventi recenti nella parte superiore. È possibile esplorare i risultati e selezionare l'ora prima o dopo l'evento per restringere ulteriormente il tempo.

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

Nota

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

Ripristinare un account eliminato

È possibile usare portale di Azure per ripristinare completamente un account eliminato entro 30 giorni dall'eliminazione. Seguire questa procedura per ripristinare un account eliminato:

  1. Accedere al portale di Azure

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

  3. Selezionare quindi il pulsante Ripristina . Il pannello Ripristina visualizza 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 da ripristinare.

    Ripristinare un account eliminato da portale di Azure.

    Nota

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

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

    • Punto di ripristino (UTC) : timestamp entro gli ultimi 30 giorni. L'account deve essere presente in quel timestamp. Specificare il punto di ripristino in formato UTC. Può essere più vicino al secondo quando si vuole ripristinarlo.

    • Posizione : area di destinazione in cui è necessario ripristinare 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.

    • Ripristina account di destinazione : il nome dell'account di destinazione deve seguire le stesse linee guida di quando si sta creando un nuovo account. Questo account verrà creato dal processo di ripristino nella stessa area in cui esiste l'account di origine.

Tenere traccia dello stato dell'operazione di ripristino

Dopo aver avviato un'operazione di ripristino, selezionare l'icona Campana di notifica nell'angolo superiore destro del portale. Fornisce un collegamento che visualizza lo stato dell'account da ripristinare. Mentre il ripristino è in corso, lo stato dell'account verrà Creato, dopo il completamento dell'operazione di ripristino, lo stato dell'account verrà modificato in Online.

Lo stato dell'account ripristinato cambia 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 ripristinato o il tempo di ripristino.

Per ottenere i dettagli di ripristino da portale di Azure, seguire questa procedura:

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

  2. Passare al riquadro Esporta modello . 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 versione successiva alla versione 6.2.0. Connettersi quindi all'account Azure e selezionare la sottoscrizione richiesta 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 di ripristino usando l'account di destinazione, l'account di origine, la posizione, il gruppo di risorse e il timestamp:


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

Esempio 1: Ripristino dell'intero account:


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

Esempio 2: Ripristino di raccolte e database specifici. In questo esempio vengono ripristinate le raccolte MyCol1, MyCol2 da MyDB1 e l'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'API per l'account Gremlin. In questo esempio vengono ripristinati i grafici graph1, graph2 da MyDB1 e l'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'API per l'account tabella. 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"

Per 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 la procedura descritta qui

Ottenere i dettagli di ripristino dall'account ripristinato

Importare il Az.CosmosDB modulo ed eseguire il comando seguente per ottenere i dettagli di ripristino. Il valore restoreTimestamp si trova 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 di eventi chiave nelle risorse di account, database e contenitore ripristinabili.

Elencare tutti gli account che possono essere ripristinati nella sottoscrizione corrente

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

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

{
    "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 per l'account CreationTimeDeletionTime , c'è anche un CreationTime oggetto o DeletionTime per l'area. Queste volte consentono di scegliere l'area giusta e un intervallo di tempo valido da ripristinare in tale area.

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

L'elenco di tutte le versioni dei database consente di scegliere il database corretto in uno scenario in cui il momento effettivo di esistenza del database è sconosciuto.

Eseguire il comando di PowerShell seguente per elencare tutte le versioni dei database. Questo comando funziona solo con gli account live. I DatabaseAccountInstanceId parametri e Location vengono ottenuti dalle name proprietà e location nella risposta del Get-AzCosmosDBRestorableDatabaseAccount cmdlet . L'attributo DatabaseAccountInstanceId fa riferimento alla instanceId proprietà 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 live. Il DatabaseRId parametro è il ResourceId del database che si desidera ripristinare. È il valore dell'attributo ownerResourceid trovato nella risposta del Get-AzCosmosdbSqlRestorableDatabase cmdlet. La risposta include anche un elenco di operazioni eseguite su tutti i contenitori all'interno di questo database.


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

Trovare database o contenitori che possono essere ripristinati in un determinato timestamp

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


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 di eventi chiave nelle risorse di account, database e contenitore ripristinabili. Questi comandi funzionano solo per gli account live e sono simili ai comandi API per NoSQL, ma con MongoDB nel nome del comando anziché sql.

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 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 di eventi chiave per le risorse di account, database e gra gragrafi ripristinabili.

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

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

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

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

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

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

Trovare database o grafici che possono essere ripristinati in un determinato timestamp

Usare il comando seguente per ottenere l'elenco di database o grafici che possono essere ripristinati in qualsiasi timestamp specificato. Questo comando funziona solo con gli account live.

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 La tabella

I cmdlet di enumerazione consentono di individuare le risorse disponibili per il ripristino in vari timestamp. Inoltre, forniscono anche un feed di eventi chiave per le 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 live.

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

Trovare tabelle che possono essere ripristinate in un determinato timestamp

Usare il comando seguente per ottenere l'elenco di tabelle che possono essere ripristinate in qualsiasi timestamp specificato. Questo comando funziona solo con gli account live.

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

Ripristinare un account con 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 versione successiva alla 2.26.0.
    • Se è già stata installata l'interfaccia della riga di comando, eseguire az upgrade il comando per eseguire l'aggiornamento alla versione più recente. Questo comando funzionerà solo con la versione dell'interfaccia della riga di comando successiva alla 2.11. Se si ha 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 az login il comando .
    • Selezionare la sottoscrizione richiesta usando az account set -s <subscriptionguid> il comando .

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 restore con il nome dell'account di destinazione, l'account di origine, la posizione, il gruppo di risorse, il timestamp (in UTC) e, facoltativamente, i nomi di database e contenitori. Di seguito sono riportati alcuni esempi per attivare l'operazione di ripristino:

Creare un nuovo account Azure Cosmos DB ripristinando 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"

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 una nuova API di Azure Cosmos DB per l'account Gremlin ripristinando solo i database e i gragrafi selezionati da un'API esistente per l'account 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 

Creare una nuova API di Azure Cosmos DB per l'account Tabella ripristinando solo le tabelle selezionate da un'API esistente per l'account tabella


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 az cosmosdb show del comando mostra il valore della createMode proprietà . Se il valore è impostato su Ripristina, indica che l'account è stato ripristinato da un altro account. La restoreParameters proprietà include altri dettagli, restoreSourcead esempio , con l'ID dell'account di origine. L'ultimo GUID nel restoreSource parametro è quello instanceId dell'account di origine. E sarà restoreTimestamp sotto l'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 di eventi chiave nelle risorse di account, database e contenitore ripristinabili.

Elencare tutti gli account che possono essere ripristinati nella sottoscrizione corrente

Eseguire il comando seguente dell'interfaccia della riga di comando di Azure 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 live che eliminati) che possono essere ripristinati e le aree che possono essere ripristinate da:

{
    "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 per l'accountCreationTime, c'è anche un CreationTime o DeletionTimeDeletionTime per l'area. Questi tempi consentono di scegliere l'area giusta e un intervallo di tempo valido da ripristinare in tale area.

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

L'elenco di tutte le versioni dei database consente di scegliere il database corretto in uno scenario in cui il tempo effettivo di esistenza del database è sconosciuto.

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 live. I instance-id parametri e location vengono ottenuti dalle name proprietà e location nella risposta del az cosmosdb restorable-database-account list comando. L'attributo è anche una proprietà dell'account instanceId del database di origine che viene ripristinato:

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

Questo output dei comandi mostra ora quando è stato creato ed eliminato un database.

[
  {
    "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 live

Usare il comando seguente per elencare tutte le versioni dei contenitori SQL. Questo comando funziona solo con gli account live. Il database-rid parametro è l'oggetto ResourceId del database che si vuole ripristinare. È il valore dell'attributo ownerResourceid trovato nella risposta del az cosmosdb sql restorable-database list comando.

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

Questo output dei comandi mostra l'elenco delle 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="
  },
]

Trovare database o contenitori che possono essere ripristinati in qualsiasi timestamp specificato

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


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'API per l'account 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 di eventi chiave nell'account, nel database e nelle risorse contenitore ripristinabili. Questi comandi funzionano solo per gli account live.

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

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 live

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 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 live

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

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

Questo output dei comandi mostra ora quando è stato creato ed eliminato un database.

[ { 
    "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 grafici Gremlin di un database in un account di database live

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

Questo output dei comandi mostra l'elenco delle 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" 
  } 
] 

Trovare database o grafici che possono essere ripristinati in qualsiasi timestamp specificato

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

Enumerare le risorse ripristinabili per l'API per l'account Table

I comandi di enumerazione descritti di seguito consentono di individuare le risorse disponibili per il ripristino in vari timestamp. Inoltre, forniscono anche un feed di eventi chiave nell'account ripristinabile e nell'API per le risorse di tabella. Questi comandi funzionano solo per gli account live.

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

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'API per l'account Tabella disponibili per il ripristino in un determinato timestamp e 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" 
{   
  "tableNames": [ 
    "table1", 
    "table3", 
    "table2" 
  ] 
} 

Ripristinare usando il modello di Resource Manager di Azure

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

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

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

Usare il modello arm seguente per ripristinare un account per l'API Azure Cosmos DB per NoSQL o MongoDB. Sono disponibili 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": "2016-03-31",
      "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"
        }
      }
    }
  ]
}

Ripristinare l'API per l'account 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": "2016-03-31",
      "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'API per l'account tabella 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": "2016-03-31",
      "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