Condividi tramite


Eseguire il backup dei database SQL in una macchina virtuale di Azure tramite 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 eseguire il backup di un database SQL nella macchina virtuale di Azure e attivare backup su richiesta usando l'interfaccia della riga di comando di Azure. È anche possibile eseguire queste procedure tramite il portale di Azure.

Questo articolo presuppone che sia già installato un database SQL in una macchina virtuale di Azure. È anche possibile creare una macchina virtuale usando l'interfaccia della riga di comando di Azure.

In questo articolo si apprenderà come:

  • Creare un insieme di credenziali di Servizi di ripristino
  • Registrare SQL Server e individuare i database
  • Abilitare il backup in un database SQL
  • Attivare un backup su richiesta

Vedere gli scenari attualmente supportati per SQL nella macchina virtuale di Azure.

Prerequisiti

Creare un insieme di credenziali di Servizi di ripristino

Un insieme di credenziali di Servizi di ripristino è un contenitore logico in cui vengono archiviati i dati di backup per ogni risorsa protetta, ad esempio le macchine virtuali di Azure, o i carichi di lavoro in esecuzione nelle macchine virtuali di Azure, ad esempio i database SQL o HANA. Quando viene eseguito, il processo di backup per una risorsa protetta crea un punto di ripristino all'interno dell'insieme di credenziali dei servizi di ripristino. È quindi possibile usare uno di questi punti di ripristino per ripristinare i dati a un dato momento.

Creare un insieme di credenziali dei servizi di ripristino con il comando az backup vault create. Usare il gruppo di risorse e la posizione come quella della macchina virtuale che si vuole proteggere. Informazioni su come creare una macchina virtuale Windows e una macchina virtuale Linux usando l'interfaccia della riga di comando di Azure.

Per questo articolo si userà:

  • Un gruppo di risorse denominato SQLResourceGroup
  • Una macchina virtuale denominata testSQLVM
  • Risorse nella località westus2.

Eseguire il comando seguente per creare un insieme di credenziali denominato SQLVault.

az backup vault create --resource-group SQLResourceGroup \
    --name SQLVault \
    --location westus2

Per impostazione predefinita, l'insieme di credenziali di Servizi di ripristino è impostato per l'archiviazione con ridondanza geografica. L'archiviazione con ridondanza geografica assicura che i dati di backup vengano replicati in un'area di Azure secondaria anche se si trova a centinaia di chilometri di distanza dall'area primaria. Se è necessario modificare l'impostazione di ridondanza dell'archiviazione, usare il comando az backup vault backup-properties set.

az backup vault backup-properties set \
    --name SQLVault  \
    --resource-group SQLResourceGroup \
    --backup-storage-redundancy "LocallyRedundant/GeoRedundant"

Per verificare se l'insieme di credenziali è stato creato correttamente, usare il comando az backup vault list. La risposta viene visualizzata come:

Location   Name             ResourceGroup
---------  ---------------  -------------  
westus2    SQLVault     	SQLResourceGroup

Registrare e proteggere SQL Server

Per registrare SQL Server con l'insieme di credenziali di Servizi di ripristino, usare il comando az backup container register. VMResourceId è l'ID risorsa della macchina virtuale creata per installare SQL.

az backup container register --resource-group SQLResourceGroup \
    --vault-name SQLVault \
    --workload-type SQLDataBase \
    --backup-management-type AzureWorkload \
    --resource-id VMResourceId

Nota

Se la macchina virtuale non è presente nello stesso gruppo di risorse dell'insieme di credenziali, SQLResourceGroup usa il gruppo di risorse in cui è stato creato l'insieme di credenziali.

La registrazione di SQL Server individua automaticamente tutti i relativi database correnti. Tuttavia, per individuare i nuovi database che possono essere aggiunti in futuro, vedere la sezione Individuazione dei nuovi database aggiunti all'SQL Server registrato.

Usare il comando az backup container list per verificare se l'istanza di SQL è stata registrata correttamente con l'insieme di credenziali. La risposta viene visualizzata come:

Name                                                    Friendly Name    Resource Group        Type           Registration Status
------------------------------------------------------  --------------   --------------------  ---------      ----------------------
VMAppContainer;Compute;SQLResourceGroup;testSQLVM   	testSQLVM        SQLResourceGroup  		AzureWorkload  Registered

Nota

La colonna nome nell'output precedente fa riferimento al nome del contenitore. Questo nome di contenitore è usato nelle sezioni successive per abilitare i backup e attivarli. Ad esempio, VMAppContainer;Compute;SQLResourceGroup;testSQLVM.

Abilitare il backup nel database SQL

Il comando az backup protectable-item list elenca tutti i database individuati nell'istanza di SQL registrata nel passaggio precedente.

az backup protectable-item list --resource-group SQLResourceGroup \
    --vault-name SQLVault \
    --workload-type SQLDataBase \
	--backup-management-type AzureWorkload \
	--protectable-item-type SQLDataBase
    --output table

È necessario trovare il database in questo elenco di cui si vuole eseguire il backup, che viene visualizzato come:

Name                           		Protectable Item Type    ParentName    ServerName    	IsProtected
-----------------------------  		----------------------   ------------  -----------   	------------
sqldatabase;mssqlserver;master      SQLDataBase              MSSQLServer   testSQLVM        NotProtected  
sqldatabase;mssqlserver;model       SQLDataBase              MSSQLServer   testSQLVM        NotProtected  
sqldatabase;mssqlserver;msdb        SQLDataBase              MSSQLServer   testSQLVM        NotProtected  

Configurare ora il backup per il database sqldatabase;mssqlserver;master.

Per configurare e proteggere i backup in un database, uno alla volta, usare il comando az backup protection enable-for-azurewl. Specificare il nome del criterio da usare. Per creare un criterio con l'interfaccia della riga di comando, usare il comando az backup policy create. Per questo articolo sono stati usati i criteri testSQLPolicy.

az backup protection enable-for-azurewl --resource-group SQLResourceGroup \
    --vault-name SQLVault \
    --policy-name SQLPolicy \
    --protectable-item-name "sqldatabase;mssqlserver;master"  \
    --protectable-item-type SQLDataBase \
    --server-name testSQLVM \
    --workload-type SQLDataBase \
    --output table

È possibile usare lo stesso comando, se si dispone di un gruppo di disponibilità SQL Always On e si vuole identificare l'origine dati proteggibile all'interno del gruppo di disponibilità. In questo caso, il tipo di elemento proteggibile è SQLAG.

Per verificare se la configurazione di backup precedente è stata completata, usare il comando az backup job list. L'output viene visualizzato come segue:

Name                                  Operation         Status     Item Name   Start Time UTC
------------------------------------  ---------------   ---------  ----------  -------------------  
e0f15dae-7cac-4475-a833-f52c50e5b6c3  ConfigureBackup   Completed  master         2019-12-03T03:09:210831+00:00  

Il comando az backup job list elenca tutti i processi di backup (pianificati o su richiesta) che sono stati eseguiti o sono attualmente in esecuzione nel database protetto, oltre ad altre operazioni come la registrazione, la configurazione del backup e l'eliminazione dei dati di backup.

Nota

Backup di Azure non si adatta automaticamente al cambiamento dell'ora legale per il backup di un database SQL in esecuzione in una VM di Azure.

Modificare manualmente i criteri in base alle esigenze.

Abilitare la protezione automatica

Per una configurazione di backup senza problemi, tutti i database aggiunti in futuro possono essere protetti automaticamente con un determinato criterio. Per abilitare la protezione automatica, usare il comando az backup protection auto-enable-for-azurewl.

Poiché l'istruzione prevede l'esecuzione del backup di tutti i database futuri, l'operazione viene eseguita a livello di istanza SQL.

az backup protection auto-enable-for-azurewl --resource-group SQLResourceGroup \
    --vault-name SQLVault \
    --policy-name SQLPolicy \
    --protectable-item-name "sqlinstance;mssqlserver"  \
    --protectable-item-type SQLInstance \
    --server-name testSQLVM \
    --workload-type MSSQL\
    --output table

Attivare un backup su richiesta

Per attivare un backup su richiesta, usare il comando az backup protection backup-now.

Nota

Il periodo di conservazione di questo backup è determinato dal tipo di backup su richiesta eseguito.

  • Su richiesta completo conserva i backup per un minimo di 45 giorni e un massimo di 99 anni.
  • Copia su richiesta solo completa accetta qualsiasi valore per la conservazione.
  • Differenziale su richiesta conserva il backup in base alla conservazione dei differenziali pianificati impostati nei criteri.
  • Log su richiesta conserva i backup in base alla conservazione dei log pianificati impostati nei criteri.
az backup protection backup-now --resource-group SQLResourceGroup \
    --item-name sqldatabase;mssqlserver;master \
    --vault-name SQLVault \
    --container-name VMAppContainer;Compute;SQLResourceGroup;testSQLVM \
    --backup-type Full
    --retain-until 01-01-2040
    --output table

L'output viene visualizzato come segue:

Name                                  ResourceGroup
------------------------------------  -------------
e0f15dae-7cac-4475-a833-f52c50e5b6c3  sqlResourceGroup

La risposta fornisce il nome del processo. È possibile usare questo nome per tenere traccia dello stato del processo usando il comando az backup job show.

Passaggi successivi