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:
Inicie sesión en Azure Portal.
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.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.
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.
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:
Inicie sesión en Azure Portal.
Busque recursos de Azure Cosmos DB en la barra de búsqueda global. Se muestran todas las cuentas existentes.
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.
Elija la cuenta que quiere restaurar.
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.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.
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:
Inicie sesión en Azure Portal y vaya a la cuenta restaurada.
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:
Utilice el siguiente comando para iniciar sesión en Azure:
Connect-AzAccount
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/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/providers/Microsoft.DocumentDB/locations/West US/restorableDatabaseAccounts/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
"identity": null,
"location": "West US",
"name": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
"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:
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.
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.
- Inicio de sesión en la cuenta de Azure con el comando
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/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/providers/Microsoft.DocumentDB/locations/West US/restorableDatabaseAccounts/abcd1234-d1c0-4645-a699-abcd1234/restorableSqlDatabases/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f",
"name": "bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f",
"resource": {
"database": {
"id": "db1"
},
"eventTimestamp": "2021-01-08T23:27:25Z",
"operationType": "Create",
"ownerId": "db1",
"ownerResourceId": "YuZAAA=="
},
},
{
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/providers/Microsoft.DocumentDB/locations/West US/restorableDatabaseAccounts/abcd1234-d1c0-4645-a699-abcd1234/restorableSqlDatabases/cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a",
"name": "cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a",
"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/dddd3d3d-ee4e-ff5f-aa6a-bbbbbb7b7b7b/providers/Microsoft.DocumentDB/locations/eastus2euap/restorableDatabaseAccounts/eeee4efe-ff5f-aa6a-bb7b-cccccc8c8c8c/restorableGraphs/ffff5f5f-aa6a-bb7b-cc8c-dddddd9d9d9d",
"name": "ffff5f5f-aa6a-bb7b-cc8c-dddddd9d9d9d",
"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/dddd3d3d-ee4e-ff5f-aa6a-bbbbbb7b7b7b/providers/Microsoft.DocumentDB/locations/WestUS/restorableDatabaseAccounts/aaaa6a6a-bb7b-cc8c-dd9d-eeeeee0e0e0e/restorableTables/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f",
"name": "bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f",
"resource": {
"eventTimestamp": "2022-02-09T17:09:54Z",
"operationType": "Create",
"ownerId": "table1",
"ownerResourceId": "tOdDAKYiBhQ=",
"rid": "9pvDGwAAAA=="
},
"type": "Microsoft.DocumentDB/locations/restorableDatabaseAccounts/restorableTables"
},
{"id": "/subscriptions/dddd3d3d-ee4e-ff5f-aa6a-bbbbbb7b7b7b/providers/Microsoft.DocumentDB/locations/eastus2euap/restorableDatabaseAccounts/aaaa6a6a-bb7b-cc8c-dd9d-eeeeee0e0e0e/restorableTables/cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a",
"name": "cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a",
"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
- Establezca el parámetro
createMode
en Restaurar. - Defina
restoreParameters
, tenga en cuenta que el valor derestoreSource
se extrae de la salida del comandoaz 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. - Establezca el parámetro
restoreMode
en PointInTime y configure el valorrestoreTimestampInUtc
.
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/dddd3d3d-ee4e-ff5f-aa6a-bbbbbb7b7b7b/providers/Microsoft.DocumentDB/locations/West US/restorableDatabaseAccounts/eeee4efe-ff5f-aa6a-bb7b-cccccc8c8c8c",
"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/dddd3d3d-ee4e-ff5f-aa6a-bbbbbb7b7b7b/providers/Microsoft.DocumentDB/locations/West US/restorableDatabaseAccounts/ffff5f5f-aa6a-bb7b-cc8c-dddddd9d9d9d",
"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/aaaa6a6a-bb7b-cc8c-dd9d-eeeeee0e0e0e/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
- Aprovisione la copia de seguridad continua mediante Azure Portal, PowerShell, la CLI o Azure Resource Manager.
- Migración a una cuenta desde una copia de seguridad periódica a una copia de seguridad continua.
- Modelo de recursos del modo de copia de seguridad continua.
- Administre los permisos necesarios para restaurar datos con el modo de copia de seguridad continua.