Con SQL Server 2014 ed il Cumulative Update 2 della Service Pack 1 di SQL Server 2012 è stata introdotta l’opzione “TO URL” del comando BACKUP, che permette di memorizzare direttamente un file di backup sul blob storage di Azure. L’operazione è possibile anche con le versioni precedenti (2005, 2008, 2008R2) tramite il tool “SQL Server Backup to Windows Azure”, reso disponibile nei primi mesi del 2014.
I vantaggi che una soluzione simile mette a disposizione sono diversi, tra cui:
-
non ci si deve preoccupare della gestione dello spazio che si ha a disposizione e di gestire hardware dedicato al backup, ma eventualmente verificare lo spazio occupato per una stima dei costi
-
è possibile optare per una soluzione ridondante a livello geografico oltre che locale (ad un costo praticamente doppio), soluzione comunque che garantisce un elevato livello di ridondanza
-
riduzione dei costi di gestione, 1Tb a poco meno di 18€ mese nel caso di ridondanza locale e poco meno di 36€ mese nel caso di ridondanza distribuita; e naturalmente si paga a “consumo”.
Naturalmente lo svantaggio principale è il fatto di avere tempi di backup e restore proporzionali alla larghezza di banda.Veniamo ora ai prerequisiti per effettuare tale operazione, oltre ad avere una sottoscrizione Azure a disposizione
Prima di tutto dobbiamo avere a disposizione un account di archiviazione; se non già presente dobbiamo collegarci alla pagina di gestione del nostro abbonamento, selezionare “Archiviazione” e poi click su “Crea account di archiviazione”
Ci appare a questo punto la maschera di creazione nella quale specifichiamo il nome del nostro URL, la posizione dello storage e il livello di ridondanza.
Dopo alcuni secondi l’account è pronto è ci viene visualizzato; questo in sostanza è un po’ il nostro “entry point” per qualsiasi tipo di archiviazione.
Per potere utilizzare lo spazio a disposizione è però necessario creare un “container” per i nostri files, ed è possibile creare più container all’interno dello stesso account di archiviazione. Per fare questo è necessario effettuare un click sul nome per arrivare alla pagina di gestione dell’archiviazione, all’interno della quale bisogna effettuare un click su “Contenitori”.
Per poi poterne creare uno per la memorizzazione dei backup.
In questo caso come tipo di accesso è stato scelto privato in quanto si è deciso di non condividere gli oggetti presenti nel contenitore.
Dopo alcuni secondi ci viene mostrato il nuovo contenitore.
A questo punto è necessario recuperare le chiavi di accesso per potere accedere in scrittura all’account di archiviazione appena creato e ai vari container; click su “Archiviazione” e poi “Gestisci chiavi di accesso”.
Appare la maschera con i dettagli, dalla quale è possibile fare un semplice copia/incolla dei valori riportati.
Per potere effettuare un backup sullo storage di Azure da SQL Server è necessario creare delle credenziali per potervi accedere; dal Management Studio è necessario espandere il folder “Security”, poi tasto destro su “Credential” -> “New Credential”, popolando poi i campi in modo opportuno. In questo caso ho usato il nome del container come Credential e il nome dell’account di archiviazione come Identity per comodità d’uso.
L’ statement T-SQL associato è
USE [master] GO CREATE CREDENTIAL [sqlbackups] WITH IDENTITY = N'maurmun', SECRET = N'xxxxxxxxxxxxxxxx' GO
Dove al posto delle varie x è necessario inserire la chiave di accesso al proprio account di archiviazione.
Per effettuare un backup è sufficiente poi comando del genere
BACKUP DATABASE [master] TO URL = 'http://maurmun.blob.core.windows.net/sqlbackups/master.bak' WITH CREDENTIAL = 'sqlbackups'
Volendo effettuare il backup dal Management Studio occorre ricordare che la destinazione “URL” è disponibile solo con la versione 2014.
Con SQL Server 2014 è possibile effettuare anche la cifratura del backup stesso, per un ulteriore sicurezza del dato.