Gestire i database SQL in una macchina virtuale di Azure usando l'interfaccia della riga di comando di Azure
L'interfaccia della riga di comando di Azure consente di creare e gestire le risorse di Azure dalla riga di comando o tramite script. Questo articolo descrive come gestire un database SQL di backup nella macchina virtuale di Azure usando l'interfaccia della riga di comando di Azure. È anche possibile eseguire queste azioni usando il portale di Azure.
In questo articolo si apprenderà come:
- Monitorare i processi di backup e ripristino
- Proteggere i nuovi database aggiunti a un'istanza di SQL
- Modificare i criteri
- Arresta protezione
- Riprendere la protezione
Se è stato usato il backup di un database SQL in Azure usando l'interfaccia della riga di comando per eseguire il backup del database SQL, si usano le risorse seguenti:
- Un gruppo di risorse denominato SQLResourceGroup
- Insieme di credenziali denominato SQLVault
- Contenitore protetto denominato VMAppContainer; Calcolare; SQLResourceGroup;testSQLVM
- Database di backup/elemento denominato sqldatabase;mssqlserver;master
- Risorse nell'area westus2
L'interfaccia della riga di comando di Azure semplifica il processo di gestione di un database SQL in esecuzione in una macchina virtuale di Azure sottoposta a backup usando Backup di Azure. Le sezioni seguenti descrivono ognuna delle operazioni di gestione.
Nota
Per altre informazioni sulle configurazioni e sugli scenari supportati, vedere la matrice di supporto del backup SQL .
Monitorare i processi di backup e ripristino
Usare il comando az backup job list per monitorare i processi completati o attualmente in esecuzione (backup o ripristino). L'interfaccia della riga di comando consente inoltre di sospendere un processo attualmente in esecuzione o attendere il completamento di un processo.
az backup job list --resource-group SQLResourceGroup \
--vault-name SQLVault \
--output table
L'output viene visualizzato come:
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
Modificare un criterio
Per modificare i criteri sottostanti alla configurazione del backup SQL, usare il comando az backup policy set . Il parametro name in questo comando fa riferimento all'elemento di backup il cui criterio si vuole modificare. In questo caso sostituire i criteri del database SQL sqldatabase;mssqlserver;master con un nuovo criterio newSQLPolicy. È possibile creare nuovi criteri usando il comando 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 \
L'output viene visualizzato come:
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
Creare criteri di backup differenziali
Per creare criteri di backup differenziali, usare il comando az backup policy create con i parametri seguenti:
- --backup-management-type: carico di lavoro di Azure.
- --workload-type: SQL DataBase.
- --name: nome del criterio.
- --policy: file JSON con dettagli appropriati per la pianificazione e la conservazione.
- --resource-group: gruppo di risorse dell'insieme di credenziali.
- --vault-name: nome dell'insieme di credenziali/
Esempio:
az backup policy create --resource-group SQLResourceGroup --vault-name SQLVault --name SQLPolicy --backup-management-type AzureWorkload --policy SQLPolicy.json --workload-type SQLDataBase
JSON di esempio (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"
}
Dopo aver creato correttamente il criterio, l'output del comando mostra il codice JSON dei criteri passato come parametro durante l'esecuzione del comando.
È possibile modificare la sezione seguente del criterio per specificare la frequenza di backup e la conservazione necessarie per i backup differenziali.
Ad esempio:
{
"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
}
}
Esempio:
Se si desidera avere backup differenziali solo il sabato e conservarli per 60 giorni, eseguire le modifiche seguenti nei criteri:
- Aggiornare il numero di conservazioneDuration a 60 giorni.
- Specificare solo sabato come 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
}
}
Proteggere i nuovi database aggiunti a un'istanza di SQL
La registrazione di un'istanza SQL con un insieme di credenziali di Servizi di ripristino individua automaticamente tutti i database in questa istanza.
Tuttavia, se sono stati aggiunti nuovi database all'istanza sql in un secondo momento, usare il comando az backup protectable-item initialize . Questo comando individua i nuovi database aggiunti.
az backup protectable-item initialize --resource-group SQLResourceGroup \
--vault-name SQLVault \
--container-name VMAppContainer;Compute;SQLResourceGroup;testSQLVM \
--workload-type SQLDataBase
Usare quindi il cmdlet az backup protectable-item list per elencare tutti i database individuati nell'istanza SQL. Questo elenco esclude tuttavia i database in cui è già stato configurato il backup. Dopo aver individuato il backup del database, vedere Abilitare il backup nel database SQL.
az backup protectable-item list --resource-group SQLResourceGroup \
--vault-name SQLVault \
--workload-type SQLDataBase \
--protectable-item-type SQLDataBase \
--output table
Il nuovo database di cui si vuole eseguire il backup viene visualizzato in questo elenco, che viene visualizzato come:
Name Protectable Item Type ParentName ServerName IsProtected
--------------------------- ---------------------- ------------ ----------- ------------
sqldatabase;mssqlserver;db1 SQLDataBase mssqlserver testSQLVM NotProtected
sqldatabase;mssqlserver;db2 SQLDataBase mssqlserver testSQLVM NotProtected
Arrestare la protezione per un database SQL
È possibile interrompere la protezione di un database SQL nei processi seguenti:
- Interrompere tutti i processi di backup futuri ed eliminare tutti i punti di recupero.
- Arrestare tutti i processi di backup futuri mantenendo tuttavia invariati i punti di ripristino.
Se si sceglie di lasciare i punti di ripristino, tenere presente questi dettagli:
- Tutti i punti di ripristino rimangono intatti per sempre e tutti gli arresti di eliminazione della protezione con conservare i dati.
- Verranno addebitati i costi per l'istanza protetta e lo spazio di archiviazione utilizzato.
- Se si elimina un'origine dati senza arrestare i backup, i nuovi backup avranno esito negativo.
I processi per arrestare la protezione sono descritti di seguito.
Arrestare la protezione conservando i dati
Per arrestare la protezione con conservare i dati, usare il comando 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
L'output viene visualizzato come:
Name ResourceGroup
------------------------------------ ---------------
g0f15dae-7cac-4475-d833-f52c50e5b6c3 SQLResourceGroup
Per verificare lo stato di questa operazione, usare il comando az backup job show .
Arrestare la protezione senza conservazione dei dati
Per arrestare la protezione senza conservare i dati, usare il comando 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
L'output viene visualizzato come:
Name ResourceGroup
------------------------------------ ---------------
g0f15dae-7cac-4475-d833-f52c50e5b6c3 SQLResourceGroup
Per verificare lo stato di questa operazione, usare il comando az backup job show .
Riprendere la protezione
Quando si arresta la protezione per il database SQL con i dati di conservazione, è possibile riprendere la protezione in un secondo momento. Se non si conservano i dati di backup, non sarà possibile riprendere la protezione.
Per riprendere la protezione, usare il comando 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
L'output viene visualizzato come:
Name ResourceGroup
------------------------------------ ---------------
b2a7f108-1020-4529-870f-6c4c43e2bb9e SQLResourceGroup
Per verificare lo stato di questa operazione, usare il comando az backup job show .