Získání nejnovějšího obnovitelného časového razítka pro účty průběžného zálohování
PLATÍ PRO: NoSQL MongoDB Skřítek Stůl
Tento článek popisuje, jak získat nejnovější obnovitelné časové razítko pro účty s režimem průběžného zálohování. Vysvětluje, jak získat nejnovější dobu obnovení pomocí Azure PowerShellu a Azure CLI a poskytuje formát požadavku a odpovědi pro příkazy PowerShellu a rozhraní příkazového řádku.
Tato funkce je podporovaná pro kontejnery rozhraní API služby Azure Cosmos DB pro NoSQL, rozhraní API pro MongoDB, rozhraní API pro tabulky a rozhraní API pro grafy Gremlin.
Důležité
U účtů pro zápis do více oblastí je nejnovější obnovovatelné časové razítko determinováno časovým razítkem řešení konfliktů (crts
).
Kontejner SQL
PowerShell
Get-AzCosmosDBSqlContainerBackupInformation -AccountName <System.String> `
-DatabaseName <System.String> `
[-DefaultProfile <Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer>] `
-Location <System.String> `
-Name <System.String> `
-ResourceGroupName <System.String> [<CommonParameters>]
Ukázkový požadavek:
Get-AzCosmosDBSqlContainerBackupInformation -ResourceGroupName "rg" `
-AccountName "sqlpitracc" `
-DatabaseName "db1" `
-Name "container1" `
-Location "eastus"
Ukázková odpověď (ve formátu UTC):
LatestRestorableTimestamp
-------------------------
10/26/2021 6:24:25 PM
Rozhraní příkazového řádku
az cosmosdb sql retrieve-latest-backup-time -g {resourcegroup} \
-a {accountname} \
-d {db_name} \
-c {container_name} \
-l {location}
Ukázkový požadavek:
az cosmosdb sql retrieve-latest-backup-time -g "rg" \
-a "sqlpitracc" \
-d "db1" \
-c "container1" \
-l "eastus"
Ukázková odpověď (ve formátu UTC):
{
"continuousBackupInformation": {
"latestRestorableTimestamp": "10/26/2021 5:27:45 PM"
}
}
Databáze SQL
Pomocí následujícího skriptu získáte nejnovější obnovovatelné časové razítko pro databázi. Tento skript iteruje všechny kontejnery v zadané databázi a vrátí minimální nejnovější obnovitelné časové razítko všech jeho kontejnerů.
Function Get-LatestRestorableTimestampForSqlDatabase {
[CmdletBinding()]
param(
[Parameter(Position = 0, mandatory = $true)]
[string] $resourceGroupName,
[Parameter(Position = 1, mandatory = $true)]
[string] $accountName,
[Parameter(Position = 2, mandatory = $true)]
[string] $databaseName,
[Parameter(Position = 3, mandatory = $true)]
[string] $location)
Write-Host
Write-Host "Latest restorable timestamp for a database is minimum of restorable timestamps of all the underlying containers"
Write-Host
Write-Debug "Listing all containers in database: $databaseName"
$containers = Get-AzCosmosDBSqlContainer -ResourceGroupName $resourceGroupName -AccountName $accountName -DatabaseName $databaseName
If (-Not $containers) {
throw "Error: Found no containers to restore in the given database."
}
Write-Debug "Found $($containers.Length) containers under database $databaseName"
$latestRestorableTimestampForDatabase = [DateTime]::MaxValue
foreach ($container in $containers) {
Write-Debug "Getting latest restorable timestamp for container: $($container.Name)"
$latestRestorableTimestampForContainer = Get-AzCosmosDBSqlContainerBackupInformation -ResourceGroupName $resourceGroupName -AccountName $accountName -DatabaseName $databaseName -Name $container.Name -Location $location
Write-Debug "Latest Restorable Timestamp for container $($container.Name): $($latestRestorableTimestampForContainer.LatestRestorableTimestamp)"
$latestRestorableTimestampForContainerDateTime = [DateTime]$latestRestorableTimestampForContainer.LatestRestorableTimestamp
If ($latestRestorableTimestampForContainerDateTime -lt $latestRestorableTimestampForDatabase) {
Write-Debug "Latest Restorable Timestamp for container $($container.Name) is less than current database restorable timestamp: $latestRestorableTimestampForDatabase"
$latestRestorableTimestampForDatabase = $latestRestorableTimestampForContainerDateTime
}
Write-Debug "Latest Restorable Timestamp for database so far: $latestRestorableTimestampForDatabase"
}
if ($latestRestorableTimestampForDatabase -eq [DateTime]::MaxValue) {
throw "Error: Failed to retrieve latest backup timestamp for database: $databaseName"
}
Write-Debug "Latest Restorable Timestamp in UTC for database $($databaseName): $latestRestorableTimestampForDatabase"
return $latestRestorableTimestampForDatabase
}
Syntaxe:
Get-LatestRestorableTimestampForSqlDatabase `
-ResourceGroupName <resourceGroup> `
-AccountName <accountName> `
-DatabaseName <databaseName> `
-Location <location>
Ukázkový požadavek:
Import-Module .\LatestRestorableDatabaseForSqlDatabase.ps1
Get-LatestRestorableTimestampForSqlDatabase `
-ResourceGroupName rg `
-AccountName sqlpitracc `
-DatabaseName db1 `
-Location eastus
Ukázková odpověď (ve formátu UTC):
Latest restorable timestamp for a database is minimum of restorable timestamps of all the underlying containers
Wednesday, November 3, 2021 8:02:44 PM
Účet SQL
Pomocí následujícího skriptu získáte nejnovější obnovovatelné časové razítko pro účet SQL. Tento skript iteruje všechny kontejnery v rámci tohoto účtu a vrátí minimální časové razítko nejnovějšího obnovitelného časového razítka všech jeho kontejnerů.
Function Get-LatestRestorableTimestampForSqlAccount {
[CmdletBinding()]
param(
[Parameter(Position = 0, mandatory = $true)]
[string] $resourceGroupName,
[Parameter(Position = 1, mandatory = $true)]
[string] $accountName,
[Parameter(Position = 2, mandatory = $true)]
[string] $location)
Write-Host
Write-Host "Latest restorable timestamp for an account is minimum of restorable timestamps of all the underlying containers"
Write-Host
Write-Debug "Listing all databases in account: $accountName"
$databases = Get-AzCosmosDBSqlDatabase -ResourceGroupName $resourceGroupName -AccountName $accountName
Write-Debug "Found $($databases.Length) databases under account $accountName"
$latestRestorableTimestampForAccount = [DateTime]::MaxValue
foreach ($database in $databases) {
Write-Debug "Listing all containers in database: $($database.Name)"
$containers = Get-AzCosmosDBSqlContainer -ResourceGroupName $resourceGroupName -AccountName $accountName -DatabaseName $($database.Name)
If (-Not $containers) {
throw "Error: Found no containers to restore in the given database."
}
Write-Debug "Found $($containers.Length) containers under database $($database.Name)"
foreach ($container in $containers) {
Write-Debug "Getting latest restorable timestamp for container: $($container.Name)"
$latestRestorableTimestampForContainer = Get-AzCosmosDBSqlContainerBackupInformation -ResourceGroupName $resourceGroupName -AccountName $accountName -DatabaseName $database.Name -Name $container.Name -Location $location
Write-Debug "Latest Restorable Timestamp for container $($container.Name): $($latestRestorableTimestampForContainer.LatestRestorableTimestamp)"
$latestRestorableTimestampForContainerDateTime = [DateTime]$latestRestorableTimestampForContainer.LatestRestorableTimestamp
If ($latestRestorableTimestampForContainerDateTime -lt $latestRestorableTimestampForAccount) {
Write-Debug "Latest Restorable Timestamp for container $($container.Name) is less than current database restorable timestamp: $latestRestorableTimestampForAccount"
$latestRestorableTimestampForAccount = $latestRestorableTimestampForContainerDateTime
}
Write-Debug "Latest Restorable Timestamp for database so far: $latestRestorableTimestampForAccount"
}
}
if ($latestRestorableTimestampForAccount -eq [DateTime]::MaxValue) {
throw "Error: Failed to retrieve latest backup timestamp for account: $accountName"
}
Write-Debug "Latest Restorable Timestamp in UTC for account $($accountName): $latestRestorableTimestampForAccount"
return $latestRestorableTimestampForAccount
}
Syntaxe:
Get-LatestRestorableTimestampForSqlAccount `
-ResourceGroupName <resourceGroupName> `
-AccountName <accountName> `
-Location <location>
Ukázkový požadavek:
Import-Module .\LatestRestorableTimestampForSqlAccount.ps1
Get-LatestRestorableTimestampForSqlAccount `
-ResourceGroupName rg `
-AccountName sqlpitracc `
-location eastus
Ukázková odpověď (ve formátu UTC):
Latest restorable timestamp for an account is minimum of restorable timestamps of all the underlying containers
Wednesday, November 3, 2021 8:11:03 PM
Kolekce MongoDB
PowerShell
Get-AzCosmosDBMongoDBCollectionBackupInformation `
-AccountName <System.String> `
-DatabaseName <System.String> `
[-DefaultProfile <Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer>] `
-Location <System.String> `
-Name <System.String> `
-ResourceGroupName <System.String> [<CommonParameters>]
Ukázkový požadavek:
Get-AzCosmosDBMongoDBCollectionBackupInformation `
-ResourceGroupName "rg" `
-AccountName "mongodbpitracc" `
-DatabaseName "db1" `
-Name "col1" `
-Location "eastus"
Ukázková odpověď (ve formátu UTC):
LatestRestorableTimestamp
-------------------------
10/26/2021 6:27:22 PM
Rozhraní příkazového řádku
az cosmosdb mongodb retrieve-latest-backup-time \
-g {resourcegroup} \
-a {accountname} \
-d {db_name} \
-c {collection_name} \
-l {location}
Ukázkový požadavek:
az cosmosdb mongodb retrieve-latest-backup-time \
-g "rg" \
-a "mongodbpitracc" \
-d "db1" \
-c "col1" \
-l "eastus"
Ukázková odpověď:
{
"continuousBackupInformation": {
"latestRestorableTimestamp": "10/26/2021 5:27:45 PM"
}
}
Databáze MongoDB
Pomocí následujícího skriptu získáte nejnovější obnovovatelné časové razítko pro databázi. Tento skript iteruje všechny kolekce v této databázi a vrátí minimální nejnovější obnovitelné časové razítko všech jeho kolekcí.
Function Get-LatestRestorableTimestampForMongoDBDatabase {
[CmdletBinding()]
param(
[Parameter(Position = 0, mandatory = $true)]
[string] $resourceGroupName,
[Parameter(Position = 1, mandatory = $true)]
[string] $accountName,
[Parameter(Position = 2, mandatory = $true)]
[string] $databaseName,
[Parameter(Position = 3, mandatory = $true)]
[string] $location)
Write-Host
Write-Host "Latest restorable timestamp for a database is minimum of restorable timestamps of all the underlying collections"
Write-Host
Write-Debug "Listing all collections in database: $databaseName"
$collections = Get-AzCosmosDBMongoDBCollection -ResourceGroupName $resourceGroupName -AccountName $accountName -DatabaseName $databaseName
If (-Not $collections) {
throw "Error: Found no collections to restore in the given database."
}
Write-Debug "Found $($collections.Length) collections under database $databaseName"
$latestRestorableTimestampForDatabase = [DateTime]::MaxValue
foreach ($collection in $collections) {
Write-Debug "Getting latest restorable timestamp for collection: $($collection.Name)"
$latestRestorableTimestampForCollection = Get-AzCosmosDBMongoDBCollectionBackupInformation -ResourceGroupName $resourceGroupName -AccountName $accountName -DatabaseName $databaseName -Name $collection.Name -Location $location
Write-Debug "Latest Restorable Timestamp for collection $($collection.Name): $($latestRestorableTimestampForCollection.LatestRestorableTimestamp)"
$latestRestorableTimestampForCollectionDateTime = [DateTime]$latestRestorableTimestampForCollection.LatestRestorableTimestamp
If ($latestRestorableTimestampForCollectionDateTime -lt $latestRestorableTimestampForDatabase) {
Write-Debug "Latest Restorable Timestamp for collection $($collection.Name) is less than current database restorable timestamp: $latestRestorableTimestampForDatabase"
$latestRestorableTimestampForDatabase = $latestRestorableTimestampForCollectionDateTime
}
Write-Debug "Latest Restorable Timestamp for database so far: $latestRestorableTimestampForDatabase"
}
if ($latestRestorableTimestampForDatabase -eq [DateTime]::MaxValue) {
throw "Error: Failed to retrieve latest backup timestamp for database: $databaseName"
}
Write-Debug "Latest Restorable Timestamp in UTC for database $($databaseName): $latestRestorableTimestampForDatabase"
return $latestRestorableTimestampForDatabase
}
Syntaxe:
Get-LatestRestorableTimestampForMongoDBDatabase `
-ResourceGroupName <resourceGroup> `
-AccountName <account> `
-DatabaseName <database> `
-Location <location>
Ukázkový požadavek:
Import-Module .\LatestRestorableTimestampForMongoDBDatabase.ps1
Get-LatestRestorableTimestampForMongoDBDatabase -ResourceGroupName rg -accountName mongopitracc -databaseName db1 -location eastus
Ukázková odpověď (ve formátu UTC):
Latest restorable timestamp for a database is minimum of restorable timestamps of all the underlying collections
Wednesday, November 3, 2021 8:31:27 PM
Účet MongoDB
Pomocí následujícího skriptu můžete získat nejnovější obnovovatelné časové razítko pro účet MongoDB. Tento skript iteruje všechny kolekce v rámci tohoto účtu a vrátí minimální nejnovější obnovitelné časové razítko všech jeho kolekcí.
Function Get-LatestRestorableTimestampForMongoDBAccount {
[CmdletBinding()]
param(
[Parameter(Position = 0, mandatory = $true)]
[string] $resourceGroupName,
[Parameter(Position = 1, mandatory = $true)]
[string] $accountName,
[Parameter(Position = 2, mandatory = $true)]
[string] $location)
Write-Host
Write-Host "Latest restorable timestamp for an account is minimum of restorable timestamps of all the underlying collections"
Write-Host
Write-Debug "Listing all databases in account: $accountName"
$databases = Get-AzCosmosDBMongoDBDatabase -ResourceGroupName $resourceGroupName -AccountName $accountName
Write-Debug "Found $($databases.Length) databases under account $accountName"
$latestRestorableTimestampForAccount = [DateTime]::MaxValue
foreach ($database in $databases) {
Write-Debug "Listing all collections in database: $($database.Name)"
$collections = Get-AzCosmosDBMongoDBCollection -ResourceGroupName $resourceGroupName -AccountName $accountName -DatabaseName $($database.Name)
If (-Not $collections) {
throw "Error: Found no collections to restore in the given database."
}
Write-Debug "Found $($collections.Length) collections under database $($database.Name)"
foreach ($collection in $collections) {
Write-Debug "Getting latest restorable timestamp for collection: $($collection.Name)"
$latestRestorableTimestampForCollection = Get-AzCosmosDBMongoDBCollectionBackupInformation -ResourceGroupName $resourceGroupName -AccountName $accountName -DatabaseName $database.Name -Name $collection.Name -Location $location
Write-Debug "Latest Restorable Timestamp for collection $($collection.Name): $($latestRestorableTimestampForCollection.LatestRestorableTimestamp)"
$latestRestorableTimestampForCollectionDateTime = [DateTime]$latestRestorableTimestampForCollection.LatestRestorableTimestamp
If ($latestRestorableTimestampForCollectionDateTime -lt $latestRestorableTimestampForAccount) {
Write-Debug "Latest Restorable Timestamp for collection $($collection.Name) is less than current database restorable timestamp: $latestRestorableTimestampForAccount"
$latestRestorableTimestampForAccount = $latestRestorableTimestampForCollectionDateTime
}
Write-Debug "Latest Restorable Timestamp for database so far: $latestRestorableTimestampForAccount"
}
}
if ($latestRestorableTimestampForAccount -eq [DateTime]::MaxValue) {
throw "Error: Failed to retrieve latest backup timestamp for account: $accountName"
}
Write-Debug "Latest Restorable Timestamp in UTC for account $($accountName): $latestRestorableTimestampForAccount"
return $latestRestorableTimestampForAccount
}
Syntaxe:
Get-LatestRestorableTimestampForMongoDBAccount `
-ResourceGroupName <resourceGroupName> `
-AccountName <accountName> `
-Location <location>
Ukázkový požadavek:
Import-Module .\LatestRestorableTimestampForMongoDBAccount.ps1
Get-LatestRestorableTimestampForMongoDBAccount `
-ResourceGroupName rg `
-AccountName mongopitracc `
-Location eastus
Ukázková odpověď (ve formátu UTC):
Latest restorable timestamp for an account is minimum of restorable timestamps of all the underlying collections
Wednesday, November 3, 2021 8:33:49 PM
Informace o zálohování grafu Gremlin
PowerShell
Get-AzCosmosDBGremlinGraphBackupInformation `
-AccountName <System.String> `
-GremlinDatabaseName <System.String> `
[-DefaultProfile <Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer>] `
-Location <System.String> `
-Name <System.String> `
-ResourceGroupName <System.String> [<CommonParameters>]
Ukázkový požadavek:
Get-AzCosmosDBGremlinGraphBackupInformation `
-ResourceGroupName "rg" `
-AccountName "amisigremlinpitracc1" `
-GremlinDatabaseName "db1" `
-Name "graph1" `
-Location "eastus"
Ukázková odpověď (ve formátu UTC):
LatestRestorableTimestamp
-------------------------
3/1/2022 2:19:14 AM
Rozhraní příkazového řádku
az cosmosdb gremlin retrieve-latest-backup-time \
-g {resourcegroup} \
-a {accountname} \
-d {db_name} \
-c {graph_name} \
-l {location}
Ukázkový požadavek:
az cosmosdb gremlin retrieve-latest-backup-time \
-g "rg" \
-a "amisigremlinpitracc1" \
-d "db1" \
-c "graph1" \
-l "eastus"
Ukázková odpověď:
{
"continuousBackupInformation": {
"latestRestorableTimestamp": "3/2/2022 5:31:13 AM"
}
}
Informace o zálohování tabulek
PowerShell
Get-AzCosmosDBTableBackupInformation `
-AccountName <System.String> `
[-DefaultProfile <Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer>] `
-Location <System.String> `
-Name <System.String> `
-ResourceGroupName <System.String> [<CommonParameters>]
Ukázkový požadavek:
Get-AzCosmosDBTableBackupInformation `
-ResourceGroupName "rg" `
-AccountName "amisitablepitracc1" `
-Name "table1" `
-Location "eastus"
Ukázková odpověď (ve formátu UTC):
LatestRestorableTimestamp
-------------------------
3/2/2022 2:19:15 AM
Rozhraní příkazového řádku
az cosmosdb table retrieve-latest-backup-time \
-g {resourcegroup} \
-a {accountname} \
-c {table_name} \
-l {location}
Ukázkový požadavek:
az cosmosdb table retrieve-latest-backup-time \
-g "rg" \
-a "amisitablepitracc1" \
-c "table1" \
-l "eastus"
Ukázková odpověď:
{
"continuousBackupInformation": {
"latestRestorableTimestamp": "3/2/2022 5:33:47 AM"
}
}
Další kroky
Úvod do režimu průběžného zálohování s obnovením k určitému bodu v čase
Nakonfigurujte a spravujte režim průběžného zálohování pomocí webu Azure Portal.