Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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 cui è stato eseguito il backup in una macchina virtuale di Azure usando l'interfaccia della riga di comando di Azure. È anche possibile eseguire queste azioni usando il portale di Azure.
Annotazioni
Se hai usato Esegui il backup di un database SQL in Azure utilizzando la CLI per eseguire il backup del tuo database SQL, allora stai usando le seguenti risorse:
- Un gruppo di risorse denominato SQLResourceGroup
- Una cassaforte denominata SQLVault
- Contenitore protetto denominato VMAppContainer;Calcolo;SQLResourceGroup;testSQLVM
- Database/elemento di cui è stato eseguito il backup denominato sqldatabase; mssqlserver; padrone
- 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 con Backup di Azure. Le sezioni seguenti descrivono ognuna delle operazioni di gestione.
Per visualizzare gli scenari di backup e ripristino attualmente supportati, vedere la matrice di supporto. Per domande comuni, vedere le domande frequenti.
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 anche di sospendere un processo 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 segue:
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 la configurazione del backup SQL, usare il comando az backup policy set . Il parametro name in questo comando fa riferimento all'elemento di backup di cui si desidera modificare i criteri. 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 segue:
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 un criterio di backup differenziale
Per creare un criterio di backup differenziale, usare il comando az backup policy create con i parametri seguenti:
- --backup-management-type: carico di lavoro di Azure.
- --workload-type: Banca dati SQL.
- --name: nome della politica.
- --policy: file JSON con i dettagli appropriati per la pianificazione e la conservazione.
- --resource-group: gruppo di risorse del vault.
- --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
Esempio 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"
}
Dopo aver creato correttamente i criteri, l'output del comando mostra il codice JSON dei criteri passato come parametro durante l'esecuzione del comando.
È possibile modificare la sezione seguente dei criteri per specificare la frequenza di backup e la conservazione necessarie per i backup differenziali.
Per 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 vogliono avere backup differenziali solo il sabato e conservarli per 60 giorni, eseguire le modifiche seguenti nei criteri:
- Aggiornare il conteggio retentionDuration 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 una cassetta dei Servizi di ripristino individua automaticamente tutti i database presenti in questa istanza.
Tuttavia, se sono stati aggiunti nuovi database all'istanza di 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
Poi, usa il cmdlet az backup protectable-item list per elencare tutti i database scoperti sulla tua istanza SQL. Controlla o filtra il loro stato di protezione. Quando trovi il database di cui vuoi eseguire il backup, vedi Abilita il backup su un 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 segue:
Name Protectable Item Type ParentName ServerName IsProtected
--------------------------- ---------------------- ------------ ----------- ------------
sqldatabase;mssqlserver;db1 SQLDataBase mssqlserver testSQLVM NotProtected
sqldatabase;mssqlserver;db2 SQLDataBase mssqlserver testSQLVM NotProtected
Interrompere la protezione per un database SQL
È possibile interrompere la protezione di un database SQL nei processi seguenti:
- Arrestare 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 presenti questi dettagli:
- Tutti i punti di ripristino rimangono invariati per sempre e tutte le riduzioni vengono arrestate in caso di arresto della protezione con conservazione dei 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 nel dettaglio di seguito.
Interrompere la protezione conservando i dati
Per arrestare la protezione mantenendo 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 segue:
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 conservare i 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 segue:
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 conservazione dei dati, è possibile riprendere la protezione in un secondo momento. Se non si conservano i dati di cui è stato eseguito il 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 \
--item-name "<native-database-item-name>" \
--output table
L'output viene visualizzato come segue:
Name ResourceGroup
------------------------------------ ---------------
b2a7f108-1020-4529-870f-6c4c43e2bb9e SQLResourceGroup
Per verificare lo stato di questa operazione, usare il comando az backup job show .
Gestire le snapshot di backup delle istanze SQL
I seguenti comandi snapshot utilizzano la sintassi shell di PowerShell, non Bash. Sostituisci i segnaposto e utilizza una versione interfaccia della riga di comando di Azure che supporti le opzioni snapshot mostrate in questo articolo. Esegui solo l'operazione prevista. Gli esempi retain-data e delete-data sono alternative.
Seleziona il vault e l'istanza protetta
Usa l'abbonamento del vault e il gruppo di risorse per gli argomenti più comuni:
$vaultSubscription = "<vault-subscription-id>"
$vaultRg = "<vault-rg>"
$vaultName = "<vault-name>"
$vaultArgs = @("--subscription", $vaultSubscription, "--resource-group", $vaultRg, "--vault-name", $vaultName)
az backup vault show --subscription $vaultSubscription --resource-group $vaultRg --name $vaultName
az backup container list @vaultArgs --backup-management-type AzureWorkload `
--query "[].{Name:name,VM:properties.friendlyName}" --output table
$containerName = "<native-source-container-name>"
$sourceArgs = $vaultArgs + @("--container-name", $containerName, "--backup-management-type", "AzureWorkload")
Copia il nome esatto del contenitore dall'output. Elenca tutte le istanze protette da snapshot nel vault, poi limita l'elenco al contenitore selezionato:
az backup item list @vaultArgs --backup-management-type AzureWorkload `
--workload-type SQLInstance --output json
az backup item list @sourceArgs --workload-type SQLInstance --output json
$instanceItemName = "<native-protected-instance-item-name>"
az backup item show @sourceArgs --workload-type SQLInstance `
--name $instanceItemName --output json
$instanceArgs = $sourceArgs + @("--item-name", $instanceItemName, "--workload-type", "SQLInstance")
Usa nomi nativi restituiti dal servizio invece di costruire nomi di container o oggetti. Per la creazione di policy e la selezione del database, vedi Configura backup snapshot di istanza SQL.
Monitora le operazioni snapshot
Usa il nome del processo che un'operazione di backup, ripristino o protezione restituisce per verificarne lo stato.
az backup job show @vaultArgs --name "<job-name>" --output json
Arrestare la protezione e conservare i dati
Conferma che l'elemento selezionato sia l'istanza prevista prima di interrompere i suoi backup:
az backup protection disable @instanceArgs --delete-backup-data false
Questa operazione blocca il backup pur conservando i dati di backup esistenti. Consulta il prompt di conferma prima di procedere.
Arrestare la protezione ed eliminare i dati
Warning
Quanto segue è un'alternativa distruttiva alla conservazione dei dati di backup. Verifica l'istanza selezionata e i suoi database prima di richiedere la cancellazione. L'immutabilità del vault e le impostazioni di cancellazione soft possono influenzare il comportamento di eliminazione.
az backup protection disable @instanceArgs --delete-backup-data true
Annulla registrazione del contenitore della VM
Annulla la registrazione del container solo dopo che tutti i suoi elementi protetti non sono più protetti e non rimangono dati di backup. Questa operazione si applica all'intero contenitore applicativo della VM, non solo a un'istanza o a un database.
az backup container unregister @vaultArgs --container-name $containerName `
--backup-management-type AzureWorkload
Per query di snapshot e configurazioni di ripristino dei punti di recupero, vedi Ripristina snapshot di istanza SQL.
Passaggi successivi
- Informazioni su come eseguire il backup di un database SQL in esecuzione in una macchina virtuale di Azure usando il portale di Azure.
- Informazioni su come gestire un database SQL di cui è stato eseguito il backup in esecuzione in una macchina virtuale di Azure usando il portale di Azure.