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.
Si applica 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 Microsoft Azure come destinazione di backup. La funzionalità di backup e ripristino è uguale o simile a quella delle opzioni DISK e TAPE, con alcune differenze. Nell'articolo sono descritte le differenze e sono inclusi alcuni esempi di codice.
Suggerimento
SQL Server 2025 (17.x) Preview introduce il backup su URL con identità gestita. Vedere Eseguire il backup nell'URL con identità gestita (anteprima) - SQL Server abilitato da Azure Arc.
Panoramica
SQL Server 2012 Service Pack 1 CU2 e SQL Server 2014 hanno 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 di Azure. SQL Server 2016 (13.x) ha introdotto File-Snapshot Backup per i file di database in Azure e la sicurezza tramite chiavi di firma di accesso condiviso (SAS), un modo sicuro e semplice per autenticare i certificati ai criteri di sicurezza di 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 Microsoft Azure.
Il primo passo in questo processo consiste nella creazione di un account di Archiviazione di Azure nella sottoscrizione di Azure. 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 autenticare, scrivere e leggere i BLOB in Archiviazione BLOB di Microsoft Azure, oppure può usare un token di firma di accesso condiviso generato per contenitori specifici che conceda diritti di lettura e scrittura. Per altre informazioni sugli account di archiviazione di Azure, vedere Informazioni sugli account di archiviazione di Azure . Per altre informazioni sulle firme di accesso condiviso, vedere Firme di accesso condiviso, parte 1: conoscere il modello di firma di accesso condiviso. Queste informazioni di autenticazione usate durante le operazioni di backup o ripristino vengono archiviate nelle credenziali di SQL Server.
Archiviazione di Azure e archiviazione compatibile con S3
SQL Server 2022 (16.x) introduce la possibilità di scrivere backup in un archivio oggetti compatibile con S3, con funzionalità di backup e ripristino concettualmente simili all'uso del backup nell’URL usando Archiviazione BLOB di Azure come tipo di dispositivo di backup. SQL Server 2022 (16.x) estende la sintassi di BACKUP/RESTORE TO/FROM URL aggiungendo il supporto per un nuovo connettore S3 tramite 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 Backup di SQL Server nell'URL per l'archiviazione di oggetti compatibile con S3.
Eseguire il backup su BLOB in blocchi o BLOB di pagine di Archiviazione di Azure
Esistono due tipi di BLOB che è possibile archiviare in Archiviazione BLOB di Microsoft Azure: BLOB in blocchi e di pagine. Per SQL Server 2016 e versioni successive, è preferibile il 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 su BLOB in blocchi è disponibile solo in SQL Server 2016 o versioni successive, per il backup in Archiviazione BLOB di Azure. Esegui il backup su un BLOB di blocchi anziché su un BLOB di pagine se utilizzi SQL Server 2016 o una 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.
- BLOB in blocchi è più economico di BLOB di pagine.
- I clienti che devono eseguire il backup nei BLOB di pagine tramite un server proxy devono usare
backuptourl.exe
.
L’esecuzione del backup di un database di grandi dimensioni nell'archiviazione BLOB di Azure è soggetta alle limitazioni elencate in Differenze, limitazioni e problemi noti di T-SQL in Istanza gestita di SQL Azure.
Se le dimensioni del database sono troppo grandi, è possibile:
- Usare la compressione del backup oppure
- Eseguire il backup su più BLOB in blocchi
Supporto in Linux, in contenitori e in Istanza gestita di SQL abilitata per Azure Arc
Se l'istanza di SQL Server è ospitata in Linux, tra cui:
- Sistema operativo autonomo
- Contenitori
- Istanza gestita di SQL con abilitazione di Azure Arc
- Qualsiasi altro ambiente basato su Linux
L'unico backup su URL per Archiviazione BLOB di Azure supportato è in BLOB in blocchi, usando la firma di accesso condiviso.
Archivio BLOB di Microsoft Azure
Account di archiviazione: questo account è il punto di partenza per tutti i servizi di archiviazione. Per accedere ad Archiviazione BLOB di Microsoft Azure, creare prima un account di archiviazione di Azure. Per altre informazioni, vedere la pagina relativa alla creazione degli account di archiviazione.
Contenitore: un contenitore raggruppa un set di BLOB e può archiviare un numero illimitato di BLOB. Per scrivere un backup di SQL Server in Archiviazione BLOB di Azure, deve prima essere stato creato 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 oggetti BLOB che è possibile archiviare in Archiviazione BLOB di Azure: BLOB in blocchi e BLOB di pagine. Il backup di SQL Server 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 su Archiviazione BLOB di Azure, vedere Introduzione a Archiviazione BLOB di Azure. Per altre informazioni sui BLOB di pagine e in blocco, vedere Informazioni sui Blob in blocchi, sui BLOB di aggiunta e sui BLOB di pagine.
Snapshot di Azure: uno snapshot di un BLOB di Azure acquisito in un momento preciso. Per altre informazioni, vedere Creazione di uno snapshot di un BLOB. SQL Server ora supporta i backup di Azure degli snapshot dei file di database archiviati in Archiviazione BLOB di Azure. Per altre informazioni, vedere Backup di snapshot di file per i file di database in Azure.
Componenti di SQL Server
URL: tramite un URL viene specificato un URI (Uniform Resource Identifier) in un file di backup univoco. L'URL viene usato per fornire il percorso e il nome del file di backup di 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, l'operazione di backup non viene completata a meno che non sia stata 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
.
Nota
Il backup su URL tramite HTTP NON è supportato.
Credenziale: una credenziale di SQL Server è un oggetto utilizzato per archiviare le informazioni di autenticazione necessarie per connettersi a una risorsa all'esterno di SQL Server. In questo caso, nei processi di backup e ripristino di SQL Server vengono usate le credenziali per l'autenticazione a Archiviazione BLOB di Azure, nonché ai contenitori e agli oggetti dei BLOB relativi. Nelle credenziali sono archiviati 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. Una volta create le credenziali, la sintassi delle istruzioni BACKUP/RESTORE determina il tipo di BLOB e le credenziali necessarie.
Per un esempio di come creare una firma di accesso condiviso, vedere gli esempi in Creare una firma di accesso condiviso più avanti in questo articolo e per creare le credenziali di SQL Server, vedere gli esempi in Creare credenziali più avanti in questo articolo.
Per altre informazioni sulle credenziali, vedere Credenziali (motore di database).
Per informazioni su altri esempi in cui vengono usate le credenziali, vedere Creazione di un proxy di SQL Server Agent.
Supporto dell'archiviazione non modificabile di Azure
SQL Server 2025 (17.x) Preview introduce il supporto per l'archiviazione non modificabile di Azure, 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, i backup di SQL Server 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.
Durante l'anteprima, il flag di traccia 3012 è necessario per abilitare il supporto dell'archiviazione non modificabile per i backup su URL.
Per usare l'archiviazione non modificabile con il backup dell'anteprima di SQL Server 2025 (17.x) nell'URL, seguire questa procedura:
- Configurare l'immutabilità per il contenitore di archiviazione di Azure.
- Abilitare il flag di traccia 3012 per l'istanza di SQL Server eseguendo il comando DBCC seguente:
DBCC TRACEON(3012,-1)
. - Eseguire il backup del database nel contenitore di archiviazione di Azure:
BACKP DATABASE [<Database>] TO URL = ‘<url>’ WITH FORMAT
.
Sicurezza per Archiviazione BLOB di Azure
Di seguito sono riportati requisiti e considerazioni sulla sicurezza per l'esecuzione del backup o del ripristino in Archiviazione BLOB di Azure.
Quando si crea un contenitore per Archiviazione BLOB di Azure, è consigliabile impostare l'accesso su privato. In questo modo si limita l'accesso a utenti o account in grado di specificare le informazioni necessarie per l'autenticazione all'account di Azure.
Importante
Per SQL Server è necessario un nome account e l'autenticazione della chiave di accesso di Azure, oppure una firma di accesso condiviso e un token di accesso archiviati nelle credenziali di SQL Server. Queste informazioni servono per eseguire l'autenticazione all'account di Azure per operazioni di backup o ripristino.
Avviso
Archiviazione di Azure supporta la disabilitazione dell'autorizzazione con chiave condivisa per un account di archiviazione. Se l'autorizzazione con chiave condivisa è disabilitata, il backup di SQL Server in URL non funzionerà.
All'account utente usato per eseguire i comandi BACKUP o RESTORE deve essere associato il ruolo del database db_backup operator con autorizzazioni Modifica qualsiasi credenziale .
Limitazioni di backup e ripristino in Archiviazione BLOB di Azure
SQL Server limita le dimensioni massime di backup supportate usando un BLOB di pagine di 1 TB. La dimensione massima del backup supportata con BLOB in blocchi è limitata a circa 200 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
.Importante
Anche se le dimensioni massime di backup supportate da un singolo BLOB in blocchi sono di 200 GB, è possibile che SQL Server scriva in dimensioni di blocchi più piccole e ciò può causare il raggiungimento del limite di 50.000 blocchi in SQL Server prima del trasferimento dell'intero backup. Eseguire lo striping dei backup (anche se sono più piccoli di 200 GB) per evitare il limite dei blocchi, soprattutto se si usano backup differenziali o non compressi.
È possibile eseguire istruzioni di backup o ripristino usando Transact-SQL, SMO, cmdlet di PowerShell o backup o ripristino guidato di SQL Server Management Studio.
L’account di backup in Archiviazione di Azure 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 (in precedenza 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_dumpdevice
o tramite SQL Server Management Studio non è quindi 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 FORMAT
non è consentito per evitare di lasciare snapshot di file orfani creati con il backup originale dello snapshot di file.Il backup in più BLOB in un'unica operazione è supportato solo tramite i BLOB in blocchi e un token di firma di accesso condiviso, anziché con la chiave dell'account di archiviazione per le credenziali SQL.
La specifica
BLOCKSIZE
non è supportata per i BLOB di pagine.La specifica di
MAXTRANSFERSIZE
non è supportata per i BLOB di pagina.Specificare le opzioni del set di backup -
RETAINDAYS
eEXPIREDATE
non sono supportate.In SQL Server è previsto un limite massimo di 259 caratteri per il nome di un dispositivo di backup. L'operazione BACKUP TO URL utilizza 36 caratteri per gli elementi necessari usati per specificare l'URL
https://.blob.core.windows.net//.bak
, lasciando 223 caratteri per i nomi di account, contenitore e BLOB messi insieme.SQL Server 2019 (15.x) e 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 di chiave di delega utente non sono supportati).
Se il server accede ad Azure tramite un server proxy, è necessario usare il flag di traccia 1819 e quindi impostare la configurazione del proxy WinHTTP con uno dei metodi seguenti:
- L'utility proxycfg.exe in Windows XP o Windows Server 2003 e versioni precedenti.
- L'utility netsh.exe in Windows Vista e Windows Server 2008 o versioni successive.
L'archiviazione non modificabile per Archiviazione BLOB di Azure non è supportata. Impostare i criteri di archiviazione non modificabile su false.
Argomenti e dichiarazioni supportati in Archiviazione Blob di Azure
Supporto per istruzioni di backup/ripristino in Archiviazione BLOB di Azure
Istruzione di backup/ripristino | Supportata | Eccezioni | Commenti |
---|---|---|---|
Backup | Sì | BLOCKSIZE e MAXTRANSFERSIZE sono supportati per i BLOB in blocchi. Non sono supportati per i BLOB di pagine. | Per usare BACKUP per un BLOB in blocchi è necessaria una firma di accesso condiviso salvata in una credenziale di SQL Server. Per usare BACKUP per un BLOB di pagine è necessaria la chiave dell'account di archiviazione salvata in una credenziale di SQL Server e occorre che sia specificato l'argomento WITH CREDENTIAL. |
RESTAURARE | Sì | Richiede che siano state definite credenziali SQL Server nelle quali venga specificato l'argomento WITH CREDENTIAL se le credenziali SQL Server sono state definite tramite la chiave dell'account di archiviazione come segreto | |
RESTORE FILELISTONLY | Sì | Richiede che siano state definite credenziali SQL Server nelle quali venga specificato l'argomento WITH CREDENTIAL se le credenziali SQL Server sono state definite tramite la chiave dell'account di archiviazione come segreto | |
RESTORE HEADERONLY (Ripristina solo intestazioni) | Sì | Richiede che siano state definite credenziali SQL Server nelle quali venga specificato l'argomento WITH CREDENTIAL se le credenziali SQL Server sono state definite tramite la chiave dell'account di archiviazione come segreto | |
Esegui RESTORE LABELONLY | Sì | Richiede che siano state definite credenziali SQL Server nelle quali venga specificato l'argomento WITH CREDENTIAL se le credenziali SQL Server sono state definite tramite la chiave dell'account di archiviazione come segreto | |
RESTORE VERIFYONLY (Ripristina e verifica solo) | Sì | Richiede che siano state definite credenziali SQL Server nelle quali venga specificato l'argomento WITH CREDENTIAL se le credenziali SQL Server sono state definite tramite la chiave dell'account di archiviazione come segreto | |
RESTORE REWINDONLY | - |
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 gli argomenti di backup in Archiviazione BLOB di Azure
Argomento | Supportata | Eccezione | Commenti |
---|---|---|---|
BANCA DATI | Sì | ||
REGISTRO | Sì | ||
TO (URL) | Sì | 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. |
SPECCHIO A | Sì | ||
WITH Opzioni: |
|||
CREDENZIALE | Sì | WITH CREDENTIAL è supportato solo quando si usa l'opzione BACKUP TO URL per il backup in Archiviazione BLOB di Azure e solo se le credenziali SQL Server sono state definite tramite la chiave dell'account di archiviazione come segreto | |
Istantanea di file | Sì | ||
CRIPTAZIONE | Sì | Quando si specifica 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. |
|
DIFFERENZIALE | Sì | ||
SOLO_COPIA | Sì | ||
COMPRESSIONE|NESSUNA_COMPRESSIONE | Sì | Non supportato per il backup con snapshot di file | |
DESCRIZIONE | Sì | ||
NOME | Sì | ||
DATA DI SCADENZA | GIORNI DI CONSERVAZIONE | - | ||
NOINIT | INIT | - | 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 | SALTARE | - | ||
NOFORMAT | FORMATO | Sì | 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 (con 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. |
|
Descrizione del media | Sì | ||
MEDIANAME | Sì | ||
dimensione del blocco | Sì | Non supportati per i BLOB di pagine. Supportati per i BLOB in blocchi. | Si consiglia BLOCKSIZE=65536 per ottimizzare l'uso dei 50.000 blocchi consentiti in un BLOB in blocchi. |
BUFFERCOUNT | Sì | ||
MAXTRANSFERSIZE | Sì | Non supportati per i BLOB di pagine. Supportati per i BLOB in blocchi. | Il valore predefinito è 1048576. Il valore può arrivare fino a 4 MB con incrementi di 65536 byte. Si consiglia MAXTRANSFERSIZE=4194304 per ottimizzare l'uso dei 50.000 blocchi consentiti in un BLOB in blocchi. |
NO_CHECKSUM | CHECKSUM | Sì | ||
FERMA_SU_ERRORE | CONTINUA_DOPO_ERRORE | Sì | ||
STATS (Statistiche) | Sì | ||
REWIND | NOREWIND | - | ||
UNLOAD | NOUNLOAD | - | ||
NORECOVERY | STANDBY | Sì | ||
NO_TRUNCATE | Sì |
Per altre informazioni sugli argomenti di backup, vedere BACKUP.
Supporto per gli argomenti di ripristino in Archiviazione BLOB di Azure
Argomento | Supportata | Eccezioni | Commenti |
---|---|---|---|
BANCA DATI | Sì | ||
REGISTRO | Sì | ||
FROM (URL) | Sì | L'argomento FROM URL viene utilizzato per specificare il percorso URL del file di backup. | |
CON Opzioni: | |||
CREDENZIALE | Sì | WITH CREDENTIAL è supportato solo quando si usa l'opzione RESTORE FROM URL per eseguire il ripristino da Archiviazione BLOB di Microsoft Azure. | |
PARZIALE | Sì | ||
RECUPERO | NESSUN RECUPERO | ATTESA | Sì | ||
LOADHISTORY | Sì | ||
SPOSTA | Sì | ||
SOSTITUIRE | Sì | ||
RIAVVIARE | Sì | ||
UTENTE_RISTRETTO | Sì | ||
file | - | ||
Password | Sì | ||
MEDIANAME | Sì | ||
MEDIAPASSWORD | Sì | ||
dimensione del blocco | Sì | ||
BUFFERCOUNT | - | ||
MAXTRANSFERSIZE | - | ||
SOMMA DI CONTROLLO | NESSUNA SOMMA DI CONTROLLO | Sì | ||
FERMA_SU_ERRORE | CONTINUA_DOPO_ERRORE | Sì | ||
FILESTREAM | Sì | Non supportato per il backup con snapshot di file | |
STATS (Statistiche) | Sì | ||
REWIND | NOREWIND | - | ||
UNLOAD | NOUNLOAD | - | ||
MANTIENI_RIPETIZIONE | Sì | ||
KEEP_CDC | Sì | ||
ENABLE_BROKER | ERROR_BROKER_CONVERSATIONS | NEW_BROKER | Sì | ||
STOPAT | STOPATMARK | STOPBEFOREMARK | Sì |
Per altre informazioni sugli argomenti di ripristino, vedere Istruzioni RESTORE - Argomenti.
Eseguire il backup con SSMS
È possibile eseguire il backup di un database in un URL tramite l'attività di backup in SQL Server Management Studio e credenziali SQL Server.
Nota
Per creare un backup di snapshot di file di 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.
Nei passaggi seguenti vengono descritte le modifiche apportate all'attività di backup di database in SQL Server Management Studio per consentire il backup nel servizio di archiviazione di Azure:
In Esplora oggetticonnettersi a un'istanza del motore di database di SQL Server e, successivamente, espanderla.
Espandere Database, fare clic con il pulsante destro del mouse sul database desiderato, scegliere Attività, quindi selezionare Copia database.
Nella pagina Generale, nella sezione Destinazione, l'opzione URL è disponibile nel menu a tendina Backup a:. L'opzione URL è usata per creare un backup nel servizio di archiviazione Microsoft Azure. Selezionare Aggiungi e viene visualizzata la finestra di dialogo Seleziona destinazione backup :
Contenitore di Archiviazione di Azure: nome del contenitore del servizio di archiviazione Microsoft Azure in cui 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 Connettersi a una sottoscrizione di Microsoft Azure (Backup TO URL).
Nota
Aggiungi supporta più file di backup e i contenitori di archiviazione per un singolo set di supporti.
Quando si seleziona un URL come destinazione, alcune opzioni nella pagina Opzioni supporti vengono 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)
- Creare le credenziali - Eseguire l'autenticazione nel servizio di archiviazione Azure
Eseguire 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 l'URL come una delle opzioni di destinazione e altri oggetti di supporto necessari per eseguire il backup nel servizio di archiviazione di Azure, ad esempio le credenziali SQL. Per altre informazioni, vedere la sezione sulla definizione delle attività di backup in Using Maintenance Plan Wizard.
Nota
Per creare un set di backup con striping, un backup di snapshot di file di SQL Server o una credenziale SQL usando un token di accesso condiviso, è necessario usare Transact-SQL, PowerShell o C# anziché l'attività Backup nella Creazione guidata del piano di manutenzione.
Eseguire il ripristino con SSMS
L'attività Ripristina database include URL come dispositivo da cui eseguire il ripristino. I passaggi seguenti descrivono come usare l'attività di ripristino 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: . Fare clic su Aggiungi per aprire la finestra di dialogo Selezionare un percorso del file di backup.
Contenitore di Archiviazione di Azure: nome completo del contenitore del servizio di archiviazione Microsoft 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 Connettersi a una sottoscrizione di Microsoft Azure (Backup TO URL).
OK: SQL Server si connette al servizio di archiviazione Microsoft Azure tramite le credenziali SQL specificate e apre la finestra di dialogo Trova file di backup in Microsoft Azure. In questa pagina vengono visualizzati i file di backup che si trovano nel contenitore di archiviazione. Selezionare il file che si desidera ripristinare, quindi 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
Nota
Per un'esercitazione sull'uso di SQL Server 2016 con Archiviazione BLOB di Azure, vedere Esercitazione: 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 credenziali di SQL Server in un nuovo contenitore. 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: conoscere il modello di firma di accesso condiviso. Lo script scrive inoltre il comando T-SQL necessario per creare le credenziali in SQL Server.
Nota
L'esempio richiede Microsoft Azure PowerShell. Per informazioni sull'installazione e l'uso di Azure PowerShell, vedere Come installare e configurare Azure PowerShell.
Questi script sono stati verificati con 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 completato l'esecuzione dello 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 le credenziali
Nei seguenti esempi vengono create le credenziali di SQL Server per l'autenticazione a Archiviazione BLOB di Azure. Effettuare una delle operazioni seguenti.
Uso della firma di accesso condiviso
Se si è eseguito lo script precedente per creare la firma di accesso condiviso, copiare il comando
CREATE CREDENTIAL
in 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>';
Uso della chiave di identità e di accesso dell'account di archiviazione
IF NOT EXISTS (SELECT * FROM sys.credentials WHERE name = '<mycredentialname>') CREATE CREDENTIAL [<mycredentialname>] WITH IDENTITY = '<mystorageaccountname>', SECRET = '<mystorageaccountaccesskey>';
Eseguire un backup completo del database
L'esempio seguente esegue un backup completo del database di AdventureWorks2022
in Archiviazione BLOB di Azure. Usare uno degli esempi seguenti:
Nell'URL tramite una firma di accesso condiviso
BACKUP DATABASE AdventureWorks2022 TO URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2022.bak'; GO
Nell'URL tramite la chiave di identità e di accesso dell'account di archiviazione
BACKUP DATABASE AdventureWorks2022 TO URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2022.bak' WITH CREDENTIAL = '<mycredentialname>', COMPRESSION, STATS = 5; GO
Ripristino temporizzato tramite STOPAT
Nell'esempio seguente viene ripristinato lo stato di un database di esempio AdventureWorks2022
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