SQL-databases in een Azure-VM beheren met behulp van Azure CLI
Azure CLI wordt gebruikt voor het maken en beheren van Azure-resources vanaf de opdrachtregel of door middel van scripts. In dit artikel wordt beschreven hoe u een back-up van een SQL-database op Een Azure-VM beheert met behulp van Azure CLI. U kunt deze acties ook uitvoeren met behulp van de Azure Portal.
In dit artikel leert u het volgende:
- Taken voor back-up en herstel controleren
- Nieuwe databases beveiligen die zijn toegevoegd aan een SQL-exemplaar
- Het beleid wijzigen
- Beveiliging stoppen
- Beveiliging hervatten
Als u een back-up hebt gemaakt van een SQL-database in Azure met behulp van CLI om een back-up te maken van uw SQL-database, gebruikt u de volgende resources:
- Een resourcegroep met de naam SQLResourceGroup
- Een kluis met de naam SQLVault
- Beveiligde container met de naam VMAppContainer; Berekenen; SQLResourceGroup;testSQLVM
- Back-up van database/item met de naam sqldatabase;mssqlserver;master
- Resources in de regio westus2
Azure CLI vereenvoudigt het beheerproces van een SQL-database die wordt uitgevoerd op een Azure-VM waarvan een back-up wordt gemaakt met behulp van Azure Backup. In de volgende secties worden alle beheerbewerkingen beschreven.
Notitie
Zie de ondersteuningsmatrix voor SQL-back-ups voor meer informatie over de ondersteunde configuraties en scenario's.
Taken voor back-up en herstel controleren
Gebruik de opdracht az backup job list om voltooide of actieve taken (back-up of herstel) te controleren. Met CLI kunt u ook een taak onderbreken die momenteel wordt uitgevoerd of wachten tot een taak is voltooid.
az backup job list --resource-group SQLResourceGroup \
--vault-name SQLVault \
--output table
De uitvoer wordt weergegeven als:
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
Een beleid wijzigen
Gebruik de opdracht az backup policy set om het beleid te wijzigen dat ten grondslag ligt aan de sql-back-upconfiguratie. De parameter name in deze opdracht verwijst naar het back-upitem waarvan u het beleid wilt wijzigen. Vervang hier het beleid van de SQL-database sqldatabase;mssqlserver;master door een nieuw beleid newSQLPolicy. U kunt nieuwe beleidsregels maken met de opdracht 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 \
De uitvoer wordt weergegeven als:
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
Een beleid voor differentiële back-ups maken
Als u een differentiële back-upbeleid wilt maken, gebruikt u de opdracht az backup policy create met de volgende parameters:
- --backup-management-type: Azure-workload.
- --workload-type: SQL DataBase.
- --name: naam van het beleid.
- --policy: JSON-bestand met de juiste gegevens voor planning en retentie.
- --resource-group: Resourcegroep van de kluis.
- --vault-name: naam van de kluis/
Voorbeeld:
az backup policy create --resource-group SQLResourceGroup --vault-name SQLVault --name SQLPolicy --backup-management-type AzureWorkload --policy SQLPolicy.json --workload-type SQLDataBase
Voorbeeld van 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"
}
Zodra het beleid is gemaakt, wordt in de uitvoer van de opdracht de beleids-JSON weergegeven die u als parameter hebt doorgegeven tijdens het uitvoeren van de opdracht.
U kunt de volgende sectie van het beleid wijzigen om de vereiste back-upfrequentie en retentie voor differentiële back-ups op te geven.
Bijvoorbeeld:
{
"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
}
}
Voorbeeld:
Als u differentiële back-ups alleen op zaterdag wilt hebben en deze 60 dagen wilt bewaren, voert u de volgende wijzigingen in het beleid uit:
- Bewaarperiode bijwerkenAantal exemplaren tot 60 dagen.
- Geef alleen zaterdag op als 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
}
}
De nieuwe databases beveiligen die zijn toegevoegd aan een SQL-exemplaar
Als u een SQL-exemplaar registreert bij een Recovery Services-kluis , worden automatisch alle databases in dit exemplaar gedetecteerd.
Als u later echter nieuwe databases aan het SQL-exemplaar hebt toegevoegd, gebruikt u de opdracht az backup protectable-item initialize . Met deze opdracht worden de nieuwe toegevoegde databases gedetecteerd.
az backup protectable-item initialize --resource-group SQLResourceGroup \
--vault-name SQLVault \
--container-name VMAppContainer;Compute;SQLResourceGroup;testSQLVM \
--workload-type SQLDataBase
Gebruik vervolgens de cmdlet az backup protectable-item list om alle databases weer te geven die zijn gedetecteerd in uw SQL-exemplaar. Deze lijst bevat geen databases waarvoor al een back-up is geconfigureerd. Zodra de database waarvan een back-up moet worden gemaakt, is gedetecteerd, raadpleegt u Back-up inschakelen op SQL-database.
az backup protectable-item list --resource-group SQLResourceGroup \
--vault-name SQLVault \
--workload-type SQLDataBase \
--protectable-item-type SQLDataBase \
--output table
De nieuwe database waarvan u een back-up wilt maken, wordt weergegeven in deze lijst, die wordt weergegeven als:
Name Protectable Item Type ParentName ServerName IsProtected
--------------------------- ---------------------- ------------ ----------- ------------
sqldatabase;mssqlserver;db1 SQLDataBase mssqlserver testSQLVM NotProtected
sqldatabase;mssqlserver;db2 SQLDataBase mssqlserver testSQLVM NotProtected
Beveiliging voor een SQL-database stoppen
U kunt de beveiliging van een SQL-database stoppen in de volgende processen:
- Alle toekomstige back-uptaken stoppen en alle herstelpunten verwijderen.
- Alle toekomstige back-uptaken stoppen en de herstelpunten intact laten.
Als u ervoor kiest om herstelpunten te laten staan, moet u rekening houden met deze details:
- Alle herstelpunten blijven voor altijd intact en alle verwijderingen stoppen bij het stoppen van de beveiliging met het bewaren van gegevens.
- Er worden kosten in rekening gebracht voor het beveiligde exemplaar en de verbruikte opslag.
- Als u een gegevensbron verwijdert zonder back-ups te stoppen, mislukken nieuwe back-ups.
De processen om de beveiliging te stoppen, worden hieronder beschreven.
Bescherming stoppen met gegevensbehoud
Als u de beveiliging met behoud van gegevens wilt stoppen, gebruikt u de opdracht 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
De uitvoer wordt weergegeven als:
Name ResourceGroup
------------------------------------ ---------------
g0f15dae-7cac-4475-d833-f52c50e5b6c3 SQLResourceGroup
Gebruik de opdracht az backup job show om de status van deze bewerking te controleren.
Beveiliging stoppen zonder gegevensbehoud
Als u de beveiliging wilt stoppen zonder gegevens te bewaren, gebruikt u de opdracht 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
De uitvoer wordt weergegeven als:
Name ResourceGroup
------------------------------------ ---------------
g0f15dae-7cac-4475-d833-f52c50e5b6c3 SQLResourceGroup
Gebruik de opdracht az backup job show om de status van deze bewerking te controleren.
Beveiliging hervatten
Wanneer u de beveiliging voor de SQL-database stopt met het bewaren van gegevens, kunt u de beveiliging later hervatten. Als u de gegevens van de back-up niet bewaart, kunt u de beveiliging niet hervatten.
Gebruik de opdracht az backup protection resume om de beveiliging te hervatten.
az backup protection resume --resource-group SQLResourceGroup \
--vault-name SQLVault \
--container-name VMAppContainer;Compute;SQLResourceGroup;testSQLVM \
--policy-name SQLPolicy \
--output table
De uitvoer wordt weergegeven als:
Name ResourceGroup
------------------------------------ ---------------
b2a7f108-1020-4529-870f-6c4c43e2bb9e SQLResourceGroup
Gebruik de opdracht az backup job show om de status van deze bewerking te controleren.