在 Azure Cosmos DB 帳戶修改定期備份的間隔與保留期間
適用於:NoSQL MongoDB Cassandra Gremlin 桌子
Azure Cosmos DB 會每隔 4 小時 (在任何時間點) 自動建立資料的完整備份一次,並會儲存最新的兩個備份。 此設定是預設選項,並不會產生任何額外成本。 您可以在建立 Azure Cosmos DB 帳戶期間或建立之後,變更定期備份的間隔和保留期間。 備份設定會設定在 Azure Cosmos DB 帳戶層級,且必須在每個帳戶上進行此設定。 設定帳戶的備份選項後,這些選項會套用到該帳戶內的所有容器。 您可以使用 Azure 入口網站、Azure PowerShell 或 Azure CLI 來修改這些設定。
必要條件
在您開始使用 Intune 之前
如果已意外刪除或損毀資料,則在建立支援要求以還原資料之前,請務必將帳戶的備份保留期增加到至少 7 天。最好在此事件的 8 小時內增加保留期。如此一來,Azure Cosmos DB 小組就有足夠的時間來還原您的帳戶。
修改現有帳戶的備份選項
請使用下列步驟來變更現有 Azure Cosmos DB 帳戶的預設備份選項。
登入 Azure 入口網站。
導覽至 Azure Cosmos DB 帳戶,並開啟 [備份和還原] 窗格。 視需要更新備份間隔和備份保留期間。
備份間隔 - 這是 Azure Cosmos DB 嘗試建立資料備份的間隔。 備份需要時間,而在某些情況下,可能會因下游相依性而失敗。 Azure Cosmos DB 會盡量以設定的間隔來建立備份,但不保證備份會在該時間間隔內完成。 您可以使用小時或分鐘來設定此值。 備份間隔不能小於 1 小時和大於 24 小時。 當您變更此間隔時,新的間隔會從上次建立備份時開始生效。
備份保留期 - 這代表每個備份的保留期間。 您可以使用小時或天進行設定。 最小保留期間不能小於備份間隔的兩倍 (小時),且不能大於 720 小時。
保留的資料副本 - 系統預設會免費提供兩份資料備份複本。 如果您需要兩個以上的複本,便會收取額外費用。 請參閱定價頁面中〈取用的儲存體〉一節,以了解額外複本的確切價格。
備份儲存體備援 - 選擇必要的儲存體備援選項。 如需詳細資訊,請參閱備份儲存體備援。 如果帳戶佈建所在的區域支援異地備援儲存體,則您現有的定期備份模式帳戶預設會有異地備援儲存體。 否則,帳戶會後援回可用的最高備援選項。 您可以選擇其他儲存體 (例如本地備援),確保未將備份複寫至另一個區域。 對現有帳戶所做的變更僅適用於未來的備份。 更新現有帳戶的備份儲存體備援之後,最多可能需要兩倍的備份間隔時間,變更才會生效,而且您將無權立即還原較舊的備份。
使用 az cosmosdb update
命令為現有帳戶更新定期備份選項。
az cosmosdb update \
--resource-group <resource-group-name> \
--name <account-name> \
--backup-interval 480 \
--backup-retention 24
使用 Update-AzCosmosDBAccount
Cmdlet 為現有帳戶更新定期備份選項。
$parameters = @{
ResourceGroupName = "<resource-group-name>"
Name = "<account-name>"
BackupIntervalInMinutes = 480
BackupRetentionIntervalInHours = 24
}
Update-AzCosmosDBAccount @parameters
使用下列 Azure Resource Manager JSON 範本,為現有帳戶更新定期備份選項。
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"newAccountName": {
"type": "string",
"defaultValue": "[format('nosql-{0}', toLower(uniqueString(resourceGroup().id)))]",
"metadata": {
"description": "Name of the existing Azure Cosmos DB account."
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "Location for the Azure Cosmos DB account."
}
}
},
"resources": [
{
"type": "Microsoft.DocumentDB/databaseAccounts",
"apiVersion": "2022-05-15",
"name": "[parameters('newAccountName')]",
"location": "[parameters('location')]",
"kind": "GlobalDocumentDB",
"properties": {
"databaseAccountOfferType": "Standard",
"locations": [
{
"locationName": "[parameters('location')]"
}
],
"backupPolicy": {
"type": "Periodic",
"periodicModeProperties": {
"backupIntervalInMinutes": 480,
"backupRetentionIntervalInHours": 24,
"backupStorageRedundancy": "Local"
}
}
}
}
]
}
或著,您也可以使用相同範本的 Bicep 變體。
@description('Name of the existing Azure Cosmos DB account.')
param newAccountName string = 'nosql-${toLower(uniqueString(resourceGroup().id))}'
@description('Location for the Azure Cosmos DB account.')
param location string = resourceGroup().location
resource account 'Microsoft.DocumentDB/databaseAccounts@2022-05-15' = {
name: newAccountName
location: location
kind: 'GlobalDocumentDB'
properties: {
databaseAccountOfferType: 'Standard'
locations: [
{
locationName: location
}
]
backupPolicy:
type: 'Periodic'
periodicModeProperties:
backupIntervalInMinutes: 480,
backupRetentionIntervalInHours: 24,
backupStorageRedundancy: 'Local'
}
}
請使用下列步驟來變更新 Azure Cosmos DB 帳戶的預設備份選項。
佈建新帳戶時,請從 [備份原則] 索引標籤中,選取 [定期]* 備份原則。 定期原則可讓您設定備份間隔、備份保留期和備份儲存體備援。 例如,您可以選擇 [本機備援備份儲存體] 或 [區域備援備份儲存體] 選項,以防止在您的區域外部進行備份資料複寫。
使用 az cosmosdb create
命令建立具有指定定期備份選項的新帳戶。
az cosmosdb create \
--resource-group <resource-group-name> \
--name <account-name> \
--locations regionName=<azure-region> \
--backup-interval 360 \
--backup-retention 12
使用 New-AzCosmosDBAccount
Cmdlet 建立具有指定定期備份選項的新帳戶。
$parameters = @{
ResourceGroupName = "<resource-group-name>"
Name = "<account-name>"
Location = "<azure-region>"
BackupPolicyType = "Periodic"
BackupIntervalInMinutes = 360
BackupRetentionIntervalInHours = 12
}
New-AzCosmosDBAccount @parameters
使用下列 Azure Resource Manager JSON 範本,為現有帳戶更新定期備份選項。
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"newAccountName": {
"type": "string",
"defaultValue": "[format('nosql-{0}', toLower(uniqueString(resourceGroup().id)))]",
"metadata": {
"description": "New Azure Cosmos DB account name. Max length is 44 characters."
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "Location for the new Azure Cosmos DB account."
}
}
},
"resources": [
{
"type": "Microsoft.DocumentDB/databaseAccounts",
"apiVersion": "2022-05-15",
"name": "[parameters('newAccountName')]",
"location": "[parameters('location')]",
"kind": "GlobalDocumentDB",
"properties": {
"databaseAccountOfferType": "Standard",
"locations": [
{
"locationName": "[parameters('location')]"
}
],
"backupPolicy": {
"type": "Periodic",
"periodicModeProperties": {
"backupIntervalInMinutes": 360,
"backupRetentionIntervalInHours": 12,
"backupStorageRedundancy": "Zone"
}
}
}
}
]
}
或著,您也可以使用相同範本的 Bicep 變體。
@description('New Azure Cosmos DB account name. Max length is 44 characters.')
param newAccountName string = 'sql-${toLower(uniqueString(resourceGroup().id))}'
@description('Location for the new Azure Cosmos DB account.')
param location string = resourceGroup().location
resource account 'Microsoft.DocumentDB/databaseAccounts@2022-05-15' = {
name: newAccountName
location: location
kind: 'GlobalDocumentDB'
properties: {
databaseAccountOfferType: 'Standard'
locations: [
{
locationName: location
}
]
backupPolicy:
type: 'Periodic'
periodicModeProperties:
backupIntervalInMinutes: 360,
backupRetentionIntervalInHours: 12,
backupStorageRedundancy: 'Zone'
}
}
下一步