長期保有ポリシーを使用してバックアップ履歴を保持する
企業では、誤って削除されたデータの復元など、定期的な管理保護のために、バックアップを数か月間または数年間保持する必要があります。
たとえば、ある小売組織が営業している国や地域のうち少なくとも 1 つのデータ保護法で、顧客取引のすべての記録を 5 年間保持することが求められているとします。 エンタープライズ リソース プランニング (ERP) システムの基盤となる Azure SQL Database 内のデータを、少なくともその間は確実に保持する必要があります。
ここでは、Azure SQL Database の長期保有ポリシーの詳細と、35 日を超えてバックアップを保持する必要がある場合に、これらを使う方法を学習します。
バックアップ長期保有ポリシー
Azure SQL Database の自動バックアップでは、最大で 35 日間、復元できます。 日常的な管理目的であれば、この期間で十分です。 しかしながら、場合によっては、この期間を超えてデータを保持する必要があります。 たとえば、地域的管轄区域におけるデータ保護規制により、バックアップを数年間保持することが義務付けられている場合があります。
このような要件の場合は、長期保有 (LTR) 機能を使用します。 この機能を使用すると、最大で 10 年間、Azure SQL Database のバックアップを読み取りアクセス geo 冗長ストレージ (RA-GRS) の BLOB に格納できます。 いずれかの LTR バックアップにアクセスする必要がある場合、Azure portal または PowerShell を使用して、そのバックアップを新しいデータベースとして復元できます。
SQL Database の長期保有のしくみ
LTR 機能は、特定の時点に復旧するために自動的なバックアップを取り、それをさまざまな BLOB にコピーします。 このコピー操作は、パフォーマンスに確実に影響を与えないようにするため、バックグラウンドで、低優先度で実行されます。
これらのバックアップは、既定では行われません。 それらを開始して管理するようにポリシーを構成する必要があります。
長期保有ポリシーの作成方法
LTR ポリシーは、どのような頻度で自動バックアップが長期保有のためにコピーされるかを設定します。 この頻度は、次の文字を使用して指定します。
W
:毎週 1 個の完全バックアップが LTR へとコピーされるように指定します。M
:毎月第 1 週目に 1 個の完全バックアップが LTR へとコピーされるように指定します。Y
:毎年 1 個の完全バックアップが LTR へとコピーされるように指定します。
Y
を使って年単位のバックアップを指定する場合は、WeekOfYear
パラメーターを使用して、そのバックアップをコピーする週を指定することができます。
各ポリシー文字については、数字を使って、バックアップを保持する期間を指定します。 たとえば、週単位のバックアップを 10 週間保持するには、W=10
を使用します。 年単位のバックアップを 3 年間保持するには、Y=3
を使用します。
長期保有ポリシーの例
週、月、年のリテンション期間の値を組み合わせると、柔軟性のあるポリシーを作成できます。 以下に例を示します。
W=0, M=0, Y=5, WeekOfYear=3
このポリシーでは、各月の第 3 週に作成された完全バックアップが 5 年間保持されます。
W=0, M=10, Y=0
このポリシーでは、各月の最初の完全バックアップが 10 か月間保持されます。
W=12, M=0, Y=0
このポリシーでは、各週の完全バックアップが 12 週間保持されます。
W=4, M=12, Y=10, WeekOfYear=1
このポリシーでは、各週の完全バックアップが 4 週間保持されます。 さらに、各月の最初の完全バックアップが 12 か月間保持されます。 最後に、各年の最初の週に作成される初回の完全バックアップが 10 年間保持されます。
PowerShell での保有ポリシーの設定
PowerShell では、このコマンドを実行して長期保有ポリシーを調べることができます。
Get-AzSqlDatabase `
-ResourceGroupName <ResourceGroupName> `
-ServerName <ServerName> `
| Get-AzSqlDatabaseLongTermRetentionPolicy
ポリシーを構成するには、Set-AzSqlDatabaseBackupLongTermRetentionPolicy
コマンドレットを使用します。 これらのポリシーを PowerShell で指定する場合は、ISO 8601 の期間の値を使用する必要があります。 たとえば、W=10
ポリシーを指定するには、文字列 P10W
を -WeeklyRetention
パラメーターに渡します。 Y=3
ポリシーを指定するには、文字列 P3Y
を -YearlyRetention
パラメーターに渡します。
Set-AzSqlDatabaseBackupLongTermRetentionPolicy `
-ServerName <ServerName> `
-DatabaseName <DatabaseName> `
-ResourceGroupName <ResourceGroupName> `
-WeeklyRetention P10W `
-YearlyRetention P3Y `
-WeekOfYear 1