Azure Cosmos DB アカウントを定期バックアップ モードから継続的バックアップ モードに移行する

適用対象: NoSQL MongoDB Gremlin Table

定期モードのバックアップ ポリシーを持つ Azure Cosmos DB アカウントは、Azure portalCLIPowerShell、または Resource Manager テンプレートを使用して継続モードに移行できます。 定期モードから継続モードへの移行は一方向の移行であり、元に戻すことはできません。 定期モードから継続モードに移行すると、継続的モードのベネフィットを適用できます。

継続モードに移行する主な理由は次のとおりです。

  • Azure portal、CLI、または PowerShell を使用してセルフサービス復元を実行できます。
  • 過去 30 日または 7 日以内の日時を秒単位で指定して復元を実行できます。
  • ある期間内のシャードまたはパーティション キー範囲全体でバックアップに一貫性があることを確認できます。
  • コンテナー、データベース、またはアカウント全体が削除または変更されたときにそれらを復元できます。
  • コンテナー、データベース、またはアカウントのイベントを選択して、いつ復元を開始するのかを決定できます。

注意

移行機能は一方向のみであり、元に戻すことができない操作です。 つまり、定義モードから継続モードに移行した後、定期モードに戻すことはできません。

次の条件に該当する場合にのみ、アカウントを継続的バックアップ モードに移行できます。 アカウントを移行する前に、ポイントインタイム リストアの制限事項も確認してください。

  • アカウントの型が NoSQL 用 API、Table 用 API、Gremlin、または MongoDB 用 API の場合。
  • アカウントに単一の書き込みリージョンがある場合。
  • 分析ストアでアカウントが有効になっていない場合。

アカウントでカスタマー マネージド キーが使われている場合は、マネージド ID (システム割り当てまたはユーザー割り当て) を、Key Vault のアクセス ポリシーで宣言し、アカウントの既定の ID として設定する必要があります。

アクセス許可

移行を実行するには、移行するアカウントに対する Microsoft.DocumentDB/databaseAccounts/write アクセス許可が必要です。

移行後の価格

アカウントを継続的バックアップ モードに移行すると、定期バックアップ モードと比較してコストが変わる場合があります。 30 日と 7 日のレベル選択も、バックアップのコストに影響を与えます。 詳細については、継続的バックアップ モードの価格に関する記事を参照してください。

ポータルを使用した移行

アカウントを定期バックアップから継続的バックアップ モードに移行するには、次の手順を使用します。

  1. Azure portal にサインインします。

  2. Azure Cosmos DB アカウントに移動し、[バックアップと復元] ペインを開きます。 [バックアップ ポリシー] タブを選択し、[変更] を選択します。 目的の継続モードを選択し、[保存] を選択します。

    Migrate to continuous mode using Azure portal

  3. 移行が進行中の場合、ポップアップに [Updating Backup policy settings] (バックアップ ポリシーの設定を更新しています) と表示されます。 この通知を選択すると、アカウント レベルでは [更新中] と表示され、アカウントの概要のバックアップ ポリシーでは [移行中] と表示される場合があります。 完了すると、バックアップ ポリシーは、選択したレベルの継続モードに切り替わります。 移行にかかる時間は、アカウントのデータのサイズによって異なります。

    Check the status of migration from Azure portal

PowerShell を使用して移行する

  1. Azure PowerShell の最新バージョンまたは 6.2.0 以降のバージョンをインストールします。

  2. プロビジョニングまたは移行に Continous7Days モードを使用するには、cosmosdb 拡張機能のプレビューを使用する必要があります。 Install-Module -Name Az.CosmosDB -AllowPrerelease を使用します

  3. 次に、以下の手順を実行します。

    1. Azure アカウントに接続します。

      Connect-AzAccount
      
    2. アカウントを定期バックアップ モードから、continuous30days レベルまたは continuous7days レベルの継続的バックアップ モードに移行します。 レベルの値が指定されていない場合は、continuous30days であると想定されます。

      Update-AzCosmosDBAccount ` 
         -ResourceGroupName "myrg" ` 
         -Name "myAccount" `
         -BackupPolicyType "Continuous"
      
         Update-AzCosmosDBAccount ` 
         -ResourceGroupName "myrg" ` 
         -Name "myAccount" `
         -BackupPolicyType "Continuous" `
         -ContinuousTier "Continuous7Days"
      

CLI を使用した移行

  1. Azure CLI の最新バージョンをインストールします。
  • Azure CLI をまだインストールしていない場合は、「Azure CLI のインストール」を参照してください。 または、Azure portal から Azure Cloud Shell を使用することもできます。
  1. Azure アカウントにサインインし、次のコマンドを実行してアカウントを継続モードに移行します。

    az login
    
  2. アカウントを continuous30days または continuous7days のレベルに移行します。 レベルの値が指定されていない場合は、continuous30days であると想定されます。

    az cosmosdb update -n <myaccount> -g <myresourcegroup> --backup-policy-type continuous
    
    az cosmosdb update -g "my-rg" -n "my-continuous-backup-account" --backup-policy-type "Continuous" --continuous-tier "Continuous7Days"
    
  3. 移行が正常に完了すると、backupPolicy オブジェクトが出力に表示されます。これには Continuous の値を持つ type プロパティが含まれます。

     {
       "apiProperties": null,
       "backupPolicy": {
            "continuousModeProperties": {
                    "tier": "Continuous7Days"
            },
            "migrationState": null,
            "type": "Continuous"
       },
          …
     }
    

移行の状態を確認する

次のコマンドを実行して、backupPolicy オブジェクトの status または targetType プロパティを確認します。 移行を開始すると、状態は [in-progress] (進行中) と表示されます。

az cosmosdb show -n "myAccount" -g "myrg"

Check the migration status using PowerShell command

移行が完了すると、バックアップの種類が [継続的] に変わり、選択したレベルが表示されます。 レベルが指定されていない場合、Continuous30Days に設定されます。 同じコマンドを再度実行して、状態を確認します。

az cosmosdb show -n "myAccount" -g "myrg"

Backup type changes to continuous after the migration is complete

Resource Manager テンプレートを使用して定期的モードから継続的モードに移行する

ARM テンプレートを使用して継続的バックアップ モードに移行するには、テンプレートの backupPolicy セクションを見つけて、type プロパティを更新します。 たとえば、既存のテンプレートに次の JSON オブジェクトのようなバックアップ ポリシーがあるとします。

"backupPolicy": {
   "type": "Periodic",
   "periodicModeProperties": {
   "backupIntervalInMinutes": 240,
   "backupRetentionIntervalInHours": 8
   }
}

これを次の JSON オブジェクトに置き換えます。

"backupPolicy": { 
   "type": "Continuous", 
   "continuousModeProperties": { 
      "tier": "Continuous7Days" 
    } 
} 

次に、Azure PowerShell または CLI を使用してテンプレートをデプロイします。 次の例は、CLI コマンドを使用してテンプレートをデプロイする方法を示しています。

az deployment group create -g <ResourceGroup> --template-file <ProvisionTemplateFilePath>

継続的モード レベルを変更する

Azure PowerShell、Azure CLI、または Azure portal で Continuous30DaysContinous7Days を切り替えることができます。

所定の Azure Cosmos DB アカウントのポータルで、[ポイントインタイム リストア] ペインを選択し、[バックアップ ポリシー モード] の横の [変更] リンクを選択して、[継続 (30 日)] または [継続 (7 日)] オプションを表示します。 必要なものを選択し、[保存] を選択します。

Screenshot of dialog to select tier of continuous mode.

次の Azure CLI コマンドは、既存のアカウントを Continous7Days に切り替える方法を示しています。

az cosmosdb update \ 
    --resource-group "my-rg" \ 
    --name "my-continuous-backup-account" \ 
    --backup-policy-type "Continuous" \ 
    --continuous-tier "Continuous7Days" 

次の Azure PowerShell コマンドは、既存のアカウントを Continous7Days に切り替える方法を示しています。

Update-AzCosmosDBAccount ` 
    -ResourceGroupName "myrg" ` 
    -Name "myAccount" `
    -BackupPolicyType Continuous `
    -ContinuousTier Continuous7Days

また、Azure CLI と Azure PowerShell を使用するのと同様の方法で ARM テンプレートを使用することもできます。

注意

30 日レベルから 7 日レベルに変更すると、7 日を超える履歴を復元する機能はすぐに使用できなくなります。 7 日レベルから 30 日レベルに変更すると、すぐに 7 日を超えて復元することができなくなります。 復元する最も早い時点では、Azure Powershell または Azure CLI を使用して使用可能なアカウント メタデータから抽出できます。 7 日レベルと 30 日レベルの切り替えによる価格の影響もすぐに表示されます。

移行中と移行後に予期されること

定期モードから継続モードに移行するとき、アカウント レベルの更新または削除を実行するコントロール プレーン操作は実行できません。 たとえば、リージョンの追加または削除、アカウントのフェールオーバー、バックアップ ポリシーの更新などの操作は、移行の進行中は実行できません。 移行にかかる時間は、アカウントのデータのサイズとリージョンの数によって異なります。 移行したアカウントの復元操作は、移行が正常に完了するまでは成功しません。

移行が完了した後にアカウントを復元することができます。 太平洋標準時の午後 1 時に移行が完了する場合は、太平洋標準時の午後 1 時からポイントインタイム リストアを実行できます。

よく寄せられる質問

移行はアカウント レベルでしか行われないのですか?

はい。

どのアカウントをバックアップ移行のターゲットにすることができますか?

現時点で、移行をサポートしているのは、書き込みリージョンが 1 つで、スループットが共有、プロビジョニング、自動スケーリング プロビジョニングのいずれかである NoSQL 用 API アカウント、Table 用 API アカウント、Gremlin API アカウント、MongoDB 用 API アカウントです。

分析ストレージと複数の書き込みリージョンが有効になっているアカウントは、移行でサポートされません。

移行には時間がかかりますか? 通常はどのくらいかかりますか?

移行にはさまざまな長さの時間がかかり、その時間は、アカウントのデータのサイズとリージョンの数によって大きく異なります。 移行の状態は Azure CLI または PowerShell コマンドを使用して取得できます。 数十テラバイトのデータがある大規模なアカウントの場合、移行が完了するまで最大で数日かかる可能性があります。

移行による可用性への影響はありますか? ダウンタイムは発生しますか?

いいえ、移行作業はバックグラウンドで実行されます。 そのため、クライアント要求には影響を及ぼしません。 ただし、移行中はいくつかのバックエンド操作を実行する必要があり、アカウントの負荷が高い場合は所要時間が延びることがあります。

移行が失敗したらどうなりますか? 定期バックアップのままですか? それとも継続的バックアップに切り替わるのですか?

移行プロセスが開始されると、アカウントは継続的モードで有効になります。 移行が失敗した場合、成功するまでもう一度移行を開始する必要があります。

移行前、移行中、移行後にタイムスタンプへの復元を実行するにはどうすればよいですか?

t1 に移行を開始して t5 に終了すると仮定した場合、t1 から t5 までの間は復元タイムスタンプを使用できません。

また、アカウントが継続的モードになったと仮定します。 t5 以降の時点に復元する場合は、継続的アカウントで通常行うように、Azure portal、CLI、または PowerShell を使用して復元を実行します。 このセルフサービス復元要求は、移行が完了した後でないと実行できません。

t1 より前の時点に復元する場合は、定期バックアップ アカウントで通常行うように、サポート チケットを開くことができます。 移行後、最大 30 日間は定期的な復元を実行できます。 この 30 日の間は、移行前のアカウントのバックアップ保持/間隔に基づいて復元を実行できます。 たとえば、1 時間の間隔で 24 個のコピーを保持するようにバックアップが構成された場合、(t1 – 24 hours)t1 の間の任意の時点に復元できます。

移行中にブロックされるアカウント レベルのコントロール プレーン操作はどれですか?

リージョンの追加または削除、フェールオーバー、バックアップ ポリシーの変更、任意のスループットの変更など、データ移動につながる操作は、移行中ブロックされます。

なんらかの根本的な問題により移行が失敗した場合、再試行して正常に完了するまで、コントロール プレーン操作はブロックされますか?

移行に失敗しても、コントロール プレーン操作がブロックされることはありません。 移行に失敗した場合は、成功するまで再試行してから、他のコントロール プレーン操作を実行することをお勧めします。

移行をキャンセルすることはできますか?

移行は、元に戻すことができない操作のため、キャンセルすることはできません。

データの使用量とリージョンの数に基づいて移行時間を見積もる際に役立つツールはありますか?

時間を見積もるためのツールはありません。 テストとスケールの実行では、1TB のデータを持つ単一のリージョン アカウントに約 90 分かかることが示されています。

複数リージョンのアカウントの場合は、データの合計サイズを Number_of_regions * Data_in_single_region として計算します。

継続的バックアップ モードは GA になりましたが、アカウントのコピーを復元するべきですか? 実稼働アカウントの移行を決定する前に、コピーで移行を試してみるべきですか?

実稼働アカウントを移行する前に、継続的バックアップ モードの機能をテストして、予想どおりに動作することを確認することをお勧めします。 移行は一方向の操作であり、元に戻すことはできません。

次のステップ

継続的バックアップ モードの詳細については、次の記事を参照してください。