Azure CLI は、コマンドラインやスクリプトで Azure リソースを作成および管理するために使用します。 この記事では、Azure CLI を使用して Azure VM 上のバックアップされた SQL データベースを管理する方法について説明します。 これらのアクションは 、Azure portal を使用して実行することもできます。
注
CLI を使用した Azure の SQL データベースのバックアップを使って SQL データベースをバックアップした場合は、次のリソースを使っています。
- SQLResourceGroup という名前のリソース グループ
- SQLVault という名前のコンテナー
- 名前が VMAppContainer;Compute;SQLResourceGroup;testSQLVM である保護されたコンテナー
- バックアップされたデータベース/項目sqldatabase;mssqlserver;master
- westus2 リージョンのリソース
Azure CLI を使用すると、Azure Backup を使用してバックアップされた Azure VM で実行されている SQL データベースを管理するプロセスが容易になります。 次のセクションでは、各管理操作について説明します。
SQL バックアップでサポートされている構成とシナリオの詳細について説明します。
バックアップジョブと復元ジョブを監視する
az backup job list コマンドを使用して、完了したジョブまたは現在実行中のジョブ (バックアップまたは復元) を監視します。 CLI では、 現在実行中のジョブを中断 したり、 ジョブが完了するまで待機したりすることもできます。
az backup job list --resource-group SQLResourceGroup \
--vault-name SQLVault \
--output table
出力は次のように表示されます。
Name Operation Status Item Name Start Time UTC
------------------------------------ --------------- --------- ---------- -------------------
e0f15dae-7cac-4475-a833-f52c50e5b6c3 ConfigureBackup Completed master [testSQLVM] 2019-12-03T03:09:210831+00:00
ccdb4dce-8b15-47c5-8c46-b0985352238f Backup (Full) Completed master [testSQLVM] 2019-12-01T10:30:58.867489+00:00
4980af91-1090-49a6-ab96-13bc905a5282 Backup (Differential) Completed master [testSQLVM] 2019-12-01T10:36:00.563909+00:00
F7c68818-039f-4a0f-8d73-e0747e68a813 Restore (Log) Completed master [testSQLVM] 2019-12-03T05:44:51.081607+00:00
ポリシーを変更する
SQL バックアップ構成の基になるポリシーを変更するには、 az backup policy set コマンドを使用します。 このコマンドの name パラメーターは、ポリシーを変更するバックアップ項目を参照します。 ここでは、SQL データベース sqldatabase;mssqlserver;master のポリシーを新しいポリシー newSQLPolicy に置き換えます。 az backup policy create コマンドを使用して、新しいポリシーを作成できます。
az backup item set-policy --resource-group SQLResourceGroup \
--vault-name SQLVault \
--container-name VMAppContainer;Compute;SQLResourceGroup;testSQLVM \
--policy-name newSQLPolicy \
--name sqldatabase;mssqlserver;master \
出力は次のように表示されます。
Name Operation Status Item Name Backup Management Type Start Time UTC Duration
------------------------------------ --------------- --------- ----------- ------------------------ -------------------------------- --------------
ba350996-99ea-46b1-aae2-e2096c1e28cd ConfigureBackup Completed master AzureWorkload 2022-06-22T08:24:03.958001+00:00 0:01:12.435765
差分バックアップ ポリシーを作成する
差分バックアップ ポリシーを作成するには、 az backup policy create コマンドと次のパラメーターを使用します。
- --backup-management-type: Azure Workload。
- --workload-type: SQL DataBase。
- --name: ポリシーの名前。
- --policy: スケジュールと保持に関する適切な詳細を含む JSON ファイル。
- --resource-group: ボールトのリソース グループ。
- --vault-name: コンテナーの名前/
例:
az backup policy create --resource-group SQLResourceGroup --vault-name SQLVault --name SQLPolicy --backup-management-type AzureWorkload --policy SQLPolicy.json --workload-type SQLDataBase
サンプル JSON (sqlpolicy.json):
"eTag": null,
"id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SQLResourceGroup/providers/Microsoft.RecoveryServices/vaults/SQLVault/backupPolicies/SQLPolicy",
"___location": null,
"name": "sqlpolicy",
"properties": {
"backupManagementType": "AzureWorkload",
"workLoadType": "SQLDataBase",
"settings": {
"timeZone": "UTC",
"issqlcompression": false,
"isCompression": false
},
"subProtectionPolicy": [
{
"policyType": "Full",
"schedulePolicy": {
"schedulePolicyType": "SimpleSchedulePolicy",
"scheduleRunFrequency": "Weekly",
"scheduleRunDays": [
"Sunday"
],
"scheduleRunTimes": [
"2022-06-13T19:30:00Z"
],
"scheduleWeeklyFrequency": 0
},
"retentionPolicy": {
"retentionPolicyType": "LongTermRetentionPolicy",
"weeklySchedule": {
"daysOfTheWeek": [
"Sunday"
],
"retentionTimes": [
"2022-06-13T19:30:00Z"
],
"retentionDuration": {
"count": 104,
"durationType": "Weeks"
}
},
"monthlySchedule": {
"retentionScheduleFormatType": "Weekly",
"retentionScheduleWeekly": {
"daysOfTheWeek": [
"Sunday"
],
"weeksOfTheMonth": [
"First"
]
},
"retentionTimes": [
"2022-06-13T19:30:00Z"
],
"retentionDuration": {
"count": 60,
"durationType": "Months"
}
},
"yearlySchedule": {
"retentionScheduleFormatType": "Weekly",
"monthsOfYear": [
"January"
],
"retentionScheduleWeekly": {
"daysOfTheWeek": [
"Sunday"
],
"weeksOfTheMonth": [
"First"
]
},
"retentionTimes": [
"2022-06-13T19:30:00Z"
],
"retentionDuration": {
"count": 10,
"durationType": "Years"
}
}
}
},
{
"policyType": "Differential",
"schedulePolicy": {
"schedulePolicyType": "SimpleSchedulePolicy",
"scheduleRunFrequency": "Weekly",
"scheduleRunDays": [
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday"
],
"scheduleRunTimes": [
"2022-06-13T02:00:00Z"
],
"scheduleWeeklyFrequency": 0
},
"retentionPolicy": {
"retentionPolicyType": "SimpleRetentionPolicy",
"retentionDuration": {
"count": 30,
"durationType": "Days"
}
}
},
{
"policyType": "Log",
"schedulePolicy": {
"schedulePolicyType": "LogSchedulePolicy",
"scheduleFrequencyInMins": 120
},
"retentionPolicy": {
"retentionPolicyType": "SimpleRetentionPolicy",
"retentionDuration": {
"count": 15,
"durationType": "Days"
}
}
}
],
"protectedItemsCount": 0
},
"resourceGroup": "SQLResourceGroup",
"tags": null,
"type": "Microsoft.RecoveryServices/vaults/backupPolicies"
}
ポリシーが正常に作成されると、コマンドの出力には、コマンドの実行中にパラメーターとして渡したポリシー JSON が表示されます。
ポリシーの次のセクションを変更して、差分バックアップに必要なバックアップの頻度と保持期間を指定できます。
例えば次が挙げられます。
{
"policyType": "Differential",
"retentionPolicy": {
"retentionDuration": {
"count": 30,
"durationType": "Days"
},
"retentionPolicyType": "SimpleRetentionPolicy"
},
"schedulePolicy": {
"schedulePolicyType": "SimpleSchedulePolicy",
"scheduleRunDays": [
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday"
],
"scheduleRunFrequency": "Weekly",
"scheduleRunTimes": [
"2017-03-07T02:00:00+00:00"
],
"scheduleWeeklyFrequency": 0
}
}
例:
土曜日にのみ差分バックアップを作成し、60 日間保持する場合は、ポリシーで次の変更を行います。
- retentionDuration カウントを 60 日に更新します。
- ScheduleRunDays として土曜日のみを指定します。
{
"policyType": "Differential",
"retentionPolicy": {
"retentionDuration": {
"count": 60,
"durationType": "Days"
},
"retentionPolicyType": "SimpleRetentionPolicy"
},
"schedulePolicy": {
"schedulePolicyType": "SimpleSchedulePolicy",
"scheduleRunDays": [
"Saturday"
],
"scheduleRunFrequency": "Weekly",
"scheduleRunTimes": [
"2017-03-07T02:00:00+00:00"
],
"scheduleWeeklyFrequency": 0
}
}
SQL インスタンスに追加された新しいデータベースを保護する
SQL インスタンスを Recovery Services コンテナーに登録すると、 このインスタンス内のすべてのデータベースが自動的に検出されます。
ただし、後で SQL インスタンスに新しいデータベースを追加した場合は、 az backup protectable-item initialize コマンドを使用します。 このコマンドは、追加された新しいデータベースを検出します。
az backup protectable-item initialize --resource-group SQLResourceGroup \
--vault-name SQLVault \
--container-name VMAppContainer;Compute;SQLResourceGroup;testSQLVM \
--workload-type SQLDataBase
次に、 az backup protectable-item list コマンドレットを使用して、SQL インスタンスで検出されたすべてのデータベースを一覧表示します。 ただし、この一覧では、バックアップが既に構成されているデータベースは除外されます。 バックアップするデータベースが検出されたら、「 SQL データベースでバックアップを有効にする」を参照してください。
az backup protectable-item list --resource-group SQLResourceGroup \
--vault-name SQLVault \
--workload-type SQLDataBase \
--protectable-item-type SQLDataBase \
--output table
バックアップする新しいデータベースがこの一覧に表示され、次のように表示されます。
Name Protectable Item Type ParentName ServerName IsProtected
--------------------------- ---------------------- ------------ ----------- ------------
sqldatabase;mssqlserver;db1 SQLDataBase mssqlserver testSQLVM NotProtected
sqldatabase;mssqlserver;db2 SQLDataBase mssqlserver testSQLVM NotProtected
SQL データベースの保護を停止する
SQL データベースの保護は、次のプロセスで停止できます。
- 今後のバックアップ ジョブすべてを停止し、すべての復旧ポイントを削除する。
- 今後のすべてのバックアップ ジョブを停止し、復旧ポイントはそのままにする。
復旧ポイントのままにする場合は、次の詳細に注意してください。
- データを保持して保護を停止すると、すべての復旧ポイントがそのまま残り、すべての排除が停止します。
- 保護されたインスタンスと使用されたストレージに対して課金されます。
- バックアップを停止しないでデータ ソースを削除すると、新しいバックアップは失敗します。
保護を停止するプロセスの詳細を以下に示します。
データを保持して保護を停止
データを保持して保護を停止するには、 az backup protection disable' コマンドを使用します。
az backup protection disable --resource-group SQLResourceGroup \
--vault-name SQLVault \
--container-name VMAppContainer;Compute;SQLResourceGroup;testSQLVM \
--item-name sqldatabase;mssqlserver;master \
--workload-type SQLDataBase \
--output table
出力は次のように表示されます。
Name ResourceGroup
------------------------------------ ---------------
g0f15dae-7cac-4475-d833-f52c50e5b6c3 SQLResourceGroup
この操作の状態を確認するには、 az backup job show コマンドを使用します。
データを保持せずに保護を停止する
データを保持せずに保護を停止するには、 az backup protection disable コマンドを使用します。
az backup protection disable --resource-group SQLResourceGroup \
--vault-name SQLVault \
--container-name VMAppContainer;Compute;SQLResourceGroup;testSQLVM \
--item-name sqldatabase;mssqlserver;master \
--workload-type SQLDataBase \
--delete-backup-data true \
--output table
出力は次のように表示されます。
Name ResourceGroup
------------------------------------ ---------------
g0f15dae-7cac-4475-d833-f52c50e5b6c3 SQLResourceGroup
この操作の状態を確認するには、 az backup job show コマンドを使用します。
保護の再開
データの保持を使用して SQL データベースの保護を停止すると、後で保護を再開できます。 バックアップされたデータを保持しない場合、保護を再開することはできません。
保護を再開するには、 az backup protection resume コマンドを使用します。
az backup protection resume --resource-group SQLResourceGroup \
--vault-name SQLVault \
--container-name VMAppContainer;Compute;SQLResourceGroup;testSQLVM \
--policy-name SQLPolicy \
--output table
出力は次のように表示されます。
Name ResourceGroup
------------------------------------ ---------------
b2a7f108-1020-4529-870f-6c4c43e2bb9e SQLResourceGroup
この操作の状態を確認するには、 az backup job show コマンドを使用します。
次のステップ
- Azure portal を使用して Azure VM で実行されている SQL データベースをバックアップする方法について説明します。
- Azure portal を使用して、Azure VM で実行されているバックアップされた SQL データベースを管理する方法について説明します。