Restauración de una cuenta de Azure Cosmos DB que usa el modo de copia de seguridad continua

SE APLICA A: NoSQL MongoDB Gremlin Table

La característica de restauración a un momento dado de Azure Cosmos DB ayuda a recuperarse de un cambio accidental en un contenedor, a restaurar una cuenta, una base de datos o un contenedor eliminados o a realizar una restauración en cualquier región (cuando existan copias de seguridad). El modo de copia de seguridad continua permite realizar la restauración a cualquier momento dado de los últimos 30 días.

En este artículo se describe cómo identificar el tiempo de restauración y cómo restaurar una cuenta de Azure Cosmos DB activa o eliminada. Se muestra cómo restaurar la cuenta mediante Azure Portal, PowerShell, la CLI o una plantilla de Azure Resource Manager.

Restauración de una cuenta mediante Azure Portal

Restauración de una cuenta activa después de una modificación accidental

Puede usar Azure Portal para restaurar toda una cuenta activa o una selección de bases de datos y contenedores asociados a esta. Siga estos pasos para restaurar los datos:

  1. Inicie sesión en Azure Portal.

  2. Vaya a la cuenta de Azure Cosmos DB y abra la hoja Restauración a un momento dado.

    Nota:

    La hoja de restauración de Azure Portal solo se rellena si cuenta con el permiso Microsoft.DocumentDB/locations/restorableDatabaseAccounts/*/read. Para más información sobre cómo establecer este permiso, consulte el artículo sobre los permisos de copia de seguridad y restauración.

  3. Complete estos detalles para realizar la restauración:

    • Punto de restauración (UTC) : marca de tiempo dentro de los últimos 30 días. La cuenta debe existir en esa marca de tiempo. Puede especificar el punto de restauración en hora UTC. El valor puede acercarse lo más posible al segundo que quiere restaurar. Seleccione el vínculo Haga clic aquí para obtener ayuda sobre cómo identificar el punto de restauración.

    • Ubicación: región de destino en que se restaura la cuenta. La cuenta debe existir en esta región en la marca de tiempo especificada (por ejemplo, Oeste de EE. UU. o Este de EE. UU.). Una cuenta solo se puede restaurar en las regiones en las que existe la cuenta de origen.

    • Recurso de restauración: puede elegir restaurar toda la cuenta o una base de datos o contenedor seleccionados. Las bases de datos y los contenedores deben existir en la marca de tiempo especificada. Los recursos de restauración se rellenan en función de la ubicación y el punto de restauración seleccionados, lo que permite al usuario seleccionar bases de datos o contenedores específicos que se deben restaurar.

    • Grupo de recursos: grupo de recursos en el que se creará y restaurará la cuenta de destino. El grupo de recursos ya debe existir.

    • Cuenta de destino de restauración: nombre de la cuenta de destino. El nombre de la cuenta de destino debe seguir las mismas directrices que cuando se crea una cuenta. El proceso de restauración creará esta cuenta en la misma región en la que existe la cuenta de destino.

    Restauración de una cuenta activa después de una modificación accidental con Azure Portal.

  4. Después de seleccionar los parámetros anteriores, haga clic en el botón Enviar para iniciar una restauración. El coste de restauración es un cargo único que se basa en el tamaño de los datos y en el coste del almacenamiento de copia de seguridad en la región seleccionada. Para más información, consulte la sección de precios.

La eliminación de la cuenta de origen mientras una restauración está en curso podría dar lugar a un error en la restauración.

Marca de tiempo de restauración para cuentas activas

Para restaurar cuentas activas de Azure Cosmos DB que no se eliminan, es recomendable identificar siempre la marca de tiempo de restauración más reciente para el contenedor. A continuación, puede usar esta marca de tiempo para restaurar la cuenta a su versión más reciente.

Uso de una fuente de eventos para identificar la hora de restauración

Al rellenar la hora del punto de restauración en Azure Portal, si necesita ayuda para identificar el punto de restauración, seleccione el vínculo Haga clic aquí, que le llevará a la hoja de la fuente de eventos. La fuente de eventos proporciona una lista de fidelidad total de eventos de creación, reemplazo y eliminación en bases de datos y contenedores de la cuenta de origen.

Por ejemplo, si quiere restaurar al punto antes de la eliminación o actualización de un contenedor determinado, compruebe esta fuente de eventos. Los eventos se muestran en orden cronológico descendente respecto del momento en que se produjeron, con los eventos recientes en la parte superior. Puede examinar los resultados y seleccionar la hora antes o después del evento para restringir aún más el tiempo.

Uso de una fuente de eventos para identificar la hora del punto de restauración.

Nota

La fuente de eventos no muestra los cambios en los recursos del elemento. Siempre puede especificar manualmente cualquier marca de tiempo de los últimos 30 días (siempre que exista una cuenta en ese momento) para la restauración.

Restauración de una cuenta eliminada

Puede usar Azure Portal para restaurar completamente una cuenta eliminada en un plazo de 30 días a contar de su eliminación. Siga estos pasos para restaurar una cuenta eliminada:

  1. Inicie sesión en Azure Portal.

  2. Busque recursos de Azure Cosmos DB en la barra de búsqueda global. Se muestran todas las cuentas existentes.

  3. Luego, haga clic en el botón Restaurar. En la hoja "Restaurar" se muestra una lista de las cuentas eliminadas que se pueden restaurar dentro del período de retención, que es de 30 días a partir del momento de la eliminación.

  4. Elija la cuenta que quiere restaurar.

    Restauración de una cuenta eliminada desde Azure Portal.

    Nota

    La hoja de restauración de Azure Portal solo se rellena si cuenta con el permiso Microsoft.DocumentDB/locations/restorableDatabaseAccounts/*/read. Para más información sobre cómo establecer este permiso, consulte el artículo sobre los permisos de copia de seguridad y restauración.

  5. Seleccione una cuenta para restaurar y escriba los detalles siguientes para restaurar una cuenta eliminada:

    • Punto de restauración (UTC) : marca de tiempo dentro de los últimos 30 días. La cuenta debe haber existido en esa marca de tiempo. Especifique el punto de restauración en hora UTC. El valor puede acercarse lo más posible al segundo que quiere restaurar.

    • Ubicación: región de destino en que se debe restaurar la cuenta. La cuenta de origen debe existir en esta región en la marca de tiempo especificada. Por ejemplo, Oeste de EE. UU., Este de EE. UU.

    • Grupo de recursos: grupo de recursos en el que se creará y restaurará la cuenta de destino. El grupo de recursos ya debe existir.

    • Cuenta de destino de restauración: el nombre de la cuenta de destino debe seguir las mismas directrices que cuando se crea una cuenta. El proceso de restauración creará esta cuenta en la misma región en la que existe la cuenta de destino.

Seguimiento del estado de una operación de restauración

Después de iniciar una operación de restauración, seleccione el icono de campana de Notificación que se encuentra en la esquina superior derecha del portal. Proporciona un vínculo que muestra el estado de la cuenta que se está restaurando. Mientras la restauración esté en curso, el estado de la cuenta será En creación y, cuando la operación de restauración se complete, cambiará a En línea.

El estado de la cuenta restaurada cambia de En creación a En línea cuando se completa la operación.

Obtención de los detalles de restauración de la cuenta restaurada

Una vez completada la operación de restauración, es posible que quiera conocer los detalles de la cuenta de origen desde la que se ha restaurado o la hora de restauración.

Siga estos pasos para obtener los detalles de restauración desde Azure Portal:

  1. Inicie sesión en Azure Portal y vaya a la cuenta restaurada.

  2. Vaya al panel Exportar plantilla. Se abre una plantilla JSON que corresponde a la cuenta restaurada.

Restauración de una cuenta mediante Azure PowerShell

Antes de restaurar la cuenta, instale la versión más reciente de Azure PowerShell o cualquier versión posterior a la 9.6.0. Luego, conéctese a su cuenta de Azure y seleccione la suscripción necesaria con los siguientes comandos:

  1. Utilice el siguiente comando para iniciar sesión en Azure:

    Connect-AzAccount
    
  2. Seleccione una suscripción concreta con el comando siguiente:

    Select-AzSubscription -Subscription <SubscriptionName>
    

Desencadenamiento de una operación de restauración para una cuenta de la API para NoSQL

El siguiente cmdlet es un ejemplo para desencadenar una operación de restauración con el comando restore mediante la cuenta de destino, la cuenta de origen, la ubicación, el grupo de recursos, PublicNetworkAccess, DisableTtl y la marca de tiempo:


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

Ejemplo 1: restauración de toda la cuenta:


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


Si PublicNetworkAccess no se establece, se puede acceder a la cuenta restaurada desde la red pública. Asegúrese de pasar Disabled a la opción PublicNetworkAccess para deshabilitar el acceso a la red pública para la cuenta restaurada. Al establecer DisableTtl en $true se garantiza que TTL esté deshabilitado en la cuenta restaurada, si no se proporciona el parámetro se restaura la cuenta con TTL habilitado si se estableció anteriormente.

Nota:

Para restaurar con acceso a la red pública deshabilitado, la versión estable mínima de Az.CosmosDB requerida es 1.12.0.

Ejemplo 2: restauración de colecciones y bases de datos concretas. En este ejemplo se restauran las colecciones MyCol1 y MyCol2 de MyDB1 y toda la base de datos MyDB2, que incluye todos los contenedores que hay en ella.

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

Ejemplo 3: restauración de una cuenta de la API para Gremlin. En este ejemplo se restauran los gráficos graph1 y graph2 de MyDB1, y toda la base de datos MyDB2, que incluye todos los contenedores que hay en ella.

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

Ejemplo 4: Restauración de una cuenta de la API para Table. En este ejemplo se restauran las tablas table1 y table1 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"

Restauración de una cuenta continua configurada con identidad administrada mediante la CLI

Para restaurar la cuenta continua de clave administrada por el cliente (CMK), consulte los pasos que se proporcionan aquí

Obtención de los detalles de restauración de la cuenta restaurada

Importe el módulo Az.CosmosDB versión 1.12.0 y ejecute el siguiente comando para obtener los detalles de restauración. restoreTimestamp está en el objeto restoreParameters:

Get-AzCosmosDBAccount -ResourceGroupName MyResourceGroup -Name MyCosmosDBDatabaseAccount 

Enumeración de los recursos que se pueden restaurar de la API para NoSQL

Los cmdlets de enumeración ayudan a detectar los recursos que están disponibles para restaurar en varias marcas de tiempo. Además, también proporcionan una fuente de eventos clave en los recursos restaurables de cuenta, base de datos y contenedor.

Enumeración de todas las cuentas que se pueden restaurar en la suscripción actual

Ejecute el comando Get-AzCosmosDBRestorableDatabaseAccount de PowerShell para enumerar todas las cuentas que se pueden restaurar en la suscripción actual.

La respuesta incluye todas las cuentas de base de datos (tanto activas como eliminadas) que se pueden restaurar y las regiones desde las que se puede hacer.

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

Al igual que CreationTime o DeletionTime para la cuenta, también hay CreationTime o DeletionTime para la región. Estas horas permiten elegir la región correcta y un intervalo de tiempo válido para restaurar en esa región.

Enumeración de todas las versiones de bases de datos SQL de una cuenta de base de datos activa

La enumeración de todas las versiones de bases de datos permite elegir la base de datos correcta en un escenario en el que se desconoce la hora real de existencia de la base de datos.

Ejecute el siguiente comando de PowerShell para enumerar todas las versiones de bases de datos. Este comando solo funciona con cuentas activas. Los parámetros DatabaseAccountInstanceId y Location se obtienen de las propiedades name y location en la respuesta del cmdlet Get-AzCosmosDBRestorableDatabaseAccount. El atributo DatabaseAccountInstanceId hace referencia a la propiedad instanceId de la cuenta de base de datos de origen que se está restaurando:


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

Enumeración de todas las versiones de contenedores SQL de una base de datos de una cuenta de base de datos activa

Use el comando siguiente para enumerar todas las versiones de contenedores SQL. Este comando solo funciona con cuentas activas. El parámetro DatabaseRId es el elemento ResourceId de la base de datos que se quiere restaurar. Es el valor del atributo ownerResourceid que se encuentra en la respuesta del cmdlet Get-AzCosmosdbSqlRestorableDatabase. La respuesta también incluye una lista de las operaciones realizadas en todos los contenedores de esta base de datos.


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

Búsqueda de bases de datos o contenedores que se pueden restaurar en cualquier marca de tiempo

Use el comando siguiente para obtener la lista de bases de datos o contenedores que se pueden restaurar en una marca de tiempo determinada. Este comando solo funciona con cuentas activas.


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

Enumeración de los recursos restaurables en la API para MongoDB

Los comandos de enumeración que se describen a continuación ayudan a detectar los recursos que están disponibles para restaurar en varias marcas de tiempo. Además, también proporcionan una fuente de eventos clave en los recursos restaurables de cuenta, base de datos y contenedor. Estos comandos solo funcionan en cuentas activas y son similares a los comandos de la API para NoSQL, aunque con MongoDB en el nombre de comando en lugar de sql.

Enumeración de todas las versiones de bases de datos MongoDB de una cuenta de base de datos activa


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

Enumeración de todas las versiones de colecciones MongoDB de una base de datos de una cuenta de base de datos activa


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

Enumeración de todos los recursos de una cuenta de base de datos MongoDB que están disponibles para restaurar en una determinada marca de tiempo y región


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

Enumeración de los recursos que se pueden restaurar de la API para Gremlin

Los cmdlets de enumeración ayudan a detectar los recursos que están disponibles para restaurar en varias marcas de tiempo. Además, también proporcionan una fuente de eventos clave en los recursos que se pueden restaurar de cuenta, base de datos y gráfico.

Enumeración de todas las versiones de bases de datos Gremlin de una cuenta de base de datos activa

La enumeración de todas las versiones de bases de datos permite elegir la base de datos correcta en un escenario en el que se desconoce la hora real de existencia de la base de datos. Ejecute el siguiente comando de PowerShell para enumerar todas las versiones de bases de datos. Este comando solo funciona con cuentas activas. Los parámetros DatabaseAccountInstanceId y Location se obtienen de las propiedades name y location en la respuesta del cmdlet Get-AzCosmosDBRestorableDatabaseAccount. El atributo DatabaseAccountInstanceId hace referencia a la propiedad instanceId de la cuenta de base de datos de origen que se está restaurando:

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

Enumeración de todas las versiones de gráficos Gremlin de una base de datos de una cuenta de base de datos activa

Use el comando siguiente para enumerar todas las versiones de grafos de la API para Gremlin. Este comando solo funciona con cuentas activas. El parámetro DatabaseRId es el elemento ResourceId de la base de datos que se quiere restaurar. Es el valor del atributo ownerResourceid que se encuentra en la respuesta del cmdlet Get-AzCosmosdbGremlinRestorableDatabase. La respuesta también incluye una lista de las operaciones realizadas en todos los gráficos de esta base de datos.

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

Búsqueda de bases de datos o gráficos que se pueden restaurar en cualquier marca de tiempo

Use el comando siguiente para obtener la lista de bases de datos o gráficos que se pueden restaurar en una marca de tiempo determinada. Este comando solo funciona con cuentas activas.

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

Enumeración de los recursos que se pueden restaurar de la API para Table

Los cmdlets de enumeración ayudan a detectar los recursos que están disponibles para restaurar en varias marcas de tiempo. Además, también proporcionan una fuente de eventos clave en los recursos que se pueden restaurar de cuenta y tabla.

Enumeración de todas las versiones de tablas de una base de datos en una cuenta de base de datos activa

Use el comando siguiente para enumerar todas las versiones de tablas. Este comando solo funciona con cuentas activas.

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

Búsqueda de tablas que se pueden restaurar en cualquier marca de tiempo

Use el comando siguiente para obtener la lista de tablas que se pueden restaurar en cualquier marca de tiempo determinada. Este comando solo funciona con cuentas activas.

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

Restauración de una cuenta mediante la CLI de Azure

Antes de restaurar la cuenta, instale la CLI de Azure con los siguientes pasos:

  1. Instale la versión más reciente de la CLI de Azure.

    • Instale la versión más reciente de la CLI de Azure o cualquier versión posterior a la 2.52.0.
    • Si ya tiene instalada la CLI, ejecute el comando az upgrade para actualizarla a la versión más reciente. Este comando funcionará solo con una versión de la CLI superior a 2.52.0. Si tiene una versión anterior, use el vínculo anterior para instalar la versión más reciente.
  2. Inicie sesión y seleccione su suscripción.

    • Inicio de sesión en la cuenta de Azure con el comando az login.
    • Use el comando az account set -s <subscriptionguid> para seleccionar la suscripción requerida.

Desencadenamiento de una operación de restauración con la CLI de Azure

La manera más sencilla de desencadenar una restauración es mediante la emisión del comando de restauración con el nombre de la cuenta de destino, la cuenta de origen, la ubicación, el grupo de recursos, la marca de tiempo (en hora UTC) y, opcionalmente, los nombres de la base de datos y del contenedor. A continuación, se muestran algunos ejemplos para desencadenar la operación de restauración:

Creación de una cuenta de Azure Cosmos DB restaurando una cuenta existente


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 

Si --public-network-access no se establece, se puede acceder a la cuenta restaurada desde la red pública. Asegúrese de pasar Disabled a la opción --public-network-access para evitar el acceso a la red pública para la cuenta restaurada. Al establecer disable-ttl en $true se garantiza que TTL esté deshabilitado en la cuenta restaurada, y si no se proporciona este parámetro se restaura la cuenta con TTL habilitado si se estableció anteriormente.

Nota:

Para restaurar con el acceso a la red pública deshabilitado, la versión estable mínima de azure-cli es 2.52.0.

Creación de una cuenta de Azure Cosmos DB restaurando solo las bases de datos y los contenedores seleccionados de una cuenta de base de datos existente


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

Creación de una cuenta de la API para Gremlin de Azure Cosmos DB restaurando solo las bases de datos y grafos seleccionados a partir de una cuenta de la API para Gremlin existente


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 

Creación de una cuenta de la API para Table de Azure Cosmos DB restaurando solo las tablas seleccionadas de una cuenta de la API para Table existente


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 

Obtención de los detalles de restauración de la cuenta restaurada

Ejecute el siguiente comando para obtener los detalles de restauración. El resultado del comando az cosmosdb show muestra el valor de la propiedad createMode. Si el valor se establece en Restaurar, indica que la cuenta se restauró desde otra cuenta. La propiedad restoreParameters tiene más detalles, como restoreSource, que tiene el identificador de la cuenta de origen. El último GUID del parámetro restoreSource es el elemento instanceId de la cuenta de origen. Y restoreTimestamp estará en el objeto restoreParameters:

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

Enumeración de los recursos que se pueden restaurar de la API para NoSQL

Los comandos de enumeración que se describen a continuación ayudan a detectar los recursos que están disponibles para restaurar en varias marcas de tiempo. Además, también proporcionan una fuente de eventos clave en los recursos restaurables de cuenta, base de datos y contenedor.

Enumeración de todas las cuentas que se pueden restaurar en la suscripción actual

Ejecución del comando de la CLI de Azure siguiente para enumerar todas las cuentas que se pueden restaurar en la suscripción actual

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

La respuesta incluye todas las cuentas de base de datos (tanto activas como eliminadas) que se pueden restaurar y las regiones desde las que se puede hacer esta restauración:

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

Al igual que CreationTime o DeletionTime para la cuenta, también hay CreationTime o DeletionTime para la región. Estas horas permiten elegir la región correcta y un intervalo de tiempo válido para restaurar en esa región.

Enumeración de todas las versiones de bases de datos de una cuenta de base de datos activa

La enumeración de todas las versiones de bases de datos permite elegir la base de datos correcta en un escenario en el que se desconoce la hora real de existencia de la base de datos.

Ejecute el comando de la CLI de Azure siguiente para enumerar todas las versiones de bases de datos. Este comando solo funciona con cuentas activas. Los parámetros instance-id y location se obtienen de las propiedades name y location en la respuesta del comando az cosmosdb restorable-database-account list. El atributo instanceId también es una propiedad de la cuenta de base de datos de origen que se está restaurando:

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

La salida de este comando ahora muestra cuándo se creó y eliminó una base de datos.

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

Enumeración de todas las versiones de contenedores SQL de una base de datos de una cuenta de base de datos activa

Use el comando siguiente para enumerar todas las versiones de contenedores SQL. Este comando solo funciona con cuentas activas. El parámetro database-rid es el elemento ResourceId de la base de datos que se quiere restaurar. Es el valor del atributo ownerResourceid que se encuentra en la respuesta 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"

La respuesta de este comando ahora incluye la lista de las operaciones realizadas en todos los contenedores de esta base de datos:

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

Búsqueda de bases de datos o contenedores que se pueden restaurar en cualquier marca de tiempo

Use el comando siguiente para obtener la lista de bases de datos o contenedores que se pueden restaurar en una marca de tiempo determinada. Este comando solo funciona con cuentas activas.


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

Enumeración de los recursos que se pueden restaurar para una cuenta de la API para MongoDB

Los comandos de enumeración que se describen a continuación ayudan a detectar los recursos que están disponibles para restaurar en varias marcas de tiempo. Además, también proporcionan una fuente de eventos clave en los recursos que se pueden restaurar de cuenta, base de datos y contenedor. Estos comandos solo funcionan con cuentas activas.

Enumeración de todas las versiones de bases de datos MongoDB de una cuenta de base de datos activa

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

Enumeración de todas las versiones de colecciones MongoDB de una base de datos de una cuenta de base de datos activa

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

Enumeración de todos los recursos de una cuenta de base de datos MongoDB que están disponibles para restaurar en una determinada marca de tiempo y región

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"

Enumeración de todas las versiones de bases de datos de una cuenta de base de datos activa

Los comandos de enumeración que se describen a continuación ayudan a detectar los recursos que están disponibles para restaurar en varias marcas de tiempo. Además, también proporcionan una fuente de eventos clave en los recursos que se pueden restaurar de cuenta, base de datos y gráfico. Estos comandos solo funcionan con cuentas activas.

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

La salida de este comando ahora muestra cuándo se creó y eliminó una base de datos.

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

Enumeración de todas las versiones de gráficos Gremlin de una base de datos de una cuenta de base de datos activa

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

La respuesta de este comando ahora incluye la lista de las operaciones realizadas en todos los contenedores de esta base de datos:

[ { 

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

Búsqueda de bases de datos o gráficos que se pueden restaurar en cualquier marca de tiempo

 
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" 

En esta salida de comando se muestran los gráficos que se pueden restaurar:

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

Enumeración de los recursos que se pueden restaurar para una cuenta de API para Table

Los comandos de enumeración que se describen a continuación ayudan a detectar los recursos que están disponibles para restaurar en varias marcas de tiempo. Además, también proporcionan una fuente de eventos clave en la cuenta restaurable y en los recursos de la API para Table. Estos comandos solo funcionan con cuentas activas.

Enumeración de todas las versiones de tablas en una cuenta de base de datos activa

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" 

  }, 
] 

Enumeración de todos los recursos de una cuenta de la API para Table disponibles para restaurar en una determinada marca de tiempo y región

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" 

A continuación se muestra el resultado del comando.

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

  ] 
} 

Restauración mediante la plantilla de ARM

También puede restaurar una cuenta mediante la plantilla de ARM. Al definir la plantilla, se deben incluir los parámetros siguientes:

Restauración de una cuenta de la API para NoSQL o MongoDB mediante una plantilla de ARM

  1. Establezca el parámetro createMode en Restaurar.
  2. Defina restoreParameters, tenga en cuenta que el valor de restoreSource se extrae de la salida del comando az cosmosdb restorable-database-account list de la cuenta de origen. El atributo del identificador de instancia para el nombre de cuenta se usa para realizar la restauración.
  3. Establezca el parámetro restoreMode en PointInTime y configure el valor restoreTimestampInUtc.

Use la plantilla de ARM siguiente para restaurar una cuenta de API para NoSQL o MongoDB de Azure Cosmos DB. Debajo se proporcionan ejemplos para otras 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"
        }
      }
    }
  ]
}

Restauración de una cuenta de la API para Gremlin mediante una plantilla de 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" 
                ] 
            }]
        }
      }
    }
  ]
}

Restauración de una cuenta de la API para Table mediante una plantilla de 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" 
            ] 
        }
      }
    }
  ]
}

Después, implemente la plantilla mediante Azure PowerShell o la CLI de Azure. En el ejemplo siguiente se muestra cómo implementar la plantilla con un comando de la CLI de Azure:

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

Pasos siguientes