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.
Applies a:SQL Server
Istanza gestita di SQL di Azure
Questo articolo presenta i concetti, i requisiti e i componenti necessari per usare Archiviazione BLOB di Azure come destinazione di backup. La funzionalità di backup e ripristino è uguale o simile a quando si usa DISK o TAPE, con alcune differenze. Nell'articolo sono descritte le differenze e sono inclusi alcuni esempi di codice.
Tip
A partire da SQL Server 2025 (17.x), è possibile eseguire il backup nell'URL con identità gestita. Esaminare Effettua il backup su URL con identità gestita (in anteprima) - SQL Server con abilitazione di Azure Arc.
Overview
SQL Server 2012 Service Pack 1 CU2 e SQL Server 2014 ha introdotto la possibilità di eseguire il backup in un URL a cui punta Archiviazione BLOB di Azure, usando una sintassi T-SQL familiare per scrivere i backup in modo sicuro nell'archiviazione Azure. SQL Server 2016 (13.x) ha introdotto File-Snapshot Backup per i file di database in Azure e sicurezza tramite chiavi di firma di accesso condiviso (SAS), un modo sicuro e semplice per autenticare i certificati ai criteri di sicurezza Archiviazione di Azure.
È importante comprendere i componenti e l'interazione tra di essi per eseguire un backup o eseguire il ripristino da Archiviazione BLOB di Azure.
La creazione di un account Archiviazione di Azure all'interno della sottoscrizione Azure è il primo passaggio di questo processo. Questo account di archiviazione è un account amministrativo con autorizzazioni amministrative complete per tutti i contenitori e gli oggetti creati con tale account. SQL Server può usare il nome dell'account di archiviazione di Azure e il valore della relativa chiave di accesso per autenticarsi e leggere e scrivere BLOB su Archiviazione BLOB di Azure oppure usare un token di firma di accesso condiviso generato su contenitori specifici che concedono diritti di lettura e scrittura. Per ulteriori informazioni sugli account di archiviazione di Azure, vedere Informazioni sugli account di archiviazione di Azure e per ulteriori informazioni sulle firme di accesso condiviso, vedere Firme di accesso condiviso, Parte 1: Comprendere il modello SAS. Le credenziali SQL Server archivia queste informazioni di autenticazione e vengono usate durante le operazioni di backup o ripristino.
Archiviazione di Azure e archiviazione compatibile con S3
SQL Server 2022 (16.x) introduce la possibilità di scrivere backup nell'archivio oggetti compatibile con S3, con funzionalità di backup e ripristino concettualmente simili all'uso di Backup nell'URL usando Archiviazione BLOB di Azure come tipo di dispositivo di backup. SQL Server 2022 (16.x) estende la sintassi BACKUP/RESTORE TO/FROM URL aggiungendo il supporto per un nuovo connettore S3 usando l'API REST.
Questo articolo contiene informazioni sull'uso di Backup su URL per Archiviazione BLOB di Azure. Per altre informazioni sull'uso del backup nell'URL per l'archiviazione compatibile con S3, vedere SQL Server eseguire il backup nell'URL per l'archiviazione oggetti compatibile con S3.
Backup su Archiviazione di Azure: bloc blobs vs. page blobs
Esistono due tipi di BLOB che possono essere archiviati in Archiviazione BLOB di Azure: BLOB di blocchi e pagine. Per SQL Server 2016 e versioni successive, è preferibile usare BLOB in blocchi.
Se la chiave di archiviazione viene utilizzata nelle credenziali, viene utilizzato il blob di pagine; se viene utilizzata la Firma di Accesso Condiviso, viene utilizzato il blob in blocchi.
Il backup verso BLOB di tipo blocco è disponibile solo in SQL Server 2016 o versioni successive per eseguire il backup su Archiviazione BLOB di Azure. Eseguire il backup nel BLOB di blocchi anziché nel BLOB di pagine se si utilizza SQL Server 2016 o versione successiva.
I motivi principali sono:
- La firma di accesso condiviso è un modo più sicuro per autorizzare l'accesso al BLOB rispetto alla chiave di archiviazione.
- È possibile eseguire il backup su più BLOB in blocchi per ottenere prestazioni di backup e ripristino superiori e supportare il backup di database più grandi.
- Il blob di blocchi è più economico del blob di pagine.
- I clienti che devono eseguire il backup nei BLOB di pagine tramite un server proxy devono usare
backuptourl.exe.
L'esecuzione di un backup di un database di grandi dimensioni in Archiviazione BLOB di Azure è soggetta alle limitazioni elencate in Istanza gestita di SQL di Azure differenze, limitazioni e problemi noti di T-SQL.
Se le dimensioni del database sono troppo grandi, è possibile:
- Utilizzare la compressione del backup oppure
- Eseguire il backup su più BLOB di blocchi
Supporto su Linux, container e Istanza gestita di SQL abilitato da Azure Arc
Se l'istanza di SQL Server è ospitata in Linux, tra cui:
- Sistema operativo autonomo
- Containers
- Istanza gestita di SQL gestito tramite Azure Arc
- Qualsiasi altro ambiente basato su Linux
L'unico backup supportato nell'URL per Archiviazione BLOB di Azure consiste nel bloccare i BLOB, usando la firma di accesso condiviso.
Archiviazione BLOB di Azure
Account di archiviazione: L'account di archiviazione è il punto di partenza per tutti i servizi di archiviazione. Per accedere alle Archiviazione BLOB di Azure, creare prima di tutto un account di archiviazione Azure. Per altre informazioni, vedere la pagina relativa alla creazione degli account di archiviazione.
Contenitore: Un contenitore fornisce un raggruppamento di un set di BLOB e può archiviare un numero illimitato di BLOB. Per scrivere un backup SQL Server in Archiviazione BLOB di Azure, è necessario creare almeno il contenitore radice. È possibile generare un token di firma di accesso condiviso in un contenitore e concedere l'accesso agli oggetti in un solo contenitore specifico.
Blob: File di qualsiasi tipo e dimensione. Esistono due tipi di BLOB che possono essere archiviati in Archiviazione BLOB di Azure: BLOB di blocchi e pagine. SQL Server backup può usare uno dei due tipi di BLOB a seconda della sintassi Transact-SQL usata. I BLOB sono indirizzabili tramite questo formato di URL: https://<account di archiviazione>.blob.core.windows.net/<contenitore>/<blob>. Per altre informazioni sui Archiviazione BLOB di Azure, vedere Introduzione a Archiviazione BLOB di Azure. Per ulteriori informazioni sui BLOB di pagine e a blocchi, vedere Informazioni sui BLOB di pagine e a blocchi.
Azure Snapshot: Uno snapshot di un blob di Azure creato in un momento specifico nel tempo. Per altre informazioni, vedere Creazione di uno snapshot di un BLOB. SQL Server supporta ora i backup snapshot di Azure dei file di database archiviati su Archiviazione BLOB di Azure. Per altre informazioni, vedere File-Snapshot Backup per i file di database in Azure.
componenti SQL Server
URL: Un URL specifica un URI (Uniform Resource Identifier) in un file di backup univoco. L'URL viene usato per specificare il percorso e il nome del file di backup SQL Server. L'URL deve puntare a un BLOB effettivo, non solo a un contenitore. Se il blob non esiste, viene creato. Se viene specificato un BLOB esistente, BACKUP ha esito negativo, a meno che non venga specificata l'opzione WITH FORMAT per sovrascrivere il file di backup esistente nel BLOB.
Ecco un valore url di esempio: https://ACCOUNTNAME.blob.core.windows.net/<CONTAINER>/FILENAME.bak.
Note
Il backup nell'URL tramite HTTP non è supportato.
Credential: Una credenziale SQL Server è un oggetto usato per archiviare le informazioni di autenticazione necessarie per connettersi a una risorsa al di fuori di SQL Server. In questo caso, i processi di backup e di ripristino di SQL Server usano le credenziali per autenticarsi su Archiviazione BLOB di Azure e sui relativi oggetti contenitore e blob. Le credenziali archivia il nome dell'account di archiviazione e i valori della chiave di accesso dell'account di archiviazione o l'URL del contenitore e il relativo token di firma di accesso condiviso. Dopo aver creato le credenziali, la sintassi delle BACKUP/RESTORE istruzioni determina il tipo di BLOB e le credenziali necessarie.
Per un esempio su come creare una firma di accesso condiviso, vedere Creare una firma di accesso condiviso esempi più avanti in questo articolo e creare una credenziale SQL Server, vedere Creare una credenziale esempi più avanti in questo articolo.
Per altre informazioni sulle credenziali, vedere Credentials (motore di database).
Per informazioni su altri esempi in cui vengono usate le credenziali, vedere Creare un proxy SQL Server Agent.
Azure supporto di archiviazione non modificabile
SQL Server 2025 (17.x) introduce il supporto per Azure archiviazione non modificabile, che protegge dagli attacchi ransomware. I file scritti nella risorsa di archiviazione non modificabile non possono essere modificati o eliminati, come definito dall'immutabilità.
In genere, SQL Server backup vengono creati in due passaggi. Inizialmente, il file di backup .bak viene creato riempito di zeri e successivamente viene aggiornato con dei dati. Poiché la modifica dei file nell'archiviazione non modificabile non è consentita dopo la scrittura e il commit del file, il processo di backup ignora ora il passaggio iniziale per creare il file di backup con zeri. Invece, l'intero backup viene creato in un unico passaggio quando viene scritto nei blob di blocchi.
Archiviazione di Azure offre due tipi di immutabilità: livello di contenitore e livello di versione. Attualmente è supportata solo l'archiviazione non modificabile a livello di contenitore.
Per usare l'archiviazione non modificabile con SQL Server 2025 (17.x) backup su URL, seguire questa procedura:
Configura l'immuabilità per il contenitore di archiviazione di Azure.
Eseguire il BACKUP per eseguire il backup del database nel contenitore di archiviazione Azure. Se si usa l'opzione per l'archiviazione non modificabile
WITH FORMATe un backup esiste già con lo stesso nome, si verifica un errore e il backup non riesce.BACKUP DATABASE [<Database>] TO URL = '<url>';
Sicurezza per Archiviazione BLOB di Azure
Di seguito sono riportate considerazioni e requisiti di sicurezza durante il backup o il ripristino da Archiviazione BLOB di Azure.
Quando si crea un contenitore per Archiviazione BLOB di Azure, è consigliabile impostare l'accesso a private. L'impostazione dell'accesso a privato limita l'accesso a utenti o account in grado di fornire le informazioni necessarie per l'autenticazione all'account Azure.
Important
SQL Server richiede che un nome dell'account Azure e l'autenticazione della chiave di accesso o una firma di accesso condiviso e un token di accesso vengano archiviati in una SQL Server credenziali. Queste informazioni vengono usate per eseguire l'autenticazione all'account Azure durante l'esecuzione di operazioni di backup o ripristino.
Warning
Archiviazione di Azure supporta la disabilitazione dell'autorizzazione con chiave condivisa per un account di archiviazione. Se l'autorizzazione con chiave condivisa è disabilitata, SQL Server backup in URL non funzionerà.
L'account utente usato per eseguire
BACKUPoRESTOREi comandi deve trovarsi nel ruolo di operatore db_backup con permessi Alter any credential.
Limitazioni di backup/ripristino a Archiviazione BLOB di Azure
SQL Server limita le dimensioni massime di backup supportate usando un BLOB di pagine a 1 TB. Le dimensioni massime di backup supportate tramite BLOB in blocchi sono limitate a circa 195,3 GB (50.000 blocchi * 4 MB
MAXTRANSFERSIZE). I BLOB in blocchi supportano lo striping per supportare dimensioni di backup notevolmente maggiori: il limite è un massimo di 64 URL, che comporta la formula seguente:64 stripes * 50,000 blocks * 4MB maxtransfersize = 12.8 TB.Important
Sebbene le dimensioni massime di backup supportate da un singolo BLOB in blocchi siano di circa 195,3 GB, è possibile che SQL Server scrivere in blocchi di dimensioni inferiori, il che può portare SQL Server a raggiungere il limite di 50.000 blocchi prima del trasferimento dell'intero backup. Eseguire lo striping dei backup (anche se più piccoli di 200 GB) per evitare il limite dei blocchi, specialmente quando si usano backup differenziali o non compressi.
Il backup del log delle transazioni ignora il parametro specificato dall'utente quando viene eseguito su più file di backup. Viene invece usato 64 KB se vengono specificati più file, indipendentemente dal
MAXTRANSFERSIZEvalore nel comando di backup. Pertanto, la dimensione massima di un backup del log delle transazioni nell'URL è di circa 195,3 GB (50.000 blocchi * 4 MBMAXTRANSFERSIZE* 1 file O 50.000 blocchi * 64 KB * 64 file). La compressione può consentire il backup di un log delle transazioni di dimensioni maggiori, ma i rapporti di compressione variano.È possibile eseguire istruzioni di backup o ripristino usando Transact-SQL, SMO, cmdlet di PowerShell o SQL Server Management Studio backup o ripristino guidato.
Quando si esegue il backup in un account Archiviazione di Azure, SQL Server supporta solo l'autenticazione con token di firma di accesso condiviso o chiavi dell'account di archiviazione. Tutti gli altri metodi di autenticazione, inclusa l'autenticazione con Microsoft Entra ID (formerly Azure Active Directory) non sono supportati.
La creazione di un nome di dispositivo logico non è supportata. L'aggiunta di URL come dispositivo di backup tramite
sp_dumpdeviceo tramite SQL Server Management Studio non è supportata.L'accodamento ai blob di backup esistenti non è supportato. I backup su un blob esistente possono essere sovrascritti solo usando l'opzione
WITH FORMAT. Tuttavia, quando si utilizzano backup di snapshot di file (usando l'argomentoWITH FILE_SNAPSHOT), l'argomentoWITH FORMATnon è consentito per evitare di lasciare snapshot di file orfani creati con il backup originale dello snapshot di file.Il backup su più BLOB in un'unica operazione è supportato solo tramite BLOB di blocchi e un token SAS (firma di accesso condiviso), piuttosto che utilizzare la chiave dell'account di archiviazione per la credenziale SQL.
La specifica
BLOCKSIZEnon è supportata per i BLOB di pagine.La specifica di
MAXTRANSFERSIZEnon è supportata per i BLOB di pagina.Specificare le opzioni del set di backup -
RETAINDAYSeEXPIREDATEnon sono supportate.SQL Server ha un limite massimo di 259 caratteri per un nome di dispositivo di backup.
BACKUP TO URLUtilizza 36 caratteri per gli elementi necessari usati per specificare l'URLhttps://.blob.core.windows.net//.bak, lasciando 223 caratteri per i nomi di account, contenitore e BLOB messi insieme.SQL Server 2019 (15.x) e le versioni precedenti hanno un limite di 256 caratteri per i token di firma di accesso condiviso (SAS), che limita il tipo di token che possono essere usati (ad esempio, i token della chiave di delega utente non sono supportati).
Se il server accede Azure tramite un server proxy, è necessario usare il flag di traccia 1819 e quindi impostare la configurazione proxy WinHTTP tramite uno dei metodi seguenti:
- Utilità proxycfg.exe su Windows XP o Windows Server 2003 e versioni precedenti.
- Utilità netsh.exe su Windows Vista e Windows Server 2008 o versione successiva.
Archiviazione immutabile per Archiviazione BLOB di Azure non è supportata fino al rilascio di SQL Server 2025. Impostare i criteri di archiviazione non modificabili su false.
Per il supporto in SQL Server 2025 e versioni successive, vedere Azure supporto di archiviazione non modificabile.
- Archiviazione di Azure offre due tipi di immutabilità: livello di contenitore e livello di versione. Attualmente è supportata solo l'archiviazione non modificabile a livello di contenitore.
Il backup nell'URL non è supportato nell'archiviazione Premium.
Argomenti e istruzioni supportati in Archiviazione BLOB di Azure
Supporto per istruzioni di backup/ripristino in Archiviazione BLOB di Azure
| Dichiarazione di Backup/Ripristino | Supported | Exceptions | Comments |
|---|---|---|---|
BACKUP |
Yes |
BLOCKSIZE e MAXTRANSFERSIZE sono supportati per i BLOB in blocchi. Non sono supportati per i BLOB di pagine. |
BACKUP in un BLOB a blocchi richiede una firma di accesso condiviso salvata come credenziale di SQL Server.
BACKUP nel blob di pagine richiede che la chiave dell'account di archiviazione sia salvata in una credenziale SQL Server e richiede che l'argomento WITH CREDENTIAL venga specificato. |
RESTORE |
Yes | Richiede la definizione di una credenziale SQL Server e richiede che venga specificato l'argomento WITH CREDENTIAL se la credenziale SQL Server viene definita usando la chiave dell'account di archiviazione come segreto |
|
RESTORE FILELISTONLY |
Yes | Richiede la definizione di una credenziale SQL Server e richiede che venga specificato l'argomento WITH CREDENTIAL se la credenziale SQL Server viene definita usando la chiave dell'account di archiviazione come segreto |
|
RESTORE HEADERONLY |
Yes | Richiede la definizione di una credenziale SQL Server e richiede che venga specificato l'argomento WITH CREDENTIAL se la credenziale SQL Server viene definita usando la chiave dell'account di archiviazione come segreto |
|
RESTORE LABELONLY |
Yes | Richiede la definizione di una credenziale SQL Server e richiede che venga specificato l'argomento WITH CREDENTIAL se la credenziale SQL Server viene definita usando la chiave dell'account di archiviazione come segreto |
|
RESTORE VERIFYONLY |
Yes | Richiede la definizione di una credenziale SQL Server e richiede che venga specificato l'argomento WITH CREDENTIAL se la credenziale SQL Server viene definita usando la chiave dell'account di archiviazione come segreto |
|
RESTORE REWINDONLY |
No |
Per informazioni generali sulla sintassi e sulle istruzioni di backup, vedere BACKUP.
Per informazioni generali sulla sintassi e sulle istruzioni di ripristino, vedere Istruzioni RESTORE.
Supporto per i parametri di backup in Archiviazione BLOB di Azure
| Argument | Supported | Exception | Comments |
|---|---|---|---|
DATABASE |
Yes | ||
LOG |
Yes | ||
TO (URL) |
Yes | A differenza di DISK e TAPE, l'URL non supporta la specifica o la creazione di un nome logico. |
Questo argomento viene utilizzato per specificare il percorso URL del file di backup. |
MIRROR TO |
Yes | ||
WITH Opzioni: |
|||
CREDENTIAL |
Yes | ||
FILE_SNAPSHOT |
Yes | ||
ENCRYPTION |
Yes | Quando viene specificato l'argomento WITH ENCRYPTION, SQL Server File-Snapshot Backup garantisce che l'intero database sia stato crittografato tramite TDE prima di eseguire il backup e, in tal caso, crittografa il file di backup dello snapshot di file usando l'algoritmo specificato per TDE nel database. Se tutti i dati nel database dell'intero database non sono crittografati, il backup ha esito negativo, ad esempio il processo di crittografia non è ancora stato completato. |
|
DIFFERENTIAL |
Yes | ||
COPY_ONLY |
Yes | ||
COMPRESSION|NO_COMPRESSION |
Yes | Non supportato per il backup con snapshot di file | |
DESCRIPTION |
Yes | ||
NAME |
Yes | ||
EXPIREDATE | RETAINDAYS |
No | ||
NOINIT | INIT |
No | Non si possono aggiungere dati ai BLOB. Per sovrascrivere un backup, utilizzare l'argomento WITH FORMAT . Tuttavia, quando si utilizzano backup di snapshot di file (usando l'argomento WITH FILE_SNAPSHOT), l'argomento WITH FORMAT non è consentito, per evitare di lasciare snapshot di file orfani che sono stati creati con il backup originale. |
|
NOSKIP | SKIP |
No | ||
NOFORMAT | FORMAT |
Yes | Un backup eseguito su un BLOB esistente ha esito negativo a meno che WITH FORMAT venga specificato. Il BLOB esistente viene sovrascritto quando WITH FORMAT viene specificato. Tuttavia, quando si utilizzano backup di snapshot di file (usando l'argomento WITH FILE_SNAPSHOT), l'argomento FORMAT non è consentito per evitare di lasciare snapshot di file orfani creati con il backup originale dello snapshot di file. Tuttavia, quando si utilizzano backup di snapshot di file (usando l'argomento WITH FILE_SNAPSHOT), l'argomento WITH FORMAT non è consentito, per evitare di lasciare snapshot di file orfani che sono stati creati con il backup originale. |
|
MEDIADESCRIPTION |
Yes | ||
MEDIANAME |
Yes | ||
BLOCKSIZE |
Yes | Non supportati per i BLOB di pagine. Supportati per i BLOB in blocchi. | È consigliabile BLOCKSIZE=65536 ottimizzare l'uso dei 50.000 blocchi consentiti in un BLOB in blocchi. |
BUFFERCOUNT |
Yes | ||
MAXTRANSFERSIZE |
Yes | Non supportato per i blob di pagine. Supporto per Block Blob. | Il valore predefinito è 1048576. Il valore può variare fino a 4 MB in incrementi di 65.536 byte. È consigliabile MAXTRANSFERSIZE=4194304 ottimizzare l'uso di un BLOB a blocchi con i 50.000 blocchi consentiti. |
NO_CHECKSUM | CHECKSUM |
Yes | ||
STOP_ON_ERROR | CONTINUE_AFTER_ERROR |
Yes | ||
STATS |
Yes | ||
REWIND | NOREWIND |
No | ||
UNLOAD | NOUNLOAD |
No | ||
NORECOVERY | STANDBY |
Yes | ||
NO_TRUNCATE |
Yes |
Per altre informazioni sugli argomenti di backup, vedere BACKUP.
Supporto per gli argomenti di ripristino in Archiviazione BLOB di Azure
| Argument | Supported | Exceptions | Comments |
|---|---|---|---|
DATABASE |
Yes | ||
LOG |
Yes | ||
FROM (URL) |
Yes | L'argomento FROM URL viene usato per specificare il percorso URL per il file di backup. |
|
WITH Opzioni: |
|||
CREDENTIAL |
Yes |
WITH CREDENTIAL è supportato solo quando si usa l'opzione RESTORE FROM URL per eseguire il ripristino da Archiviazione BLOB di Azure. |
|
PARTIAL |
Yes | ||
RECOVERY | NORECOVERY | STANDBY |
Yes | ||
LOADHISTORY |
Yes | ||
MOVE |
Yes | ||
REPLACE |
Yes | ||
RESTART |
Yes | ||
RESTRICTED_USER |
Yes | ||
FILE |
No | ||
PASSWORD |
Yes | ||
MEDIANAME |
Yes | ||
MEDIAPASSWORD |
Yes | ||
BLOCKSIZE |
Yes | ||
BUFFERCOUNT |
No | ||
MAXTRANSFERSIZE |
No | ||
CHECKSUM | NO_CHECKSUM |
Yes | ||
STOP_ON_ERROR | CONTINUE_AFTER_ERROR |
Yes | ||
FILESTREAM |
Yes | Non supportato per il backup con snapshot | |
STATS |
Yes | ||
REWIND | NOREWIND |
No | ||
UNLOAD | NOUNLOAD |
No | ||
KEEP_REPLICATION |
Yes | ||
KEEP_CDC |
Yes | ||
ENABLE_BROKER | ERROR_BROKER_CONVERSATIONS | NEW_BROKER |
Yes | ||
STOPAT | STOPATMARK | STOPBEFOREMARK |
Yes |
Per altre informazioni sugli argomenti di ripristino, vedere Istruzioni RESTORE - Argomenti.
Eseguire il backup con SSMS
È possibile eseguire il backup di un database nell'URL tramite l'attività Backup in SQL Server Management Studio usando una credenziale SQL Server.
Note
Per creare un backup di snapshot di file SQL Server o sovrascrivere un set di supporti esistente, è necessario usare Transact-SQL, PowerShell o C# anziché l'attività Backup in SQL Server Management Studio.
I passaggi seguenti descrivono le modifiche apportate all'attività Backup database in SQL Server Management Studio per consentire il backup nell'archiviazione Azure:
In Esplora oggetti, connettersi a un'istanza dell'Motore di database di SQL Server e quindi espandere tale istanza.
Espandere Database, fare clic con il pulsante destro del mouse sul database desiderato, scegliere Attività e quindi selezionare Backup.
Nella pagina Generale, nella sezione Destinazione, l'opzione URL è disponibile nel menu a tendina Backup a:. L'opzione URL viene usata per creare un backup nell'archiviazione Azure. Selezionare Aggiungi e viene visualizzata la finestra di dialogo Seleziona destinazione backup :
Azure contenitore di archiviazione: Nome del contenitore di archiviazione Azure per archiviare i file di backup. Selezionare un contenitore esistente dall'elenco a discesa o immettere manualmente il contenitore.
Criteri di accesso condiviso: Immettere la firma di accesso condiviso per un contenitore immesso manualmente. Questo campo non è disponibile se è stato scelto un contenitore esistente.
File di backup: Nome del file di backup.
Nuovo contenitore: Usato per registrare un contenitore esistente per cui non si dispone di una firma di accesso condiviso. Vedere Connect to a Microsoft Azure Subscription (Backup TO URL).
Note
Add supporta più file di backup e contenitori di archiviazione per un singolo set di supporti.
Quando si seleziona URL come destinazione, alcune opzioni nella pagina Opzioni multimediali sono disabilitate. Negli articoli seguenti vengono fornite ulteriori informazioni sulla finestra di dialogo Backup database:
- Backup database (pagina Generale)
- Esegui backup del database (pagina Opzioni multimediali)
- Backup database (pagina Opzioni di backup)
- Crea credenziali - Eseguire l'autenticazione per Archiviazione di Azure
Effettuare il backup con un piano di manutenzione
Analogamente all'attività di backup descritta in precedenza, la Creazione guidata piano di manutenzione in SQL Server Management Studio include URL come opzione di destinazione e altri oggetti di supporto necessari per eseguire il backup nell'archiviazione di Azure, come le credenziali SQL. Per ulteriori informazioni, consultare la sezione Definire le attività di backup in Utilizzo di Maintenance Plan Wizard.
Note
Per creare un set di backup suddiviso in bande, un backup di snapshot di file di SQL Server o una credenziale SQL utilizzando un token di accesso condiviso, è necessario utilizzare Transact-SQL, PowerShell o C# anziché l'attività di backup nella Creazione guidata del piano di manutenzione.
Eseguire il ripristino con SSMS
L'attività di Ripristino del database include l'URL come dispositivo per eseguire il ripristino. I passaggi seguenti descrivono l'uso dell'attività Ripristina per eseguire il ripristino da Archiviazione BLOB di Azure:
Fare clic con il pulsante destro del mouse su Database e scegliere Ripristina database....
Nella pagina Generale selezionare Dispositivo nella sezione Origine .
Selezionare il pulsante Sfoglia (...) per aprire la finestra di dialogo Seleziona dispositivi di backup.
Selezionare URL nell'elenco a discesa Tipo di supporto di backup: . Selezionare Aggiungi per aprire la finestra di dialogo Seleziona percorso file di backup .
Azure contenitore di archiviazione: Nome completo del contenitore di archiviazione Azure che contiene i file di backup. Selezionare un contenitore esistente dall'elenco a discesa o immettere manualmente il nome completo del contenitore.
Firma di accesso condiviso: Usato per immettere la firma di accesso condiviso per il contenitore designato.
Aggiungere: Usato per registrare un contenitore esistente per cui non si dispone di una firma di accesso condiviso. Vedere Connect to a Microsoft Azure Subscription (Backup TO URL).
OK: SQL Server si connette all'archiviazione Azure usando le informazioni sulle credenziali SQL fornite e apre il file di backup Locate Backup nella finestra di dialogo Microsoft Azure. In questa pagina vengono visualizzati i file di backup che si trovano nel contenitore di archiviazione. Selezionare il file da usare per ripristinare e selezionare OK. Verrà visualizzata nuovamente la finestra di dialogo Seleziona dispositivi di backup e selezionando OK in questa finestra di dialogo viene visualizzata nuovamente la finestra di dialogo Ripristina principale, in cui è possibile completare il ripristino.
Esempi di codice
In questa sezione sono disponibili gli esempi riportati di seguito.
- Creare una firma di accesso condiviso
- Creare una credenziale
- Eseguire un backup completo del database
- Ripristinare a un punto nel tempo usando STOPAT
Note
Per un'esercitazione sull'uso di SQL Server 2016 con Archiviazione BLOB di Azure, vedere Tutorial: Usare Archiviazione BLOB di Azure con SQL Server
Creare una firma di accesso condiviso
Nell'esempio seguente vengono create firme di accesso condiviso che possono essere usate per creare una SQL Server credenziali in un contenitore appena creato. Questo script crea una firma di accesso condiviso associata a un criterio di accesso archiviato. Per altre informazioni, vedere Firme di accesso condiviso, parte 1: Comprensione del modello SAS. Lo script scrive anche il comando T-SQL necessario per creare le credenziali in SQL Server.
Note
L'esempio richiede Azure PowerShell. Per informazioni sull'installazione e l'uso di Azure PowerShell, vedere Come installare e configurare Azure PowerShell. Questi script sono stati verificati usando Azure PowerShell 5.1.15063.
Firma di accesso condiviso associata a un criterio di accesso archiviato
# Define global variables for the script
$prefixName = '<a prefix name>' # used as the prefix for the name for various objects
$subscriptionName = '<your subscription name>' # the name of subscription name you will use
$locationName = '<a data center location>' # the data center region you will use
$storageAccountName = $prefixName + 'storage' # the storage account name you will create or use
$containerName = $prefixName + 'container' # the storage container name to which you will attach the SAS policy with its SAS token
$policyName = $prefixName + 'policy' # the name of the SAS policy
# Set a variable for the name of the resource group you will create or use
$resourceGroupName = $prefixName + 'rg'
# adds an authenticated Azure account for use in the session
Connect-AzAccount
# set the tenant, subscription and environment for use in the rest of
Set-AzContext -SubscriptionName $subscriptionName
# create a new resource group - comment out this line to use an existing resource group
New-AzResourceGroup -Name $resourceGroupName -Location $locationName
# Create a new ARM storage account - comment out this line to use an existing ARM storage account
New-AzStorageAccount -Name $storageAccountName -ResourceGroupName $resourceGroupName -Type Standard_RAGRS -Location $locationName
# Get the access keys for the ARM storage account
$accountKeys = Get-AzStorageAccountKey -ResourceGroupName $resourceGroupName -Name $storageAccountName
# Create a new storage account context using an ARM storage account
$storageContext = New-AzStorageContext -StorageAccountName $storageAccountName -StorageAccountKey $accountKeys[0].value
# Creates a new container in Azure Blob Storage
$container = New-AzStorageContainer -Context $storageContext -Name $containerName
$cbc = $container.CloudBlobContainer
# Sets up a Stored Access Policy and a Shared Access Signature for the new container
$policy = New-AzStorageContainerStoredAccessPolicy -Container $containerName -Policy $policyName -Context $storageContext -ExpiryTime $(Get-Date).ToUniversalTime().AddYears(10) -Permission "rwld"
$sas = New-AzStorageContainerSASToken -Policy $policyName -Context $storageContext -Container $containerName
Write-Host 'Shared Access Signature= '$($sas.TrimStart('?'))''
# Outputs the Transact SQL to the clipboard and to the screen to create the credential using the Shared Access Signature
Write-Host 'Credential T-SQL'
$tSql = "CREATE CREDENTIAL [{0}] WITH IDENTITY='Shared Access Signature', SECRET='{1}'" -f $cbc.Uri, $sas.TrimStart('?')
$tSql | clip
Write-Host $tSql
Dopo aver eseguito correttamente lo script, copiare il comando CREATE CREDENTIAL in uno strumento di query, connettersi a un'istanza di SQL Server ed eseguire il comando per creare le credenziali con la firma di accesso condiviso.
Crea una credenziale
Negli esempi seguenti vengono create credenziali di SQL Server per l'autenticazione su Archiviazione BLOB di Azure. Effettuare una delle operazioni seguenti.
Uso della firma di accesso condiviso
Se è stato eseguito lo script precedente per creare la firma di accesso condiviso, copiare il
CREATE CREDENTIALin un editor di query connesso all'istanza di SQL Server ed eseguire il comando .Il codice T-SQL seguente è un esempio che crea le credenziali per l'uso di una firma di accesso condiviso.
IF NOT EXISTS (SELECT * FROM sys.credentials WHERE name = 'https://<mystorageaccountname>.blob.core.windows.net/<mystorageaccountcontainername>') CREATE CREDENTIAL [https://<mystorageaccountname>.blob.core.windows.net/<mystorageaccountcontainername>] WITH IDENTITY = 'SHARED ACCESS SIGNATURE', SECRET = '<SAS_TOKEN>';Utilizzo dell'identità dell'account di archiviazione e della chiave di accesso
IF NOT EXISTS (SELECT * FROM sys.credentials WHERE name = '<mycredentialname>') CREATE CREDENTIAL [<mycredentialname>] WITH IDENTITY = '<mystorageaccountname>', SECRET = '<mystorageaccountaccesskey>';
Eseguire un backup completo del database
Negli esempi seguenti viene eseguito un backup completo del database AdventureWorks2025 in Archiviazione BLOB di Azure. Usare uno degli esempi seguenti:
All'URL utilizzando una firma di accesso condiviso
BACKUP DATABASE AdventureWorks2022 TO URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2022.bak'; GOAll'URL utilizzando l'identità dell'account di archiviazione e la chiave di accesso
BACKUP DATABASE AdventureWorks2022 TO URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2022.bak' WITH CREDENTIAL = '<mycredentialname>', COMPRESSION, STATS = 5; GO
Ripristino a un punto nel tempo utilizzando STOPAT
Nell'esempio seguente viene ripristinato lo stato di un database di esempio AdventureWorks2025 in un momento preciso e viene illustrata l'operazione di ripristino.
Dall'URL tramite una firma di accesso condiviso
RESTORE DATABASE AdventureWorks2022
FROM URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2022_2015_05_18_16_00_00.bak'
WITH MOVE 'AdventureWorks2022_data' TO 'C:\Program Files\Microsoft SQL Server\<myinstancename>\MSSQL\DATA\AdventureWorks2022.mdf',
MOVE 'AdventureWorks2022_log' TO 'C:\Program Files\Microsoft SQL Server\<myinstancename>\MSSQL\DATA\AdventureWorks2022.ldf',
NORECOVERY, REPLACE, STATS = 5;
GO
RESTORE LOG AdventureWorks2022
FROM URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2022_2015_05_18_18_00_00.trn'
WITH RECOVERY, STOPAT = 'May 18, 2015 5:35 PM';
GO