Backup di SQL Server nell'URLSQL Server Backup to URL

QUESTO ARGOMENTO SI APPLICA A:sìSQL Server (a partire dalla versione 2016)noDatabase SQL di AzurenoAzure SQL Data WarehousenoParallel Data WarehouseTHIS TOPIC APPLIES TO: yesSQL Server (starting with 2016)noAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Questo argomento illustra i concetti, i requisiti e i componenti necessari per usare il servizio di archiviazione BLOB di Microsoft Azure come destinazione backup.This topic introduces the concepts, requirements and components necessary to use the Microsoft Azure Blob storage service as a backup destination. La funzionalità di backup e ripristino è uguale o simile a quella delle opzioni DISK e TAPE, con alcune differenze.The backup and restore functionality are same or similar to when using DISK or TAPE, with a few differences. Nell'argomento sono descritte le differenze e sono inclusi alcuni esempi di codice.These differences and a few code examples are included in this topic.

Requisiti, componenti e concettiRequirements, Components, and Concepts

Contenuto della sezione:In this section:

Sicurezza Security

Di seguito sono riportati requisiti e considerazioni sulla sicurezza per l'esecuzione del backup o del ripristino nel servizio di archiviazione BLOB di Microsoft Azure.The following are security considerations and requirements when backing up to or restoring from the Microsoft Azure Blob storage service.

  • Quando si crea un contenitore per il servizio di archiviazione BLOB di Microsoft Azure, è consigliabile impostare l'accesso su privato.When creating a container for the Microsoft Azure Blob storage service, we recommend that you set the access to private. In questo modo si limita l'accesso agli utenti o account in grado di fornire le informazioni necessarie per l'autenticazione per l'account di Windows Azure.Setting the access to private restricts the access to users or accounts able to provide the necessary information to authenticate to the Windows Azure account.

    Importante

    SQL ServerSQL Server è necessario un nome account e l'autenticazione della chiave di accesso di Microsoft Azure, oppure una firma di accesso condiviso e un token di accesso siano archiviati nelle credenziali di SQL ServerSQL Server . requires that either a Windows Azure account name and access key authentication or a Shared Access Signature and access token be stored in a SQL ServerSQL Server Credential. Queste informazioni servono per eseguire l'autenticazione all'account Microsoft Azure per operazioni di backup o ripristino.This information is used to authenticate to the Windows Azure account when performing backup or restore operations.

  • 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 .The user account that is used to issue BACKUP or RESTORE commands should be in the db_backup operator database role with Alter any credential permissions.

Introduzione ai componenti e ai concetti chiave Introduction to Key Components and Concepts

Nelle due sezioni seguenti vengono illustrati il servizio di archiviazione BLOB di Microsoft Azure e i componenti di SQL ServerSQL Server usati durante l'esecuzione di operazioni di backup o ripristino nel servizio di archiviazione BLOB di Microsoft Azure.The following two sections introduce the Microsoft Azure Blob storage service, and the SQL ServerSQL Server components used when backing up to or restoring from the Microsoft Azure Blob storage service. È importante comprendere i componenti e la loro interazione per eseguire operazioni di backup o ripristino nel servizio di archiviazione BLOB di Microsoft Azure.It is important to understand the components and the interaction between them to do a backup to or restore from the Microsoft Azure Blob storage service.

Il primo passo in questo processo consiste nella creazione di un account di archiviazione di Microsoft Azure nella sottoscrizione di Azure.Creating a Windows Azure Storage account within your Azure subscription is the first step in this process. Questo account di archiviazione è un account amministrativo con autorizzazioni amministrative complete per tutti i contenitori e gli oggetti creati con tale account.This storage account is an administrative account that has full administrative permissions on all containers and objects created with the storage account. SQL ServerSQL Server può usare il nome dell'account di archiviazione di Microsoft Azure e il relativo valore della chiave di accesso per eseguire l'autenticazione, scrivere e leggere i BLOB nel servizio di archiviazione BLOB di Microsoft Azure oppure usare un token di firma di accesso condiviso generato per contenitori specifici che conceda diritti di lettura e scrittura. can either use the Windows Azure storage account name and its access key value to authenticate and write and read blobs to the Microsoft Azure Blob storage service or use a Shared Access Signature token generated on specific containers granting it read and write rights. 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.For more information on Azure Storage Accounts, see About Azure Storage Accounts and for more information about Shared Access Signatures, see Shared Access Signatures, Part 1: Understanding the SAS Model. Le credenziali di SQL ServerSQL Server , tramite cui vengono archiviate queste informazioni di autenticazione, vengono utilizzate durante le operazioni di backup o ripristino.The SQL ServerSQL Server Credential stores this authentication information and is used during the backup or restore operations.

Servizio di archiviazione BLOB di Microsoft Azure Microsoft Azure Blob storage service

Account di archiviazione: questo account è il punto di partenza per tutti i servizi di archiviazione.Storage Account: The storage account is the starting point for all storage services. Per accedere al servizio di archiviazione BLOB di Microsoft Azure, creare prima un account di archiviazione di Microsoft Azure.To access the Microsoft Azure Blob storage service, first create a Windows Azure storage account. Per altre informazioni, vedere la pagina relativa alla creazione degli account di archiviazione.For more information, see Create a Storage Account

Contenitore: un contenitore raggruppa un set di BLOB e può archiviare un numero illimitato di BLOB.Container: A container provides a grouping of a set of blobs, and can store an unlimited number of blobs. Per scrivere un backup di SQL ServerSQL Server nel servizio di archiviazione BLOB di Microsoft Azure, è necessario aver creato almeno il contenitore radice.To write a SQL ServerSQL Server backup to the Microsoft Azure Blob storage service, you must have at least the root container created. È possibile generare un token di firma di accesso condiviso in un contenitore e concedere l'accesso agli oggetti in un solo contenitore specifico.You can generate a Shared Access Signature token on a container and grant access to objects on a specific container only.

BLOB: file di qualsiasi tipo e dimensioni.Blob: A file of any type and size. Esistono due tipi di BLOB che è possibile archiviare nel servizio di archiviazione BLOB di Microsoft Azure: BLOB in blocchi e di pagine.There are two types of blobs that can be stored in the Microsoft Azure Blob storage service: block and page blobs. SQL ServerSQL Server il backup può usare l'uno o l'altro dei tipi di BLOB, a seconda della sintassi Transact-SQL usata. backup can use either blob type depending upon the Transact-SQL syntax used. I BLOB sono indirizzabili tramite questo formato di URL: https://<account di archiviazione>.blob.core.windows.net/<contenitore>/<blob>.Blobs are addressable using the following URL format: https://<storage account>.blob.core.windows.net/<container>/<blob>. Per altre informazioni sul servizio di archiviazione BLOB di Microsoft Azure, vedere Introduzione all'archivio BLOB di Azure con .NET.For more information about the Microsoft Azure Blob storage service, see How to use the Blob Storage from .NET. 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.For more information about page and block blobs, see Understanding Block and Page Blobs.

Archiviazione BLOB di AzureAzure Blob Storage

Snapshot di Azure: uno snapshot di un BLOB di Azure acquisito in un momento preciso.Azure Snapshot: A snapshot of an Azure blob taken at a point in time. Per altre informazioni, vedere Creazione di uno snapshot di un BLOB.For more information, see Creating a Snapshot of a Blob. SQL ServerSQL Server ore supporta i backup di Azure degli snapshot dei file di database archiviati nel servizio di archiviazione BLOB di Microsoft Azure. backup now supports Azure snapshot backups of database files stored in the Microsoft Azure Blob storage service. Per altre informazioni, vedere Backup di snapshot di file per i file di database in Azure.For more information, see File-Snapshot Backups for Database Files in Azure.

SQL ServerSQL Server Components SQL ServerSQL Server Components

URL: tramite un URL viene specificato un URI (Uniform Resource Identifier) in un file di backup univoco.URL: A URL specifies a Uniform Resource Identifier (URI) to a unique backup file. L'URL viene utilizzato per specificare il percorso e il nome del file di backup di SQL ServerSQL Server .The URL is used to provide the location and name of the SQL ServerSQL Server backup file. L'URL deve puntare a un BLOB effettivo, non solo a un contenitore.The URL must point to an actual blob, not just a container. Se il BLOB non è disponibile, viene creato.If the blob does not exist, it is created. 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.If an existing blob is specified, BACKUP fails, unless the “WITH FORMAT” option is specified to overwrite the existing backup file in the blob.

Questo è un valore URL di esempio: http[s]://NOMEACCOUNT.blob.core.windows.net/<CONTENITORE>/<NOMEFILE.bak>.Here is a sample URL value: http[s]://ACCOUNTNAME.blob.core.windows.net/<CONTAINER>/<FILENAME.bak>. Anche se non richiesto, è consigliabile utilizzare HTTPS.HTTPS is not required, but is recommended.

Credenziale: una credenziale di SQL ServerSQL Server è un oggetto utilizzato per archiviare le informazioni di autenticazione necessarie per connettersi a una risorsa all'esterno di SQL Server.Credential: A SQL ServerSQL Server credential is an object that is used to store authentication information required to connect to a resource outside of SQL Server. In questo caso, nei processi di backup e ripristino di SQL ServerSQL Server vengono usate le credenziali per l'autenticazione al servizio di archiviazione BLOB di Microsoft Azure, nonché ai contenitori e agli oggetti dei BLOB relativi.Here, SQL ServerSQL Server backup and restore processes use credential to authenticate to the Microsoft Azure Blob storage service and its container and blob objects. 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.The Credential stores either the name of the storage account and the storage account access key values or container URL and its Shared Access Signature token. Una volta create le credenziali, la sintassi delle istruzioni BACKUP/RESTORE determina il tipo di BLOB e le credenziali necessarie.Once the credential is created, the syntax of the BACKUP/RESTORE statements determines the type of blob and the credential required.

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 argomento e per creare le credenziali di SQL ServerSQL Server , vedere gli esempi in Creare credenziali , più avanti in questo argomento.For an example about how to create a Shared Access Signature, see Create a Shared Access Signature examples later in this topic and to create a SQL ServerSQL Server Credential, see Create a Credential examples later in this topic.

Per informazioni generali sulle credenziali, vedere CredenzialiFor general information about credentials, see Credentials

Per informazioni su altri esempi in cui vengono usate le credenziali, vedere Creazione di un proxy di SQL Server Agent.For information on other examples where credentials are used, see Create a SQL Server Agent Proxy.

Limitazioni Limitations

  • Il backup in Archiviazione Premium non è supportato.Backup to premium storage is not supported.

  • Le dimensioni massime di backup supportate usando un BLOB di pagine sono limitate dalle dimensioni massime di un BLOB di pagina singolo, ossia 1 TB.The maximum backup size supported using a page blob is limited by the maximum size of a single page blob, which 1 TB. Le dimensioni massime di backup supportate tramite i BLOB in blocchi non sono limitate dalle dimensioni massime di un BLOB in blocchi, pari a 200 GB, poiché questo tipo di backup supporta lo striping che consente backup di notevoli dimensioni.The maximum backup size supported using block blobs is not limited by the maximum size of a block blob, which is 200 GB, because backup to block blobs supports striping to support substantially larger backup sizes.

  • È possibile eseguire istruzioni di backup o ripristino tramite TSQL, SMO, cmdlet PowerShell, SQL Server Management Studio Backup o Ripristino guidato.You can issue backup or restore statements by using TSQL, SMO, PowerShell cmdlets, SQL Server Management Studio Backup or Restore wizard.

  • La creazione di un nome di dispositivo logico non è supportata.Creating a logical device name is not supported. Di conseguenza, non è supportata neanche l'aggiunta di un URL come dispositivo di backup tramite sp_dumpdevice o SQL Server Management Studio.So adding URL as a backup device using sp_dumpdevice or through SQL Server Management Studio is not supported.

  • L'accodamento ai BLOB di backup esistenti non è supportato.Appending to existing backup blobs is not supported. I backup in un BLOB esistente possono essere sovrascritti solo tramite l'opzione WITH FORMAT .Backups to an existing blob can only be overwritten by using the WITH FORMAT option. Quando si usano i backup con snapshot di file (usando l'argomento WITH FILE_SNAPSHOT ) tuttavia, l'argomento WITH FORMAT non è consentito per evitare di lasciare snapshot di file orfani creati con il backup con snapshot di file originale.However, when using file-snapshot backups (using the WITH FILE_SNAPSHOT argument), the WITH FORMAT argument is not permitted to avoid leaving orphaned file-snapshots that were created with the original file-snapshot backup.

  • 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.Backup to multiple blobs in a single backup operation is only supported using block blobs and using a Shared Access Signature (SAS) token rather than the storage account key for the SQL Credential.

  • L'impostazione di BLOCKSIZE non è supportata per i BLOB di pagine.Specifying BLOCKSIZE is not supported for page blobs.

  • L'impostazione di MAXTRANSFERSIZE non è supportata per i BLOB di pagine.Specifying MAXTRANSFERSIZE is not supported page blobs.

  • La specifica delle opzioni del set di backup, RETAINDAYS ed EXPIREDATE , non è supportata.Specifying backupset options - RETAINDAYS and EXPIREDATE are not supported.

  • SQL ServerSQL Server è previsto un limite massimo di 259 caratteri per il nome di un dispositivo di backup. has a maximum limit of 259 characters for a backup device name. BACKUP TO URL usa 36 caratteri per gli elementi necessari usati per specificare l'URL 'https://.blob.core.windows.net//.bak', lasciando 223 caratteri per l'account, il contenitore e i nomi BLOB insieme.The BACKUP TO URL consumes 36 characters for the required elements used to specify the URL – ‘https://.blob.core.windows.net//.bak’, leaving 223 characters for account, container, and blob names put together.

Supporto per le istruzioni di backup/ripristino Support for Backup/Restore Statements

Istruzione di backup/ripristinoBackup/Restore Statement SupportatoSupported EccezioniExceptions CommentiComments
BACKUPBACKUP BLOCKSIZE e MAXTRANSFERSIZE sono supportati per i BLOB in blocchi.BLOCKSIZE and MAXTRANSFERSIZE are supported for block blobs. Non sono supportati per i BLOB di pagine.They are not supported for page blobs. Per usare BACKUP per un BLOB in blocchi è necessaria una firma di accesso condiviso salvata in una credenziale di SQL Server.BACKUP to a block blob requires a Shared Access Signature saved in a SQL Server credential. Per usare BACKUP per un BLOB di pagine è necessaria la chiave dell'account di archiviazione salvata in una credenziale di SQL ServerSQL Server e occorre che sia specificato l'argomento WITH CREDENTIAL.BACKUP to page blob requires the storage account key saved in a SQL ServerSQL Server credential, and requires the WITH CREDENTIAL argument to be specified.
RESTORERESTORE Richiede che siano state definite credenziali SQL ServerSQL Server nelle quali venga specificato l'argomento WITH CREDENTIAL se le credenziali SQL ServerSQL Server sono state definite tramite la chiave dell'account di archiviazione come segretoRequires a SQL ServerSQL Server credential to be defined, and requires the WITH CREDENTIAL argument to be specified if the SQL ServerSQL Server credential is defined using the storage account key as the secret
RESTORE FILELISTONLYRESTORE FILELISTONLY Richiede che siano state definite credenziali SQL ServerSQL Server nelle quali venga specificato l'argomento WITH CREDENTIAL se le credenziali SQL ServerSQL Server sono state definite tramite la chiave dell'account di archiviazione come segretoRequires a SQL ServerSQL Server credential to be defined, and requires the WITH CREDENTIAL argument to be specified if the SQL ServerSQL Server credential is defined using the storage account key as the secret
RESTORE HEADERONLYRESTORE HEADERONLY Richiede che siano state definite credenziali SQL ServerSQL Server nelle quali venga specificato l'argomento WITH CREDENTIAL se le credenziali SQL ServerSQL Server sono state definite tramite la chiave dell'account di archiviazione come segretoRequires a SQL ServerSQL Server credential to be defined, and requires the WITH CREDENTIAL argument to be specified if the SQL ServerSQL Server credential is defined using the storage account key as the secret
RESTORE LABELONLYRESTORE LABELONLY Richiede che siano state definite credenziali SQL ServerSQL Server nelle quali venga specificato l'argomento WITH CREDENTIAL se le credenziali SQL ServerSQL Server sono state definite tramite la chiave dell'account di archiviazione come segretoRequires a SQL ServerSQL Server credential to be defined, and requires the WITH CREDENTIAL argument to be specified if the SQL ServerSQL Server credential is defined using the storage account key as the secret
RESTORE VERIFYONLYRESTORE VERIFYONLY Richiede che siano state definite credenziali SQL ServerSQL Server nelle quali venga specificato l'argomento WITH CREDENTIAL se le credenziali SQL ServerSQL Server sono state definite tramite la chiave dell'account di archiviazione come segretoRequires a SQL ServerSQL Server credential to be defined, and requires the WITH CREDENTIAL argument to be specified if the SQL ServerSQL Server credential is defined using the storage account key as the secret
RESTORE REWINDONLYRESTORE REWINDONLY

Per la sintassi e informazioni generali sulle istruzioni di backup, vedere BACKUP (Transact-SQL).For syntax and general information about backup statements, see BACKUP (Transact-SQL).

Per la sintassi e informazioni generali sulle istruzioni di ripristino, vedere RESTORE (Transact-SQL).For syntax and general information about restore statements, see RESTORE (Transact-SQL).

Supporto per gli argomenti dell'istruzione BACKUPSupport for Backup Arguments

ArgomentoArgument SupportatoSupported EccezioneException CommentiComments
DATABASEDATABASE
LOGLOG
TO (URL)TO (URL) Diversamente da DISK e TAPE, l'URL non supporta la specifica o la creazione di un nome logico.Unlike DISK and TAPE, URL does not support specifying or creating a logical name. Questo argomento viene utilizzato per specificare il percorso URL del file di backup.This argument is used to specify the URL path for the backup file.
MIRROR TOMIRROR TO
OPZIONI WITH:WITH OPTIONS:
CREDENTIALCREDENTIAL WITH CREDENTIAL è supportato solo quando si usa l'opzione BACKUP TO URL per il backup nel servizio di archiviazione BLOB di Microsoft Azure e solo se le credenziali SQL ServerSQL Server sono state definite tramite la chiave dell'account di archiviazione come segretoWITH CREDENTIAL is only supported when using BACKUP TO URL option to back up to the Microsoft Azure Blob storage service and only if the SQL ServerSQL Server credential is defined using the storage account key as the secret
FILE_SNAPSHOTFILE_SNAPSHOT
ENCRYPTIONENCRYPTION Quando è specificato l'argomento WITH ENCRYPTION , il backup con snapshot di file di SQL ServerSQL Server verifica che l'intero database sia stato crittografato con TDE prima dell'esecuzione del backup e, in caso affermativo, crittografa il file di backup con snapshot di file stesso usando l'algoritmo specificato per TDE sul database.When the WITH ENCRYPTION argument is specified, SQL ServerSQL Server File-Snapshot Backup ensures that the entire database was TDE-encrypted before taking the backup and, if so, encrypts the file-snapshot backup file itself using the algorithm specified for TDE on the database. Se tutti i dati del database, in tutto il database, non sono stati crittografati, il backup non verrà completato (ad esempio, se il processo di crittografia non è ancora stato completato).If all data in the database in the entire database is not encrypted, the backup will fail (e.g. the encryption process is not yet complete).
DIFFERENTIALDIFFERENTIAL
COPY_ONLYCOPY_ONLY
COMPRESSION|NO_COMPRESSIONCOMPRESSION|NO_COMPRESSION Non supportato per il backup con snapshot di fileNot supported for file-snapshot backup
DESCRIPTIONDESCRIPTION
NAMENAME
EXPIREDATE | RETAINDAYSEXPIREDATE | RETAINDAYS
NOINIT | INITNOINIT | INIT L'accodamento ai BLOB non è consentito.Appending to blobs is not possible. Per sovrascrivere un backup, usare l'argomento WITH FORMAT .To overwrite a backup use the WITH FORMAT argument. Quando si usano i backup con snapshot di file (usando l'argomento WITH FILE_SNAPSHOT ) tuttavia, l'argomento WITH FORMAT non è consentito per evitare di lasciare snapshot di file orfani creati con il backup originale.However, when using file-snapshot backups (using the WITH FILE_SNAPSHOT argument), the WITH FORMAT argument is not permitted to avoid leaving orphaned file-snapshots that were created with the original backup.
NOSKIP | SKIPNOSKIP | SKIP
NOFORMAT | FORMATNOFORMAT | FORMAT Un backup eseguito in un BLOB esistente non viene completato a meno che non venga specificato WITH FORMAT .A backup taken to an existing blob fails unless WITH FORMAT is specified. Il BLOB esistente viene sovrascritto quando viene specificato WITH FORMAT .The existing blob is overwritten when WITH FORMAT is specified. Quando si usano i backup con snapshot di file (usando l'argomento WITH FILE_SNAPSHOT ) tuttavia, l'argomento FORMAT non è consentito per evitare di lasciare snapshot di file orfani creati con il backup con snapshot di file originale.However, when using file-snapshot backups (using the WITH FILE_SNAPSHOT argument), the FORMAT argument is not permitted to avoid leaving orphaned file-snapshots that were created with the original file-snapshot backup. Quando si usano i backup con snapshot di file (usando l'argomento WITH FILE_SNAPSHOT ) tuttavia, l'argomento WITH FORMAT non è consentito per evitare di lasciare snapshot di file orfani creati con il backup originale.However, when using file-snapshot backups (using the WITH FILE_SNAPSHOT argument), the WITH FORMAT argument is not permitted to avoid leaving orphaned file-snapshots that were created with the original backup.
MEDIADESCRIPTIONMEDIADESCRIPTION
MEDIANAMEMEDIANAME
BLOCKSIZEBLOCKSIZE Non supportati per i BLOB di pagine.Not supported for page blob. Supportati per i BLOB in blocchi.Supported for block blob. Si consiglia BLOCKSIZE=65536 per ottimizzare l'uso dei 50.000 blocchi consentiti in un BLOB in blocchi.Recommend BLOCKSIZE=65536 to optimize use of the 50,000 blocks allowed in a block blob.
BUFFERCOUNTBUFFERCOUNT
MAXTRANSFERSIZEMAXTRANSFERSIZE Non supportati per i BLOB di pagine.Not supported for page blob. Supportati per i BLOB in blocchi.Supported for block blob. Il valore predefinito è 1048576.Default is 1048576. Il valore può arrivare fino a 4 MB con incrementi di 65536 byte.The value can range up to 4 MB in increments of 65536 bytes.
Si consiglia MAXTRANSFERSIZE=4194304 per ottimizzare l'uso dei 50.000 blocchi consentiti in un BLOB in blocchi.Recommend MAXTRANSFERSIZE=4194304 to optimize use of the 50,000 blocks allowed in a block blob.
NO_CHECKSUM | CHECKSUMNO_CHECKSUM | CHECKSUM
STOP_ON_ERROR | CONTINUE_AFTER_ERRORSTOP_ON_ERROR | CONTINUE_AFTER_ERROR
STATSSTATS
REWIND | NOREWINDREWIND | NOREWIND
UNLOAD | NOUNLOADUNLOAD | NOUNLOAD
NORECOVERY | STANDBYNORECOVERY | STANDBY
NO_TRUNCATENO_TRUNCATE

Per altre informazioni sugli argomenti di backup, vedere BACKUP (Transact-SQL).For more information about backup arguments, see BACKUP (Transact-SQL).

Supporto per gli argomenti dell'istruzione RESTORESupport for Restore Arguments

ArgomentoArgument SupportatoSupported EccezioniExceptions CommentiComments
DATABASEDATABASE
LOGLOG
FROM (URL)FROM (URL) L'argomento FROM URL viene utilizzato per specificare il percorso URL del file di backup.The FROM URL argument is used to specify the URL path for the backup file.
WITH Options:WITH Options:
CREDENTIALCREDENTIAL WITH CREDENTIAL è supportato solo quando si usa l'opzione RESTORE FROM URL per eseguire il ripristino dal servizio di archiviazione BLOB di Microsoft Azure.WITH CREDENTIAL is only supported when using RESTORE FROM URL option to restore from Microsoft Azure Blob storage service.
PARTIALPARTIAL
RECOVERY | NORECOVERY | STANDBYRECOVERY | NORECOVERY | STANDBY
LOADHISTORYLOADHISTORY
MOVEMOVE
REPLACEREPLACE
RESTARTRESTART
RESTRICTED_USERRESTRICTED_USER
FILEFILE
PASSWORDPASSWORD
MEDIANAMEMEDIANAME
MEDIAPASSWORDMEDIAPASSWORD
BLOCKSIZEBLOCKSIZE
BUFFERCOUNTBUFFERCOUNT
MAXTRANSFERSIZEMAXTRANSFERSIZE
CHECKSUM | NO_CHECKSUMCHECKSUM | NO_CHECKSUM
STOP_ON_ERROR | CONTINUE_AFTER_ERRORSTOP_ON_ERROR | CONTINUE_AFTER_ERROR
FILESTREAMFILESTREAM Non supportato per il backup con snapshot di fileNot supported for snapshot backup
STATSSTATS
REWIND | NOREWINDREWIND | NOREWIND
UNLOAD | NOUNLOADUNLOAD | NOUNLOAD
KEEP_REPLICATIONKEEP_REPLICATION
KEEP_CDCKEEP_CDC
ENABLE_BROKER | ERROR_BROKER_CONVERSATIONS | NEW_BROKERENABLE_BROKER | ERROR_BROKER_CONVERSATIONS | NEW_BROKER
STOPAT | STOPATMARK | STOPBEFOREMARKSTOPAT | STOPATMARK | STOPBEFOREMARK

Per altre informazioni sugli argomenti di ripristino, vedere Argomenti dell'istruzione RESTORE (Transact-SQL).For more information about Restore arguments, see RESTORE Arguments (Transact-SQL).

Uso dell'attività di backup in SQL Server Management Studio Using Back Up Task in SQL Server Management Studio

È possibile eseguire il backup di un database in un URL tramite l'attività di backup in SQL Server Management Studio e credenziali SQL Server.You can back up a database to URL through the Back Up task in SQL Server Management Studio using a SQL Server Credential.

Nota

Per creare un backup con snapshot di file di SQL ServerSQL Server o sovrascrivere un set di supporti esistente, è necessario usare Transact-SQL, PowerShell o C# anziché l'attività di backup in SQL Server Management Studio.To create a SQL ServerSQL Server file-snapshot backup, or overwrite an existing media set, you must use Transact-SQL, Powershell or C# rather than the Back Up task 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 Microsoft Azure:The following steps describe the changes made to the Back Up Database task in SQL Server Management Studio to allow for backing up to Windows Azure storage:

  1. In Esplora oggetticonnettersi a un'istanza del motore di database di SQL Server e, successivamente, espanderla.In Object Explorer, connect to an instance of the SQL Server Database Engine and then expand that instance.

  2. Espandere Database, fare clic con il pulsante destro del mouse sul database desiderato, scegliere Attivitàe quindi fare clic su Copia database.Expand Databases, right-click the desired database, point to Tasks, and then click Back Up....

  3. Nella pagina Generale nella sezione Destinazione è disponibile l'opzione URL nell'elenco a discesa Backup in: .On the General page in the Destination section the URL option is available in the Back up to: drop-down list. L'opzione URL è usata per creare un backup nel servizio di archiviazione Microsoft Azure.The URL option is used to create a backup to Microsoft Azure storage. Fare clic su Aggiungi Verrà aperta la finestra di dialogo Selezionare la destinazione di backupClick Add and the Select Backup Destination dialog box will open:

    1. Contenitore di Archiviazione di Azure: nome del contenitore del servizio di archiviazione Microsoft Azure in cui archiviare i file di backup.Azure storage container: The name of the Microsoft Azure storage container to store the backup files. Selezionare un contenitore esistente nell'elenco a discesa o immetterlo manualmente.Select an existing container from the drop-down list or manually enter the container.

    2. Criteri di accesso condiviso: immettere la firma di accesso condiviso per un contenitore immesso manualmente.Shared Access Policy: Enter the shared access signature for a manually entered container. Questo campo non è disponibile se è stato scelto un contenitore esistente.This field is not available if an existing container was chosen.

    3. File di backup : nome del file di backup.Backup File: Name of the backup file.

    4. Nuovo contenitore: usato per registrare un contenitore esistente per il quale non si ha una firma di accesso condiviso.New Container: Used to register an existing container that you do not have a shared access signature for. Vedere Connettersi a una sottoscrizione di Microsoft Azure.See Connect to a Microsoft Azure Subscription.

Nota

Aggiungi supporta più file di backup e i contenitori di archiviazione per un singolo set di supporti.Add supports multiple backup files and storage containers for a single media set.

Quando si seleziona un URL come destinazione, alcune opzioni nella pagina Opzioni supporti vengono disabilitate.When you select URL as the destination, certain options in the Media Options page are disabled. Negli argomenti seguenti vengono fornite ulteriori informazioni sulla finestra di dialogo Backup database:The following topics have more information on the Back Up Database dialog:

Backup database (pagina Generale)Back Up Database (General Page)

Back Up Database (pagina Opzioni supporti)Back Up Database (Media Options Page)

Backup database (pagina Opzioni di backup)Back Up Database (Backup Options Page)

Creare le credenziali - Eseguire l'autenticazione nel servizio di archiviazione AzureCreate Credential - Authenticate to Azure Storage

Backup di SQL Server nell'URL tramite la Creazione guidata piano di manutenzione SQL Server Backup to URL Using Maintenance Plan Wizard

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 Microsoft Azure, ad esempio le credenziali SQL.Similar to the backup task described previously, the Maintenance Plan Wizard in SQL Server Management Studio includes URL as one of the destination options, and other supporting objects required to backup to Windows Azure storage like the SQL Credential. Per altre informazioni, vedere la sezione sulla definizione delle attività di backup in Using Maintenance Plan Wizard.It has the same For more information, see the Define Backup Tasks section in Using Maintenance Plan Wizard.

Nota

Per creare un set di backup con striping, un backup con snapshot di file di SQL ServerSQL Server o credenziali SQL tramite un token di accesso condiviso, è necessario usare Transact-SQL, PowerShell o C# anziché l'attività di backup in Creazione guidata piano di manutenzione.To create a striped backup set, a SQL ServerSQL Server file-snapshot backup, or a SQL credential using Shared Access token, you must use Transact-SQL, Powershell or C# rather than the Backup task in Maintenance Plan Wizard.

Ripristino dal servizio di archiviazione Microsoft Azure tramite SQL Server Management Studio Restoring from Microsoft Azure storage Using SQL Server Management Studio

L'attività Ripristina database include URL come dispositivo da cui eseguire il ripristino.The Restore Database task includes URL as a device to restore from. I passaggi seguenti descrivono come usare l'attività di ripristino per eseguire il ripristino dal servizio di archiviazione BLOB di Microsoft Azure:The following steps describe using the Restore task to restore from the Microsoft Azure Blob storage service:

  1. Fare clic con il pulsante destro del mouse su Database e scegliere Ripristina database.....Right-click Databases and select Restore Database....

  2. Nella pagina Generale selezionare Dispositivo nella sezione Origine .On the General page, select Device under the Source section.

  3. Fare clic sul pulsante Sfoglia (...) per aprire la finestra di dialogo Seleziona dispositivi di backup .Click the browse (...) button to open the Select backup devices dialog box.

  4. Selezionare URL dall'elenco a discesa Tipo di supporti di backup: .Select URL from the Backup media type: drop-down list. Fare clic su Aggiungi per aprire la finestra di dialogo Selezionare un percorso del file di backup .Click Add to open the Select a Backup File Location dialog box.

    1. Contenitore di Archiviazione di Azure: nome completo del contenitore del servizio di archiviazione Microsoft Azure che contiene i file di backup.Azure storage container: The fully qualified name of the Microsoft Azure storage container which contains the backup files. Selezionare un contenitore esistente nell'elenco a discesa o immettere manualmente il nome completo del contenitore.Select an existing container from the drop-down list or manually enter the fully qualified container name.

    2. Firma di accesso condiviso: usata per immettere la firma di accesso condiviso per il contenitore designato.Shared Access Signature: Used to enter the shared access signature for the designated container.

    3. Aggiungi: usato per registrare un contenitore esistente per il quale non si ha una firma di accesso condiviso.Add: Used to register an existing container that you do not have a shared access signature for. Vedere Connettersi a una sottoscrizione di Microsoft Azure.See Connect to a Microsoft Azure Subscription.

    4. 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.OK: SQL Server connects to Microsoft Azure storage using the SQL Credential information you provided and opens the Locate Backup File in Microsoft Azure dialog. In questa pagina vengono visualizzati i file di backup che si trovano nel contenitore di archiviazione.The backup files residing in the storage container are displayed on this page. Selezionare il file che si desidera ripristinare, quindi fare clic su OK.Select the file you want to use to restore and click OK. Viene visualizzata di nuovo la finestra di dialogo Seleziona dispositivi di backup . Se si fa clic su OK in questa finestra di dialogo, viene visualizzata di nuovo la finestra di dialogo principale Ripristina in cui sarà possibile completare il ripristino.This takes you back to the Select Backup Devices dialog, and clicking OK on this dialog takes you back to the main Restore dialog where you will be able complete the restore.

      Ripristina database (pagina Generale)Restore Database (General Page)

      Ripristina database (pagina File)Restore Database (Files Page)

      Ripristina database (pagina Opzioni)Restore Database (Options Page)

Esempi di codice Code Examples

In questa sezione sono disponibili gli esempi riportati di seguito.This section contains the following examples.

Nota

Per un'esercitazione sull'uso di SQL Server 2016 con il servizio di archiviazione BLOB di Microsoft Azure, vedere Esercitazione: Uso del servizio di archiviazione BLOB di Windows Azure con i database di SQL Server 2016For a tutorial on using SQL Server 2016 with the Microsoft Azure Blob storage service, see Tutorial: Using the Microsoft Azure Blob storage service with SQL Server 2016 databases

Creare una firma di accesso condiviso Create a Shared Access Signature

Nell'esempio seguente vengono create firme di accesso condiviso che possono essere usate per creare credenziali di SQL ServerSQL Server in un nuovo contenitore.The following example creates Shared Access Signatures that can be used to create a SQL ServerSQL Server Credential on a newly created container. Questo script crea una firma di accesso condiviso associata ai criteri di accesso archiviati.The script creates a Shared Access Signature that is associated with a Stored Access Policy. Per altre informazioni, vedere Firme di accesso condiviso, parte 1: conoscere il modello di firma di accesso condiviso.For more information, see Shared Access Signatures, Part 1: Understanding the SAS Model. Questo esempio richiede Microsoft Azure PowerShell.The example requires Microsoft Azure Powershell. Per altre informazioni sull'installazione e l'uso di PowerShell, vedere Come installare e configurare Azure PowerShell.For information about installing and using Azure Powershell, see How to install and configure Azure PowerShell.

Nota

Questi script sono stati scritti con Azure PowerShell 5.0.10586.These scripts were written using Azure PowerShell 5.0.10586.

Firma di accesso condiviso associata a un criterio di accesso archiviatoShared Access Signature that is associated with a Stored Access Policy

# 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   
Login-AzureRmAccount

# set the tenant, subscription and environment for use in the rest of   
Set-AzureRmContext -SubscriptionName $subscriptionName   

# create a new resource group - comment out this line to use an existing resource group  
New-AzureRmResourceGroup -Name $resourceGroupName -Location $locationName   

# Create a new ARM storage account - comment out this line to use an existing ARM storage account  
New-AzureRmStorageAccount -Name $storageAccountName -ResourceGroupName $resourceGroupName -Type Standard_RAGRS -Location $locationName   

# Get the access keys for the ARM storage account  
$accountKeys = Get-AzureRmStorageAccountKey -ResourceGroupName $resourceGroupName -Name $storageAccountName  

# Create a new storage account context using an ARM storage account  
$storageContext = New-AzureStorageContext -StorageAccountName $storageAccountName -StorageAccountKey $accountKeys[0].Key1 

# Creates a new container in blob storage  
$container = New-AzureStorageContainer -Context $storageContext -Name $containerName  
$cbc = $container.CloudBlobContainer  

# Sets up a Stored Access Policy and a Shared Access Signature for the new container  
$permissions = $cbc.GetPermissions();  
$policyName = $policyName  
$policy = new-object 'Microsoft.WindowsAzure.Storage.Blob.SharedAccessBlobPolicy'  
$policy.SharedAccessStartTime = $(Get-Date).ToUniversalTime().AddMinutes(-5)  
$policy.SharedAccessExpiryTime = $(Get-Date).ToUniversalTime().AddYears(10)  
$policy.Permissions = "Read,Write,List,Delete"  
$permissions.SharedAccessPolicies.Add($policyName, $policy)  
$cbc.SetPermissions($permissions);  

# Gets the Shared Access Signature for the policy  
$policy = new-object 'Microsoft.WindowsAzure.Storage.Blob.SharedAccessBlobPolicy'  
$sas = $cbc.GetSharedAccessSignature($policy, $policyName)  
Write-Host 'Shared Access Signature= '$($sas.Substring(1))''  

# 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.Substring(1)   
$tSql | clip  
Write-Host $tSql  

Creare credenziali Create a Credential

Nei seguenti esempi vengono create le credenziali di SQL ServerSQL Server per l'autenticazione al servizio di archiviazione BLOB di Microsoft Azure.The following examples create SQL ServerSQL Server credentials for authentication to the Microsoft Azure Blob storage service.

  1. Uso della chiave di identità e di accesso dell'account di archiviazioneUsing storage account identity and access key

    IF NOT EXISTS  
    (SELECT * FROM sys.credentials   
    WHERE name = '<mycredentialname>')  
    CREATE CREDENTIAL [<mycredentialname>] WITH IDENTITY = '<mystorageaccountname>'  
    ,SECRET = '<mystorageaccountaccesskey>';  
    
  2. Uso della firma di accesso condivisoUsing Shared Access Signature

    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>';  
    

Eseguire un backup completo del database Perform a full database backup

Negli esempi seguenti viene eseguito un backup completo del database AdventureWorks2016 nel servizio di archiviazione BLOB di Microsoft Azure.The following examples perform a full database backup of the AdventureWorks2016 database to the Microsoft Azure Blob storage service.

  1. Nell'URL tramite la chiave di identità e di accesso dell'account di archiviazioneTo URL using storage account identity and access key

    BACKUP DATABASE AdventureWorks2016  
    TO URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2016.bak'   
          WITH CREDENTIAL = '<mycredentialname>'   
         ,COMPRESSION  
         ,STATS = 5;  
    GO   
    
  2. Nell'URL tramite una firma di accesso condivisoTo URL using Shared Access Signature

    BACKUP DATABASE AdventureWorks2016   
    TO URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2016.bak';  
    GO   
    

Ripristino temporizzato tramite STOPAT Restoring to a point-in-time using STOPAT

Nell'esempio seguente viene ripristinato lo stato di un database di esempio AdventureWorks2016 in un momento preciso e viene illustrata l'operazione di ripristino.The following example restores the AdventureWorks2016 sample database database to its state at a point in time, and shows a restore operation.

  1. Dall'URL tramite una firma di accesso condivisoFrom URL using Shared Access Signature

    RESTORE DATABASE AdventureWorks2016 FROM URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2016_2015_05_18_16_00_00.bak'   
    WITH MOVE 'AdventureWorks2016_data' to 'C:\Program Files\Microsoft SQL Server\<myinstancename>\MSSQL\DATA\AdventureWorks2016.mdf'  
    ,MOVE 'AdventureWorks2016_log' to 'C:\Program Files\Microsoft SQL Server\<myinstancename>\MSSQL\DATA\AdventureWorks2016.ldf'  
    ,NORECOVERY  
    ,REPLACE  
    ,STATS = 5;  
    GO   
    
    RESTORE LOG AdventureWorks2016 FROM URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2016_2015_05_18_18_00_00.trn'   
    WITH   
    RECOVERY   
    ,STOPAT = 'May 18, 2015 5:35 PM'   
    GO  
    

Vedere ancheSee Also

Procedure consigliate e risoluzione dei problemi per il backup di SQL Server nell'URL SQL Server Backup to URL Best Practices and Troubleshooting
Backup e ripristino di database di sistema (SQL Server) Back Up and Restore of System Databases (SQL Server)
Esercitazione: Uso del servizio di archiviazione BLOB di Windows Azure con i database di SQL Server 2016Tutorial: Using the Microsoft Azure Blob storage service with SQL Server 2016 databases