Azure Cosmos DB の定期的なバックアップ間隔と保持期間を変更する
- [アーティクル]
-
-
適用対象: NoSQL MongoDB Cassandra Gremlin Table
Azure Cosmos DB によって、データが 4 時間ごとと任意の時点で自動的に完全バックアップされ、最新の 2 回分のバックアップが保存されます。 この構成は既定のオプションであり、追加コストなしで提供されます。 Azure Cosmos DB アカウントの作成時またはアカウントの作成後に、既定のバックアップ間隔と保有期間を変更できます。 バックアップ構成は Azure Cosmos DB アカウント レベルで設定されるので、アカウントごとに構成する必要があります。 アカウントのバックアップ オプションを構成すると、そのアカウント内のすべてのコンテナーに適用されます。 これらの設定は、Azure portal、Azure PowerShell、または Azure CLI を使用して変更できます。
必須コンポーネント
- 既存の Azure Cosmos DB アカウント。
開始する前に
データを誤って削除または破損した場合は、データを復元するためのサポート リクエストを作成する前に、アカウントのバックアップ保持期間を 7 日以上に増やしてください。このイベントから 8 時間以内に保持期間を延長することをお勧めします。そうすることで、Azure Cosmos DB チームがアカウントを復元するのに十分な時間を確保できます。
既存アカウントのバックアップ オプションを変更する
既存の Azure Cosmos DB アカウントの既定のバックアップ オプションを変更するには、次の手順のようにします。
Azure portal にサインインします。
Azure Cosmos DB アカウントに移動し、[バックアップと復元] ペインを開きます。 必要に応じて、バックアップ間隔とバックアップ保有期間を更新します。
バックアップ間隔 - Azure Cosmos DB によってデータのバックアップ作成が試みられる間隔です。 バックアップにはある程度の時間がかかります。場合によってはダウンストリームの依存関係が原因で失敗する可能性があります。 Azure Cosmos DB では、構成されている間隔でのバックアップ作成が可能な限り試みられますが、その期間内にバックアップが完了することは保証されません。 この値は、時間または分の単位で構成できます。 バックアップ間隔を 1 時間より短く、または 24 時間より長くすることはできません。 この間隔を変更すると、最後のバックアップが作成された時点から新しい間隔が有効になります。
バックアップ保有期間 - 各バックアップが保有される期間を表します。 時間単位または日単位で構成できます。 最小保有期間を、バックアップ間隔 (時間数) の 2 倍より短く、または 720 時間より長くすることはできません。
Copies of data retained (保持するデータのコピー数) - 既定では、データの 2 つのバックアップ コピーが無料で提供されます。 3 つ以上のコピーが必要な場合は、追加料金が発生します。 追加コピーの正確な価格については、価格ページの「消費されたストレージ」セクションを参照してください。
バックアップ ストレージの冗長性 - 必要なストレージ冗長オプションを選択します。 詳細については、「バックアップ ストレージの冗長性」を参照してください。 既定では、アカウントがプロビジョニングされているリージョンでサポートされている場合、既存の定期的なバックアップ モード アカウントには geo 冗長ストレージがあります。 それ以外の場合、アカウントは使用可能な最高の冗長性オプションにフォールバックします。 ローカル冗長などの他のストレージを選択して、バックアップが別のリージョンにレプリケートされないようにすることができます。 既存のアカウントに加えられた変更は、今後のバックアップのみに適用されます。 既存のアカウントのバックアップ ストレージの冗長性が更新された後、その変更が有効になるまでにバックアップ間隔の最大 2 倍の時間がかかる場合があります。また、以前のバックアップを復元するためのアクセス権は即時に失われます。
az cosmosdb update
コマンドを使用して、既存のアカウントの定期的なバックアップ オプションを更新します。
az cosmosdb update \
--resource-group <resource-group-name> \
--name <account-name> \
--backup-interval 480 \
--backup-retention 24
Update-AzCosmosDBAccount
コマンドレットを使用して、既存のアカウントの定期的なバックアップ オプションを更新します。
$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
コマンドレットを使用して、指定した定期バックアップ オプションを使用して新しいアカウントを作成します。
$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'
}
}
次のステップ