Správa databází SQL na virtuálním počítači Azure pomocí Azure CLI
Azure CLI se používá k vytváření a správě prostředků Azure z příkazového řádku nebo prostřednictvím skriptů. Tento článek popisuje, jak spravovat zálohovanou databázi SQL na virtuálním počítači Azure pomocí Azure CLI. Tyto akce můžete provádět také pomocí Azure Portal.
V tomto článku se naučíte:
- Monitorování úloh zálohování a obnovení
- Ochrana nových databází přidaných do instance SQL
- Změna zásad
- Zastavení ochrany
- Obnovení ochrany
Pokud jste k zálohování databáze SQL použili Zálohování databáze SQL v Azure pomocí rozhraní příkazového řádku , pak používáte následující prostředky:
- Skupina prostředků s názvem SQLResourceGroup
- Trezor s názvem SQLVault
- Chráněný kontejner S názvem VMAppContainer; Vypočítat; SQLResourceGroup, testSQLVM
- Zálohovaná databáze nebo položka s názvem sqldatabase, mssqlserver, master
- Zdroje v oblasti westus2
Azure CLI usnadňuje proces správy databáze SQL spuštěné na virtuálním počítači Azure, který se zálohuje pomocí Azure Backup. Následující části popisují jednotlivé operace správy.
Poznámka
Další informace o podporovaných konfiguracích a scénářích najdete v matici podpory zálohování SQL .
Monitorování úloh zálohování a obnovení
Pomocí příkazu az backup job list můžete monitorovat dokončené nebo aktuálně spuštěné úlohy (zálohování nebo obnovení). Rozhraní příkazového řádku také umožňuje pozastavit aktuálně spuštěnou úlohu nebo počkat na dokončení úlohy.
az backup job list --resource-group SQLResourceGroup \
--vault-name SQLVault \
--output table
Výstup se zobrazí takto:
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
Změna zásady
Pokud chcete změnit zásadu, která je základem konfigurace zálohování SQL, použijte příkaz az backup policy set . Parametr name v tomto příkazu odkazuje na zálohovanou položku, jejíž zásadu chcete změnit. Tady nahraďte zásadu sqldatabase,mssqlserver;master databáze SQL novou zásadou newSQLPolicy. Nové zásady můžete vytvořit pomocí příkazu 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 \
Výstup se zobrazí takto:
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
Vytvoření zásady rozdílového zálohování
Pokud chcete vytvořit zásady rozdílového zálohování, použijte příkaz az backup policy create s následujícími parametry:
- --backup-management-type: Úloha Azure.
- --workload-type: SQL DataBase.
- --name: Název zásady.
- --policy: Soubor JSON s příslušnými podrobnostmi o plánu a uchovávání.
- --resource-group: Skupina prostředků trezoru.
- --vault-name: Název trezoru/
Příklad:
az backup policy create --resource-group SQLResourceGroup --vault-name SQLVault --name SQLPolicy --backup-management-type AzureWorkload --policy SQLPolicy.json --workload-type SQLDataBase
Ukázkový kód 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"
}
Po úspěšném vytvoření zásady se ve výstupu příkazu zobrazí json zásady, který jste předali jako parametr při provádění příkazu.
V následující části zásad můžete určit požadovanou frekvenci zálohování a uchovávání rozdílových záloh.
Příklad:
{
"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
}
}
Příklad:
Pokud chcete mít rozdílové zálohy jenom v sobotu a uchovávat je po dobu 60 dnů, proveďte v zásadách následující změny:
- Aktualizujte dobu uchování Na 60 dnů.
- Jako ScheduleRunDays zadejte pouze sobotu.
{
"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
}
}
Ochrana nových databází přidaných do instance SQL
Registrace instance SQL v trezoru služby Recovery Services automaticky zjistí všechny databáze v této instanci.
Pokud jste ale do instance SQL přidali nové databáze později, použijte příkaz az backup protectable-item initialize . Tento příkaz zjistí přidané nové databáze.
az backup protectable-item initialize --resource-group SQLResourceGroup \
--vault-name SQLVault \
--container-name VMAppContainer;Compute;SQLResourceGroup;testSQLVM \
--workload-type SQLDataBase
Pak pomocí rutiny az backup protectable-item list vypíšete seznam všech databází zjištěných v instanci SQL. Tento seznam však vyloučí databáze, u kterých už bylo nakonfigurované zálohování. Jakmile zjistíte databázi, která se má zálohovat, projděte si téma Povolení zálohování v databázi SQL.
az backup protectable-item list --resource-group SQLResourceGroup \
--vault-name SQLVault \
--workload-type SQLDataBase \
--protectable-item-type SQLDataBase \
--output table
V tomto seznamu se zobrazí nová databáze, kterou chcete zálohovat:
Name Protectable Item Type ParentName ServerName IsProtected
--------------------------- ---------------------- ------------ ----------- ------------
sqldatabase;mssqlserver;db1 SQLDataBase mssqlserver testSQLVM NotProtected
sqldatabase;mssqlserver;db2 SQLDataBase mssqlserver testSQLVM NotProtected
Zastavení ochrany databáze SQL
Ochranu databáze SQL můžete zastavit v následujících procesech:
- Zastavte všechny budoucí úlohy zálohování a odstraňte všechny body obnovení.
- Zastavte všechny budoucí úlohy zálohování a ponechte body obnovení beze změny.
Pokud se rozhodnete opustit body obnovení, mějte na paměti tyto podrobnosti:
- Všechny body obnovení zůstanou navždy nedotčené a všechny vyřazení se zastaví při zastavení ochrany se zachováním dat.
- Za chráněnou instanci a spotřebované úložiště se vám budou účtovat poplatky.
- Pokud odstraníte zdroj dat bez zastavení zálohování, nové zálohy selžou.
Procesy zastavení ochrany jsou podrobně popsány níže.
Zastavení ochrany se zachováním dat
Pokud chcete zastavit ochranu se zachováním dat, použijte příkaz 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
Výstup se zobrazí takto:
Name ResourceGroup
------------------------------------ ---------------
g0f15dae-7cac-4475-d833-f52c50e5b6c3 SQLResourceGroup
Pokud chcete ověřit stav této operace, použijte příkaz az backup job show .
Zastavení ochrany bez uchovávání dat
Pokud chcete zastavit ochranu bez uchovávání dat, použijte příkaz 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
Výstup se zobrazí takto:
Name ResourceGroup
------------------------------------ ---------------
g0f15dae-7cac-4475-d833-f52c50e5b6c3 SQLResourceGroup
Pokud chcete ověřit stav této operace, použijte příkaz az backup job show .
Obnovení ochrany
Když zastavíte ochranu databáze SQL se zachováním dat, můžete ochranu obnovit později. Pokud zálohovaná data neuchováte, nebudete moct ochranu obnovit.
K obnovení ochrany použijte příkaz 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
Výstup se zobrazí takto:
Name ResourceGroup
------------------------------------ ---------------
b2a7f108-1020-4529-870f-6c4c43e2bb9e SQLResourceGroup
Pokud chcete ověřit stav této operace, použijte příkaz az backup job show .