Hantera SQL-databaser på en virtuell Azure-dator med Hjälp av Azure CLI
Azure CLI används för att skapa och hantera Azure-resurser från kommandoraden eller via skript. Den här artikeln beskriver hur du hanterar en säkerhetskopierad SQL-databas på en virtuell Azure-dator med Hjälp av Azure CLI. Du kan också utföra dessa åtgärder med hjälp av Azure Portal.
I den här artikeln får du lära dig att:
- Övervaka säkerhetskopierings- och återställningsjobb
- Skydda nya databaser som lagts till i en SQL-instans
- Ändra principen
- Sluta skydda
- Återuppta skyddet
Om du har använt Säkerhetskopiera en SQL-databas i Azure med CLI för att säkerhetskopiera din SQL-databas använder du följande resurser:
- En resursgrupp med namnet SQLResourceGroup
- Ett valv med namnet SQLVault
- Skyddad container med namnet VMAppContainer; Beräkna; SQLResourceGroup;testSQLVM
- Säkerhetskopierad databas/objekt med namnet sqldatabase;mssqlserver;master
- Resurser i regionen westus2
Azure CLI underlättar hanteringen av en SQL-databas som körs på en virtuell Azure-dator som säkerhetskopieras med hjälp av Azure Backup. I följande avsnitt beskrivs var och en av hanteringsåtgärderna.
Anteckning
Mer information om konfigurationer och scenarier som stöds finns i supportmatrisen för SQL-säkerhetskopiering .
Övervaka säkerhetskopierings- och återställningsjobb
Använd kommandot az backup job list för att övervaka slutförda eller pågående jobb (säkerhetskopiering eller återställning). MED CLI kan du också pausa ett jobb som körs eller vänta tills ett jobb har slutförts.
az backup job list --resource-group SQLResourceGroup \
--vault-name SQLVault \
--output table
Utdata visas som:
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
Ändra en princip
Om du vill ändra principen som ligger till grund för SQL-säkerhetskopieringskonfigurationen använder du kommandot az backup policy set . Namnparametern i det här kommandot refererar till säkerhetskopieringsobjektet vars princip du vill ändra. Ersätt principen för SQL Database sqldatabase;mssqlserver;master med en ny princip newSQLPolicy. Du kan skapa nya principer med kommandot 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 \
Utdata visas som:
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
Skapa en princip för differentiell säkerhetskopiering
Om du vill skapa en princip för differentiell säkerhetskopiering använder du kommandot az backup policy create med följande parametrar:
- --backup-management-type: Azure Workload.
- --workload-type: SQL DataBase.
- --name: Namnet på principen.
- --policy: JSON-fil med lämplig information för schema och kvarhållning.
- --resource-group: Resursgrupp för valvet.
- --vault-name: Namnet på valvet/
Exempel:
az backup policy create --resource-group SQLResourceGroup --vault-name SQLVault --name SQLPolicy --backup-management-type AzureWorkload --policy SQLPolicy.json --workload-type SQLDataBase
Exempel på 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"
}
När principen har skapats visar kommandots utdata den princip-JSON som du skickade som en parameter när kommandot kördes.
Du kan ändra följande avsnitt i principen för att ange vilken säkerhetskopieringsfrekvens och kvarhållning som krävs för differentiella säkerhetskopior.
Exempel:
{
"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
}
}
Exempel:
Om du bara vill ha differentiella säkerhetskopior på lördag och behålla dem i 60 dagar gör du följande ändringar i principen:
- Uppdatera retentionDuration antal till 60 dagar.
- Ange endast lördag som 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
}
}
Skydda de nya databaser som läggs till i en SQL-instans
Om du registrerar en SQL-instans med ett Recovery Services-valv identifieras automatiskt alla databaser i den här instansen.
Men om du har lagt till nya databaser i SQL-instansen senare använder du kommandot az backup protectable-item initialize . Det här kommandot identifierar de nya databaser som lagts till.
az backup protectable-item initialize --resource-group SQLResourceGroup \
--vault-name SQLVault \
--container-name VMAppContainer;Compute;SQLResourceGroup;testSQLVM \
--workload-type SQLDataBase
Använd sedan cmdleten az backup protectable-item list för att visa alla databaser som har identifierats på din SQL-instans. Den här listan exkluderar dock de databaser där säkerhetskopiering redan har konfigurerats. När databasen som ska säkerhetskopieras har identifierats läser du Aktivera säkerhetskopiering på SQL-databas.
az backup protectable-item list --resource-group SQLResourceGroup \
--vault-name SQLVault \
--workload-type SQLDataBase \
--protectable-item-type SQLDataBase \
--output table
Den nya databas som du vill säkerhetskopiera visas i den här listan, som visas som:
Name Protectable Item Type ParentName ServerName IsProtected
--------------------------- ---------------------- ------------ ----------- ------------
sqldatabase;mssqlserver;db1 SQLDataBase mssqlserver testSQLVM NotProtected
sqldatabase;mssqlserver;db2 SQLDataBase mssqlserver testSQLVM NotProtected
Stoppa skyddet för en SQL-databas
Du kan sluta skydda en SQL-databas i följande processer:
- Stoppa alla framtida säkerhetskopieringsjobb och ta bort alla återställningspunkter.
- Stoppa alla framtida säkerhetskopieringsjobb och lämna återställningspunkterna intakta.
Om du väljer att lämna återställningspunkter bör du tänka på följande information:
- Alla återställningspunkter förblir intakta för alltid och all beskärning stoppas vid stoppskydd med kvarhållningsdata.
- Du debiteras för den skyddade instansen och den förbrukade lagringen.
- Om du tar bort en datakälla utan att stoppa säkerhetskopior misslyckas nya säkerhetskopieringar.
Processerna för att stoppa skyddet beskrivs nedan.
Avbryt skyddet med kvarhållning av data
Om du vill stoppa skyddet med kvarhållningsdata använder du kommandot 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
Utdata visas som:
Name ResourceGroup
------------------------------------ ---------------
g0f15dae-7cac-4475-d833-f52c50e5b6c3 SQLResourceGroup
Kontrollera statusen för den här åtgärden med kommandot az backup job show .
Stoppa skyddet utan att behålla data
Om du vill stoppa skyddet utan att behålla data använder du kommandot 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
Utdata visas som:
Name ResourceGroup
------------------------------------ ---------------
g0f15dae-7cac-4475-d833-f52c50e5b6c3 SQLResourceGroup
Kontrollera statusen för den här åtgärden med kommandot az backup job show .
Återuppta skyddet
När du stoppar skyddet för SQL-databasen med kvarhållningsdata kan du återuppta skyddet senare. Om du inte behåller säkerhetskopierade data kan du inte återuppta skyddet.
Om du vill återuppta skyddet använder du kommandot 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
Utdata visas som:
Name ResourceGroup
------------------------------------ ---------------
b2a7f108-1020-4529-870f-6c4c43e2bb9e SQLResourceGroup
Kontrollera statusen för den här åtgärden med kommandot az backup job show .