Azure SQL Database の長期的なバックアップ保有期間を管理するManage Azure SQL Database long-term backup retention

Azure SQL Database では、長期的なバックアップ保有期間ポリシー (LTR) を使用して、単一またはプールされたデータベースを構成し、別々の Azure Blob Storage コンテナーに最大 10 年間自動的にデータベースのバックアップを保持することができます。In Azure SQL Database, you can configure a single or a pooled database with a long-term backup retention policy (LTR) to automatically retain the database backups in separate Azure Blob storage containers for up to 10 years. Azure Portal または PowerShell でこのようなバックアップを使用して、データベースを復旧できます。You can then recover a database using these backups using the Azure portal or PowerShell.

重要

Azure SQL Database Managed Instance は現在長期的なバックアップ保有期間をサポートしていません。Azure SQL Database Managed Instance does not currently support long-term backup retention.

Azure portal を使用して長期的なバックアップを管理するUse the Azure portal to manage long-term backups

以下のセクションでは、Azure Portal を使用して長期保存を構成し、長期保存のバックアップを表示し、長期保存からバックアップを復元する方法について説明します。The following sections show you how to use the Azure portal to configure the long-term retention, view backups in long-term retention, and restore backup from long-term retention.

長期保存ポリシーを構成するConfigure long-term retention policies

ご利用のサービス レベルのリテンション期間より長く自動バックアップを保持するように SQL Database を構成できます。You can configure SQL Database to retain automated backups for a period longer than the retention period for your service tier.

  1. Azure Portal で SQL Server を選択し、 [バックアップの管理] をクリックします。In the Azure portal, select your SQL server and then click Manage Backups. [ポリシーの構成] タブで、長期的なバックアップ保有期間ポリシーを設定または変更するデータベースのチェックボックスをオンにしますOn the Configure policies tab, select the checkbox for the database on which you want to set or modify long-term backup retention policies. データベースの横にあるチェックボックスがオンになっていない場合、そのデータベースにはポリシーの変更が適用されません。If the checkbox next to the database is not selected, the changes for the policy will not apply to that database.

    バックアップの管理リンク

  2. [ポリシーの構成] ウィンドウで、毎週、毎月、または毎年のバックアップを保持するかどうかを選択し、それぞれの保有期間を指定します。In the Configure policies pane, select if want to retain weekly, monthly or yearly backups and specify the retention period for each.

    ポリシーを構成する

  3. 完了したら、 [適用] をクリックします。When complete, click Apply.

重要

長期的なバックアップ保有期間ポリシーを有効にすると、初回バックアップが表示されて復元に利用できる状態になるまでに、最大 7 日かかる場合があります。When you enable a long-term backup retention policy, it may take up to 7 days for the first backup to become visible and available to restore. LTR バックアップ周期の詳細については、長期的なバックアップ保有期間に関するページを参照してください。For details of the LTR backup cadance, see long-term backup retention.

Azure Portal を使用してバックアップを表示し、バックアップから復元するView backups and restore from a backup using Azure portal

LTR ポリシーを使用して保持されている特定のデータベースのバックアップを表示し、それらのバックアップから復元します。View the backups that are retained for a specific database with a LTR policy, and restore from those backups.

  1. Azure Portal で SQL Server を選択し、 [バックアップの管理] をクリックします。In the Azure portal, select your SQL server and then click Manage Backups. [利用可能なバックアップ] タブで、利用可能なバックアップを表示するデータベースを選択します。On the Available backups tab, select the database for which you want to see available backups.

    データベースを選択する

  2. [利用可能なバックアップ] ウィンドウで、利用可能なバックアップを確認します。In the Available backups pane, review the available backups.

    バックアップを確認する

  3. 復元するバックアップを選択し、新しいデータベース名を指定します。Select the backup from which you want to restore, and then specify the new database name.

    復元

  4. [OK] をクリックして、Azure SQL ストレージ内にあるバックアップから新しいデータベースにデータベースを復元します。Click OK to restore your database from the backup in Azure SQL storage to the new database.

  5. ツール バーの通知アイコンをクリックして、復元ジョブの状態を確認します。On the toolbar, click the notification icon to view the status of the restore job.

    復元ジョブの進行状況

  6. 復元ジョブが完了したら、 [SQL データベース] ページを開き、新しく復元されたデータベースを確認します。When the restore job is completed, open the SQL databases page to view the newly restored database.

注意

ここから、SQL Server Management Studio を使用して、復元されたデータベースに接続し、必要なタスクを実行できます。たとえば、復元されたデータベースからデータを少し抽出して既存のデータベースにコピーしたり、既存のデータベースを削除し、復元されたデータベースの名前を既存のデータベース名に変更したりできます。From here, you can connect to the restored database using SQL Server Management Studio to perform needed tasks, such as to extract a bit of data from the restored database to copy into the existing database or to delete the existing database and rename the restored database to the existing database name.

PowerShell を使用して長期的なバックアップを管理するUse PowerShell to manage long-term backups

注意

この記事は、新しい Azure PowerShell Az モジュールを使用するために更新されました。This article has been updated to use the new Azure PowerShell Az module. AzureRM モジュールはまだ使用でき、少なくとも 2020 年 12 月までは引き続きバグ修正が行われます。You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Az モジュールと AzureRM の互換性の詳細については、「Introducing the new Azure PowerShell Az module (新しい Azure PowerShell Az モジュールの概要)」を参照してください。To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Az モジュールのインストール手順については、Azure PowerShell のインストールを参照してください。For Az module installation instructions, see Install Azure PowerShell.

重要

PowerShell Azure Resource Manager モジュールは Azure SQL Database で引き続きサポートされますが、今後の開発はすべて Az.Sql モジュールを対象に行われます。The PowerShell Azure Resource Manager module is still supported by Azure SQL Database, but all future development is for the Az.Sql module. これらのコマンドレットについては、「AzureRM.Sql」を参照してください。For these cmdlets, see AzureRM.Sql. Az モジュールと AzureRm モジュールのコマンドの引数は実質的に同じです。The arguments for the commands in the Az module and in the AzureRm modules are substantially identical.

以下のセクションでは、PowerShell を使用して長期的なバックアップ保有期間を構成し、Azure SQL ストレージ内のバックアップを表示し、Azure SQL ストレージ内のバックアップから復元する方法について説明します。The following sections show you how to use PowerShell to configure the long-term backup retention, view backups in Azure SQL storage, and restore from a backup in Azure SQL storage.

長期的な保有期間を管理するための RBAC ロールRBAC roles to manage long-term retention

Get-AzSqlDatabaseLongTermRetentionBackup および Restore-AzSqlDatabase の場合、次のいずれかのロールが必要です。For Get-AzSqlDatabaseLongTermRetentionBackup and Restore-AzSqlDatabase, you will need to have one of the following roles:

  • サブスクリプションの所有者ロール、またはSubscription Owner role or

  • SQL Server の共同作成者ロール、またはSQL Server Contributor role or

  • 次のアクセス許可を持つカスタム ロール:Custom role with the following permissions:

    Microsoft.Sql/locations/longTermRetentionBackups/read Microsoft.Sql/locations/longTermRetentionServers/longTermRetentionBackups/read Microsoft.Sql/locations/longTermRetentionServers/longTermRetentionDatabases/longTermRetentionBackups/readMicrosoft.Sql/locations/longTermRetentionBackups/read Microsoft.Sql/locations/longTermRetentionServers/longTermRetentionBackups/read Microsoft.Sql/locations/longTermRetentionServers/longTermRetentionDatabases/longTermRetentionBackups/read

Remove-AzSqlDatabaseLongTermRetentionBackup の場合、ロールには、次のいずれかのロールが必要です。For Remove-AzSqlDatabaseLongTermRetentionBackup, you will need to have one of the following roles:

  • サブスクリプションの所有者ロール、またはSubscription Owner role or

  • 次のアクセス許可を持つカスタム ロール:Custom role with the following permission:

    Microsoft.Sql/locations/longTermRetentionServers/longTermRetentionDatabases/longTermRetentionBackups/deleteMicrosoft.Sql/locations/longTermRetentionServers/longTermRetentionDatabases/longTermRetentionBackups/delete

注意

SQL Server の共同作成者ロールには、LTR バックアップを削除するアクセス許可はありません。The SQL Server Contributor role does not have permission to delete LTR backups.

RBAC のアクセス許可は、サブスクリプションまたはリソース グループのいずれかのスコープで付与できます。RBAC permissions could be granted in either subscription or resource group scope. ただし、削除されたサーバーに属する LTR バックアップにアクセスするには、そのサーバーのサブスクリプション スコープにアクセス許可を付与する必要があります。However, to access LTR backups that belong to a dropped server, the permission must be granted in the subscription scope of that server.

LTR ポリシーを作成するCreate an LTR policy

# Get the SQL server 
# $subId = “{subscription-id}”
# $serverName = “{server-name}”
# $resourceGroup = “{resource-group-name}” 
# $dbName = ”{database-name}”

Connect-AzAccount
Select-AzSubscription -SubscriptionId $subId

# get the server
$server = Get-AzSqlServer -ServerName $serverName -ResourceGroupName $resourceGroup

# create LTR policy with WeeklyRetention = 12 weeks. MonthlyRetention and YearlyRetention = 0 by default.
Set-AzSqlDatabaseBackupLongTermRetentionPolicy -ServerName $serverName -DatabaseName $dbName -ResourceGroupName $resourceGroup -WeeklyRetention P12W 

# create LTR policy with WeeklyRetention = 12 weeks, YearlyRetention = 5 years and WeekOfYear = 16 (week of April 15). MonthlyRetention = 0 by default.
Set-AzSqlDatabaseBackupLongTermRetentionPolicy -ServerName $serverName -DatabaseName $dbName -ResourceGroupName $resourceGroup -WeeklyRetention P12W -YearlyRetention P5Y -WeekOfYear 16

LTR ポリシーを表示するView LTR policies

サーバー内の LTR ポリシーを一覧表示する例を次に示しますThis example shows how to list the LTR policies within a server

# Get all LTR policies within a server
$ltrPolicies = Get-AzSqlDatabase -ResourceGroupName Default-SQL-WestCentralUS -ServerName trgrie-ltr-server | Get-AzSqlDatabaseLongTermRetentionPolicy -Current 

# Get the LTR policy of a specific database 
$ltrPolicies = Get-AzSqlDatabaseBackupLongTermRetentionPolicy -ServerName $serverName -DatabaseName $dbName  -ResourceGroupName $resourceGroup -Current

LTR ポリシーをクリアするClear an LTR policy

LTR ポリシーをデータベースから消去する例を次に示しますThis example shows how to clear an LTR policy from a database

Set-AzSqlDatabaseBackupLongTermRetentionPolicy -ServerName $serverName -DatabaseName $dbName -ResourceGroupName $resourceGroup -RemovePolicy

LTR バックアップを表示するView LTR backups

サーバー内の LTR バックアップを一覧表示する例を次に示します。This example shows how to list the LTR backups within a server.

# List all LTR backups under the current subscription in a specific Azure region 
# The list includes backups for existing servers and dropped servers grouped by the logical database id.
# Within each group they are ordered by the timestamp, the earliest backup first.
# Requires Subscription scope permission
$ltrBackups = Get-AzSqlDatabaseLongTermRetentionBackup -Location $server.Location 

# List the LTR backups under a specific resource group in a specific Azure region 
# The list includes backups from the existing servers only grouped by the logical database id.
# Within each group they are ordered by the timestamp, the earliest backup first. 
$ltrBackups = Get-AzSqlDatabaseLongTermRetentionBackup -Location $server.Location -ResourceGroupName $resourceGroup

# List the LTR backups under an existing server
# The list includes backups from the existing servers only grouped by the logical database id.
# Within each group they are ordered by the timestamp, the earliest backup first. 
$ltrBackups = Get-AzSqlDatabaseLongTermRetentionBackup -Location $server.Location -ResourceGroupName $resourceGroup -ServerName $serverName

# List the LTR backups for a specific database 
# The backups are ordered by the timestamp, the earliest backup first. 
$ltrBackups = Get-AzSqlDatabaseLongTermRetentionBackup -Location $server.Location -ServerName $serverName -DatabaseName $dbName

# List LTR backups only from live databases (you have option to choose All/Live/Deleted)
# The list includes backups for existing servers and dropped servers grouped by the logical database id.
# Within each group they are ordered by the timestamp, the earliest backup first.  
# Requires Subscription scope permission
$ltrBackups = Get-AzSqlDatabaseLongTermRetentionBackup -Location $server.Location -DatabaseState Live

# Only list the latest LTR backup for each database under a server
$ltrBackups = Get-AzSqlDatabaseLongTermRetentionBackup -Location $server.Location -ServerName $serverName -OnlyLatestPerDatabase

LTR バックアップを削除するDelete LTR backups

バックアップの一覧から LTR バックアップを削除する例を次に示します。This example shows how to delete an LTR backup from the list of backups.

# Remove the earliest backup from the list of backups
$ltrBackup = $ltrBackups[0]
Remove-AzSqlDatabaseLongTermRetentionBackup -ResourceId $ltrBackup.ResourceId

重要

LTR バックアップの削除は、元に戻せません。Deleting LTR backup is non-reversible. サーバーが削除された後に LTR バックアップを削除するには、サブスクリプション スコープのアクセス許可が必要です。To delete an LTR backup after the server has been deleted you must have Subscription scope permission. Azure Monitor では、"長期保有バックアップを削除します" という操作をフィルター処理することで、それぞれの削除に関する通知を設定できます。You can set up notifications about each delete in Azure Monitor by filtering for operation ‘Deletes a long term retention backup’. アクティビティ ログには、どのユーザーがいつ要求を行ったかに関する情報が含まれています。The activity log contains information on who and when made the request. 詳しい手順については、アクティビティ ログ アラートの作成に関するページを参照してください。See Create activity log alerts for detailed instructions.

LTR バックアップから復元するRestore from LTR backups

LTR バックアップから復元する例を次に示します。This example shows how to restore from an LTR backup. このインターフェイスは変更されませんでしたが、リソース ID パラメーターでは LTR バックアップ リソース ID が必須になりました。Note, this interface did not change but the resource id parameter now requires the LTR backup resource id.

# Restore a specific LTR backup as an P1 database on the server $serverName of the resource group $resourceGroup 
Restore-AzSqlDatabase -FromLongTermRetentionBackup -ResourceId $ltrBackup.ResourceId -ServerName $serverName -ResourceGroupName $resourceGroup -TargetDatabaseName $dbName -ServiceObjectiveName P1

重要

サーバーが削除された後に LTR バックアップから復元するには、サーバーのサブスクリプションをスコープとしたアクセス許可が必要であり、そのサブスクリプションがアクティブである必要があります。To restore from an LTR backup after the server has been deleted, you must have permissions scoped to the server's subscription and that subscription must be active. また、オプションの -ResourceGroupName パラメーターを省略する必要もあります。You must also omit the optional -ResourceGroupName parameter.

注意

ここから、SQL Server Management Studio を使用して、復元されたデータベースに接続し、必要なタスクを実行できます。たとえば、復元されたデータベースからデータを少し抽出して既存のデータベースにコピーしたり、既存のデータベースを削除し、復元されたデータベースの名前を既存のデータベース名に変更したりできます。From here, you can connect to the restored database using SQL Server Management Studio to perform needed tasks, such as to extract a bit of data from the restored database to copy into the existing database or to delete the existing database and rename the restored database to the existing database name. ポイントインタイム リストアをご覧ください。See point in time restore.

次の手順Next steps