Sürekli yedekleme hesapları için en son geri yüklenebilen zaman damgasını alma
Makale
ŞUNLAR IÇIN GEÇERLIDIR: NoSQL MongoDB Gremlin Masa
Bu makalede, sürekli yedekleme modu olan hesaplar için en son geri yüklenebilen zaman damgasının nasıl alındığı açıklanır. Azure PowerShell ve Azure CLI kullanarak en son geri yüklenebilen süreyi nasıl elde etmek istediğiniz açıklanır ve PowerShell ve CLI komutları için istek ve yanıt biçimi sağlanır.
Bu özellik NoSQL kapsayıcıları için Azure Cosmos DB API'sinde, MongoDB API'sinde, Tablo API'sinde ve Gremlin grafları için API'de desteklenir.
Bir veritabanı için en son geri yüklenebilen zaman damgasını almak için aşağıdaki betiği kullanın. Bu betik, belirtilen veritabanındaki tüm kapsayıcılarda yinelenir ve tüm kapsayıcılarının en az geri yüklenebilen zaman damgasını döndürür.
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
}
Latest restorable timestamp for a database is minimum of restorable timestamps of all the underlying containers
Wednesday, November 3, 2021 8:02:44 PM
SQL hesabı
SQL hesabı için en son geri yüklenebilen zaman damgasını almak için aşağıdaki betiği kullanın. Bu betik, bu hesaptaki tüm kapsayıcılarda yinelenir ve tüm kapsayıcılarının en az geri yüklenebilen zaman damgasını döndürür.
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
}
Bir veritabanı için en son geri yüklenebilen zaman damgasını almak için aşağıdaki betiği kullanın. Bu betik, bu veritabanındaki tüm koleksiyonlarda yinelenir ve tüm koleksiyonlarının en az geri yüklenebilen zaman damgasını döndürür.
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
}
Latest restorable timestamp for a database is minimum of restorable timestamps of all the underlying collections
Wednesday, November 3, 2021 8:31:27 PM
MongoDB hesabı
MongoDB hesabı için en son geri yüklenebilen zaman damgasını almak için aşağıdaki betiği kullanabilirsiniz. Bu betik, bu hesaptaki tüm koleksiyonlarda yinelenir ve tüm koleksiyonlarının en az geri yüklenebilen zaman damgasını döndürür.
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
}
Latest restorable timestamp for an account is minimum of restorable timestamps of all the underlying collections
Wednesday, November 3, 2021 8:33:49 PM
Microsoft PaaS ilişkisel veritabanı tekliflerini kullanarak bulut, şirket içi ve karma ilişkisel veritabanları için SQL Server veritabanı altyapısını yönetme.
Geri yükleme süresini belirlemeyi ve canlı veya silinmiş bir Azure Cosmos DB hesabını geri yüklemeyi öğrenin. Azure portal, PowerShell, CLI veya Azure Resource Manager şablonu kullanarak geri yükleme süresini belirlemek ve hesabı geri yüklemek için olay akışının nasıl kullanılacağını gösterir.
Sürekli yedekleme modunda Azure portalını, Azure CLI'yı, Azure PowerShell'i veya Azure Resource Manager şablonunu kullanarak silinen kapsayıcıyı veya veritabanını aynı, mevcut Azure Cosmos DB hesabına geri yükleyin.
Sürekli yedekleme hesabının geri yükleme izinlerini belirli bir rol veya sorumluyla yalıtmayı ve kısıtlamayı öğrenin. Azure portalı, CLI kullanarak yerleşik rol atamayı veya özel rol tanımlamayı gösterir.
Azure Cosmos DB şu anda düzenli moddan sürekli moda tek yönlü geçişi desteklemektedir ve geri alınamaz. Düzenli moddan sürekli moda geçtikten sonra, sürekli modun avantajlarını uygulayabilirsiniz.
Azure portalı, PowerShell, CLI ve Resource Manager şablonlarını kullanarak sürekli yedekleme ve belirli bir noktaya geri yükleme ile hesap sağlamayı öğrenin.
Bu makalede Azure Cosmos DB belirli bir noktaya geri yükleme özelliği için kaynak modeli açıklanır. Sürekli yedeklemeyi destekleyen parametreleri ve SQL ve MongoDB hesapları için Azure Cosmso DB'de geri yüklenebilen kaynakları açıklar.