このクイック スタートでは、Azure CLI を使用して Azure Database for PostgreSQL - フレキシブル サーバーを保護するバックアップ ポリシーを作成する方法について説明します。
Azure Database for PostgreSQL - フレキシブル サーバーの Azure Backup ポリシーでは、バックアップを作成する方法とタイミング、復旧ポイントの保有期間、データ保護と復旧の規則を定義します。 Azure Backup を使用すると、Azure portal、PowerShell、CLI、Azure Resource Manager、Bicep、Terraform などの複数のクライアントを使用して、Azure PostgreSQL - フレキシブル サーバーをバックアップできます。
[前提条件]
Azure Database for PostgreSQL - フレキシブル サーバーのバックアップ ポリシーを作成する前に、次の前提条件が満たされていることを確認します。
- Azure Database for PostgreSQL - フレキシブル サーバーのバックアップでサポートされているシナリオと制限事項を確認します。
- データベースの 復旧ポイントを格納するバックアップ コンテナーを作成します。
バックアップ ポリシーの作成
新しいバックアップ ポリシーを作成するには、次の手順に従います。
- PostgreSQL - フレキシブル サーバー バックアップ ポリシーについて
- ポリシー テンプレートを取得する
- ポリシー テンプレートを変更する
- ポリシーの作成
PostgreSQL - フレキシブル サーバー バックアップ ポリシーについて
ディスク バックアップでは 1 日に複数のバックアップが提供され、BLOB バックアップはトリガーなしの継続的バックアップです。 次に、PostgreSQL - フレキシブル サーバーのバックアップ ポリシー オブジェクトについて説明します。
- PolicyRule
- BackupRule
- BackupParameter
- BackupType (このシナリオではデータベースの完全バックアップ)
- 初期データストア (バックアップが最初に配置される場所)
- トリガー (バックアップのトリガー方法)
- スケジュール ベース
- 既定のタグ付け条件 (スケジュールされたすべてのバックアップの既定の "タグ"。このタグにより、バックアップが保持ルールにリンクされます)
- BackupParameter
- 既定の保持規則 (初期データストアにおいて、既定ですべてのバックアップに適用される規則)
- BackupRule
そのため、このオブジェクトは次を定義します。
- トリガーされるバックアップの種類
- ポリシーのトリガー方法 (スケジュールを使用)
- バックアップ ポリシーに実装されているタグ
- データが格納されている場所 (データストア)
- データストア内のバックアップ データのライフ サイクル
PostgreSQL - フレキシブル サーバーの既定の PowerShell オブジェクトは、毎週完全バックアップをトリガーし、コンテナーに到達し、 3 か月間保存されます。
ポリシー テンプレートを取得する
Azure PostgreSQL - フレキシブル サーバー データベース バックアップのバックアップ ポリシーの内部コンポーネントを理解するには、 az dataprotection backup-policy get-default-policy-template
コマンドを使用してポリシー テンプレートを取得します。 このコマンドにより、指定されたデータソースの種類の既定のポリシー テンプレートが返されます。 このポリシー テンプレートを使用して、新しいポリシーを作成します。
az dataprotection backup-policy get-default-policy-template --datasource-type AzureDatabaseForPostgreSQLFlexibleServer
{
"datasourceTypes": [
"Microsoft.DBforPostgreSQL/flexibleServers"
],
"name": "OssFlexiblePolicy1",
"objectType": "BackupPolicy",
"policyRules": [
{
"backupParameters": {
"backupType": "Full",
"objectType": "AzureBackupParams"
},
"dataStore": {
"dataStoreType": "VaultStore",
"objectType": "DataStoreInfoBase"
},
"name": "BackupWeekly",
"objectType": "AzureBackupRule",
"trigger": {
"objectType": "ScheduleBasedTriggerContext",
"schedule": {
"repeatingTimeIntervals": [
"R/2021-08-15T06:30:00+00:00/P1W"
],
"timeZone": "UTC"
},
"taggingCriteria": [
{
"isDefault": true,
"tagInfo": {
"id": "Default_",
"tagName": "Default"
},
"taggingPriority": 99
}
]
}
},
{
"isDefault": true,
"lifecycles": [
{
"deleteAfter": {
"duration": "P3M",
"objectType": "AbsoluteDeleteOption"
},
"sourceDataStore": {
"dataStoreType": "VaultStore",
"objectType": "DataStoreInfoBase"
},
"targetDataStoreCopySettings": []
}
],
"name": "Default",
"objectType": "AzureRetentionRule"
}
]
}
ポリシー テンプレートは、トリガー (バックアップのトリガーを決定する) とライフサイクル (バックアップを削除、コピー、移動するタイミングを決定する) で構成されます。 Azure PostgreSQL - フレキシブル サーバー データベース バックアップでは、トリガーの既定値はスケジュールされた 週単位 のトリガー (7 日ごとに 1 回のバックアップ) であり、各バックアップは 3 か月間保持されます。
スケジュールされたトリガー:
"trigger": {
"objectType": "ScheduleBasedTriggerContext",
"schedule": {
"repeatingTimeIntervals": [
"R/2021-08-15T06:30:00+00:00/P1W"
],
"timeZone": "UTC"
}
既定の保有規則ライフサイクル:
{
"isDefault": true,
"lifecycles": [
{
"deleteAfter": {
"duration": "P3M",
"objectType": "AbsoluteDeleteOption"
},
"sourceDataStore": {
"dataStoreType": "VaultStore",
"objectType": "DataStoreInfoBase"
},
"targetDataStoreCopySettings": []
}
],
"name": "Default",
"objectType": "AzureRetentionRule"
}
Von Bedeutung
バックアップ スケジュールは ISO 8601 期間形式に従います。 ただし、バックアップは無期限に実行するように構成されているため、繰り返し間隔プレフィックス R
はサポートされていません。
R
で指定された値はすべて無視されます。
ポリシー テンプレートを変更する
Von Bedeutung
Azure PowerShell では、オブジェクトをステージングの場所として使用して、すべての変更を実行できます。 Azure CLI では、オブジェクトの概念がないため、ファイルを使用する必要があります。 各 編集 操作は、新しいファイルにリダイレクトする必要があります。ここで、コンテンツは 入力 ファイルから読み取られ、 出力 ファイルにリダイレクトされます。 後でスクリプトで使用する際に、必要に応じてファイルの名前を変更できます。
スケジュールを変更する
既定のポリシー テンプレートでは、バックアップは週に 1 回行われます。 このスケジュールは、バックアップを週に複数日行うように変更することができます。 スケジュールを変更するには、 az dataprotection backup-policy trigger set
コマンドを使用します。
次の例では、毎週日曜日、水曜日、および金曜日にバックアップが行われるように、週単位のバックアップを変更しています。 スケジュールの日付配列は日付を表し、その日付の曜日は曜日として扱われます。 また、これらのスケジュールを毎週繰り返す必要があることを指定します。 そのため、スケジュールの間隔は 1、間隔の種類は Weekly となっています。
az dataprotection backup-policy trigger create-schedule --interval-type Weekly --interval-count 1 --schedule-days 2021-08-15T22:00:00 2021-08-18T22:00:00 2021-08-20T22:00:00
[
"R/2021-08-15T22:00:00+00:00/P1W",
"R/2021-08-18T22:00:00+00:00/P1W",
"R/2021-08-20T22:00:00+00:00/P1W"
]
az dataprotection backup-policy trigger set --policy .\OSSPolicy.json --schedule R/2021-08-15T22:00:00+00:00/P1W R/2021-08-18T22:00:00+00:00/P1W R/2021-08-20T22:00:00+00:00/P1W > EditedOSSPolicy.json
新しい保持規則を追加する
既定のテンプレートには、既定の保持規則のもと、初期データストアのライフサイクルが設定されています。 このシナリオでは、 3 か月後にバックアップ データが削除されます。
az dataprotection backup-policy retention-rule create-lifecycle
コマンドを使用して新しいライフサイクルを作成し、az dataprotection backup-policy retention-rule set
コマンドを使用して、新しい規則または既存の規則に関連付けます。
次の例では、 Monthly
という名前の新しい保持ルールを作成します。ここで、毎月の最初の成功したバックアップをコンテナーに 6 か月間保持する必要があります。
az dataprotection backup-policy retention-rule create-lifecycle --retention-duration-count 6 --retention-duration-type Months --source-datastore VaultStore > VaultLifeCycle.JSON
az dataprotection backup-policy retention-rule set --lifecycles .\VaultLifeCycle.JSON --name Monthly --policy .\EditedOSSPolicy.json > AddedRetentionRulePolicy.JSON
タグと関連条件を追加する
保持ルールが作成されたら、バックアップ ポリシーの Trigger プロパティに対応するタグを作成する必要があります。
az dataprotection backup-policy tag create-absolute-criteria
コマンドを使用して新しいタグ付け基準を作成し、az dataprotection backup-policy tag set
コマンドを使用して既存のタグを更新するか、新しいタグを作成します。
次の例では、条件 (月の最初に成功したバックアップ) とともに新しい "タグ" を作成します。 タグの名前は、適用予定の対応する保有規則と同じです。
この例では、タグ条件の名前は Monthly である必要があります。
az dataprotection backup-policy tag create-absolute-criteria --absolute-criteria FirstOfMonth > tagCriteria.JSON
az dataprotection backup-policy tag set --criteria .\tagCriteria.JSON --name Monthly --policy .\AddedRetentionRulePolicy.JSON > AddedRetentionRuleAndTag.JSON
たとえば、スケジュールが週に複数のバックアップ (例で指定されているように毎週日曜日、水曜日、木曜日) であり、日曜日と金曜日のバックアップをアーカイブする場合は、 az dataprotection backup-policy tag create-generic-criteria
コマンドを使用して、タグ付け基準を次のように変更できます。
az dataprotection backup-policy tag create-generic-criteria --days-of-week Sunday Friday > tagCriteria.JSON
az dataprotection backup-policy tag set --criteria .\tagCriteria.JSON --name Monthly --policy .\AddedRetentionRulePolicy.JSON > AddedRetentionRuleAndTag.JSON
ポリシーの作成
要件に従ってテンプレートが変更されたら、 az dataprotection backup-policy create
コマンドを使用して、変更されたテンプレートを使用してポリシーを作成します。
az dataprotection backup-policy create --backup-policy-name FinalOSSPolicy --policy AddedRetentionRuleAndTag.JSON --resource-group testBkpVaultRG --vault-name TestBkpVault
次のステップ
Azure CLI を使用して Azure Database for PostgreSQL - フレキシブル サーバーのバックアップを構成します。