Backup do SQL Server para URLSQL Server Backup to URL

APLICA-SE A: simSQL Server simBanco de Dados SQL do Azure (somente a Instância Gerenciada) nãoSQL Data Warehouse do Azure nãoParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database (Managed Instance only) noAzure SQL Data Warehouse noParallel Data Warehouse

Este tópico apresenta os conceitos, os requisitos e os componentes necessários para usar o serviço de Armazenamento de Blobs do Microsoft Azure como um destino de backup.This topic introduces the concepts, requirements and components necessary to use the Microsoft Azure Blob storage service as a backup destination. A funcionalidade de backup e restauração tem o mesmo efeito de DISK ou TAPE, com algumas diferenças.The backup and restore functionality are same or similar to when using DISK or TAPE, with a few differences. Essas diferenças e alguns exemplos de código estão incluídos neste tópico.These differences and a few code examples are included in this topic.

Requisitos, componentes e conceitosRequirements, Components, and Concepts

Nesta seção:In this section:

SegurançaSecurity

Estes são os requisitos e as considerações de segurança para backup e restauração dos serviços Armazenamento de Blobs do Microsoft Azure.The following are security considerations and requirements when backing up to or restoring from the Microsoft Azure Blob storage service.

  • Ao criar um contêiner para o serviço de Armazenamento de Blobs do Microsoft Azure, recomendamos que você defina o acesso como privado.When creating a container for the Microsoft Azure Blob storage service, we recommend that you set the access to private. A definição do acesso como privado restringe o acesso a usuários ou contas capazes de fornecer as informações necessárias para realizar a autenticação na conta do 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 exige o armazenamento de um nome de conta e autenticação de chave de acesso do Windows Azure ou de uma Assinatura de Acesso Compartilhado e token de acesso em uma Credencial do 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. Essas informações são usadas para realizar a autenticação na conta do Windows Azure durante a execução de operações de backup ou restauração.This information is used to authenticate to the Windows Azure account when performing backup or restore operations.

  • A conta de usuário usada para emitir os comandos BACKUP ou RESTORE deve estar na função de banco de dados operador db_backup com as permissões Alterar qualquer credencial .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.

Introdução aos principais componentes e conceitosIntroduction to Key Components and Concepts

As duas seções a seguir apresentam o serviço de Armazenamento de Blobs do Microsoft Azure e os componentes do SQL ServerSQL Server usados durante o backup ou a restauração do serviço de Armazenamento de Blobs do 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 entender os componentes e a interação entre eles para fazer um backup ou uma restauração no serviço de Armazenamento de Blobs do 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.

Criar uma conta de Armazenamento do Windows Azure dentro de sua assinatura do Azure é a primeira etapa nesse processo.Creating a Windows Azure Storage account within your Azure subscription is the first step in this process. Essa conta de armazenamento é uma conta administrativa que tem permissões administrativas completas em todos os contêineres e objetos criados com a conta.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 pode usar o nome da conta de armazenamento do Windows Azure e seu valor de chave de acesso para autenticar, gravar e ler blobs do serviço de Armazenamento de Blobs do Microsoft Azure, ou usar um token de Assinatura de Acesso Compartilhado gerado em contêineres específicos, concedendo direitos de leitura e gravação.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. Para saber mais sobre a Conta de Armazenamento do Azure, confira Sobre as contas de armazenamento do Azure e para saber mais sobre as Assinaturas de Acesso Compartilhado, confira Assinaturas de Acesso Compartilhado, parte 1: Noções básicas sobre o modelo SAS.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. A credencial do SQL ServerSQL Server armazena essas informações de autenticação e é usada durante as operações de backup ou restauração.The SQL ServerSQL Server Credential stores this authentication information and is used during the backup or restore operations.

Backup no blob de blocos versus no blob de páginasBackup to block blob vs. page blob

Há dois tipos de blobs que podem ser armazenados no serviço de Armazenamento de Blobs do Microsoft Azure: blobs de blocos e de páginas.There are two types of blobs that can be stored in the Microsoft Azure Blob storage service: block and page blobs. O backup do SQL Server pode usar qualquer tipo de blob, dependendo da sintaxe Transact-SQL usada: Se a chave de armazenamento for usada na credencial, o blob de páginas será usado; se a Assinatura de Acesso Compartilhado for usada, o blob de blocos será usado.SQL Server backup can use either blob type depending upon the Transact-SQL syntax used: If the storage key is used in the credential, page blob will be used; if the Shared Access Signature is used, block blob will be used.

O backup no blob de blocos só está disponível no SQL Server 2016 ou versão posterior.Backup to block blob is only available in SQL Server 2016 or later version. Recomendamos que você faça backup no blob de blocos em vez do bloco de páginas se você estiver executando o SQL Server 2016 ou versão posterior.We recommend you to backup to block blob instead of page block if you are running SQL Server 2016 or later version. Os motivos principais são:The main reasons are:

  • A Assinatura de Acesso Compartilhado é uma maneira mais segura de autorizar o acesso ao blob em comparação à chave de armazenamento.Shared Access Signature is a safer way to authorize blob access compared to storage key.
  • Você pode fazer backup em vários blobs de blocos para ter um melhor desempenho de backup e restauração, bem como para dar suporte ao backup de bancos de dados maiores.You can backup to multiple block blobs to get better backup and restore performance, and support larger database backup.
  • O blob de blocos é mais barato que o blob de páginas.Block blob is cheaper than page blob.

Quando você faz backup no blob de blocos, o tamanho máximo de bloco que você pode especificar é de 4 MB.When you backup to block blob, the maximum block size you can specify is 4MB. O tamanho máximo de um único arquivo de blob de blocos é 4 MB * 50000 = 195 GB.The maximum size of a single block blob file is 4MB * 50000 = 195GB. Se seu banco de dados tiver mais de 195 GB, recomendamos que você:If your database is larger than 195GB, we recommend you:

  • use a compactação de backupUse backup compression
  • faça backup em vários blobs de blocosBackup to multiple block blobs

Serviço de Armazenamento de Blobs do Microsoft AzureMicrosoft Azure Blob storage service

Conta de armazenamento: A conta de armazenamento é o ponto de partida de todos os serviços de armazenamento.Storage Account: The storage account is the starting point for all storage services. Para acessar o serviço de Armazenamento de Blobs do Microsoft Azure, primeiro crie uma conta de armazenamento do Windows Azure.To access the Microsoft Azure Blob storage service, first create a Windows Azure storage account. Para saber mais, confira Criar uma conta de armazenamento.For more information, see Create a Storage Account

Contêiner: Um contêiner fornece o agrupamento de um conjunto de blobs e pode armazenar um número ilimitado de blobs.Container: A container provides a grouping of a set of blobs, and can store an unlimited number of blobs. Para gravar um backup do SQL ServerSQL Server no serviço de Armazenamento de Blobs do Microsoft Azure, pelo menos o contêiner raiz deve ter sido criado.To write a SQL ServerSQL Server backup to the Microsoft Azure Blob storage service, you must have at least the root container created. Você pode gerar um token de Assinatura de Acesso Compartilhado em um contêiner e conceder acesso a objetos apenas em um contêiner específico.You can generate a Shared Access Signature token on a container and grant access to objects on a specific container only.

Blob: Um arquivo de qualquer tipo e tamanho.Blob: A file of any type and size. Há dois tipos de blobs que podem ser armazenados no serviço de Armazenamento de Blobs do Microsoft Azure: blobs de blocos e de páginas.There are two types of blobs that can be stored in the Microsoft Azure Blob storage service: block and page blobs. SQL ServerSQL Server o backup pode usar qualquer tipo de blob, dependendo da sintaxe Transact-SQL usada.backup can use either blob type depending upon the Transact-SQL syntax used. Blobs são endereçáveis por meio do seguinte formato de URL: https://<conta de armazenamento>.blob.core.windows.net/<contêiner>/<blob>.Blobs are addressable using the following URL format: https://<storage account>.blob.core.windows.net/<container>/<blob>. Para saber mais sobre o serviço de Armazenamento de Blobs do Microsoft Azure, confira Como usar o Armazenamento de Blobs no .NETFor more information about the Microsoft Azure Blob storage service, see How to use the Blob Storage from .NET. Para saber mais sobre blobs de páginas e de blocos, confira Noções básicas sobre blobs de blocos e blobs de páginasFor more information about page and block blobs, see Understanding Block and Page Blobs.

Armazenamento de Blobs do AzureAzure Blob Storage

Instantâneo do Azure: um instantâneo de um blob do Azure capturado em algum momento.Azure Snapshot: A snapshot of an Azure blob taken at a point in time. Para saber mais, consulte Criando um instantâneo de um blob.For more information, see Creating a Snapshot of a Blob. SQL ServerSQL Server oferece suporte a backups de instantâneos do Azure dos arquivos de banco de dados armazenados no serviço de Armazenamento de Blobs do Microsoft Azure.backup now supports Azure snapshot backups of database files stored in the Microsoft Azure Blob storage service. Para obter mais informações, consulte Backups de instantâneo de arquivo para arquivos de banco de dados no Azure.For more information, see File-Snapshot Backups for Database Files in Azure.

SQL ServerSQL Server ComponentesSQL ServerSQL Server Components

URL: Uma URL especifica um URI (Uniform Resource Identifier) para um arquivo de backup exclusivo.URL: A URL specifies a Uniform Resource Identifier (URI) to a unique backup file. A URL é usada para fornecer o local e o nome do arquivo de backup do SQL ServerSQL Server .The URL is used to provide the location and name of the SQL ServerSQL Server backup file. A URL deve apontar para um blob real, e não apenas para um contêiner.The URL must point to an actual blob, not just a container. Se o blob não existir, ele será criado.If the blob does not exist, it is created. Se um blob existente for especificado, o BACKUP falhará, a não ser que a opção “WITH FORMAT” seja especificada a fim de substituir o arquivo de backup existente no 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.

Este é um valor de URL de exemplo: http[s]://ACCOUNTNAME.blob.core.windows.net/<CONTAINER>/<FILENAME.bak>.Here is a sample URL value: http[s]://ACCOUNTNAME.blob.core.windows.net/<CONTAINER>/<FILENAME.bak>. O HTTPS não é obrigatório, mas é recomendado.HTTPS is not required, but is recommended.

Credencial: Uma credencial do SQL ServerSQL Server é um objeto usado para armazenar as informações de autenticação necessárias para se conectar a um recurso fora do 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. Aqui, os processos de backup e restauração do SQL ServerSQL Server usam a credencial para autenticação no serviço de Armazenamento de Blobs do Microsoft Azure e em seus objetos de contêiner e de blob.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. A Credencial armazena o nome da conta de armazenamento e os valores de chave de acesso da conta de armazenamento, ou a URL do contêiner e seu token de Assinatura de Acesso Compartilhado.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. Após a criação da credencial, a sintaxe das instruções BACKUP/RESTORE determinará o tipo de blob e as credenciais necessárias.Once the credential is created, the syntax of the BACKUP/RESTORE statements determines the type of blob and the credential required.

Para obter um exemplo de como criar uma Assinatura de Acesso Compartilhado, confira exemplos de Criar uma Assinatura de Acesso Compartilhado posteriormente neste tópico, e para criar uma Credencial do SQL ServerSQL Server , confira exemplos de Criar uma credencial posteriormente neste tópico.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.

Para obter informações gerais sobre credenciais, consulte CredenciaisFor general information about credentials, see Credentials

Para saber mais sobre outros exemplos em que as credenciais são usadas, confira Criar um proxy do SQL Server Agent.For information on other examples where credentials are used, see Create a SQL Server Agent Proxy.

LimitaçõesLimitations

  • Não há suporte para backup em armazenamento premium.Backup to premium storage is not supported.

  • O SQL Server limita para 1 TB o tamanho máximo de backup com suporte usando um blob de páginas.SQL Server limits the maximum backup size supported using a page blob to 1 TB. O tamanho máximo de backup com suporte, usando blobs de blocos, é limitado a aproximadamente 200 GB (50.000 blocos * MAXTRANSFERSIZE de 4 MB).The maximum backup size supported using block blobs is limited to approximately 200 GB (50,000 blocks * 4MB MAXTRANSFERSIZE). Suporte à distribuição de blobs de blocos para dar suporte a tamanhos de backup consideravelmente maiores.Block blobs support striping to support substantially larger backup sizes.

  • Você pode emitir as instruções de backup ou restauração usando o TSQL, SMO, cmdlets do PowerShell, assistente de backup ou restauração do SQL Server Management Studio.You can issue backup or restore statements by using TSQL, SMO, PowerShell cmdlets, SQL Server Management Studio Backup or Restore wizard.

  • Não há suporte para a criação de um nome de dispositivo lógico.Creating a logical device name is not supported. Portanto, não há suporte para a adição de uma URL como dispositivo de backup por meio de sp_dumpdevice ou do SQL Server Management Studio.So adding URL as a backup device using sp_dumpdevice or through SQL Server Management Studio is not supported.

  • Não há suporte para a anexação de blobs de backup.Appending to existing backup blobs is not supported. Os backups em um blob existente só podem ser substituídos usando a opção WITH FORMAT .Backups to an existing blob can only be overwritten by using the WITH FORMAT option. No entanto, ao usar backups de instantâneo de arquivo (usando o argumento WITH FILE_SNAPSHOT ), o argumento WITH FORMAT não recebe permissão, a fim de evitar deixar órfãos os instantâneos de arquivos que foram criados com o backup de instantâneo de arquivo original.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.

  • Só há suporte para o backup em vários blobs em uma única operação de backup usando os blobs de bloco e um token de SAS (Assinatura de Acesso Compartilhado) em vez da chave de conta de armazenamento para a Credencial do 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.

  • Não há suporte para especificar BLOCKSIZE para blobs de página.Specifying BLOCKSIZE is not supported for page blobs.

  • Não há suporte para especificar MAXTRANSFERSIZE para blobs de página.Specifying MAXTRANSFERSIZE is not supported page blobs.

  • Não há suporte para a especificação de opções de backupset - RETAINDAYS e EXPIREDATE .Specifying backupset options - RETAINDAYS and EXPIREDATE are not supported.

  • SQL ServerSQL Server tem um limite máximo de 259 caracteres em um nome de dispositivo de backup.has a maximum limit of 259 characters for a backup device name. O BACKUP TO URL consome 36 caracteres para os elementos necessários usados para especificar a URL – 'https://.blob.core.windows.net//.bak ', deixando 223 caracteres para os nomes da conta, do contêiner e do blob juntos.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.

Suporte a instruções de backup/restauraçãoSupport for Backup/Restore Statements

Instrução de backup/restauraçãoBackup/Restore Statement Tem suporteSupported ExceçõesExceptions ComentáriosComments
BACKUPBACKUP SY Há suporte para BLOCKSIZE e MAXTRANSFERSIZE para blobs de bloco.BLOCKSIZE and MAXTRANSFERSIZE are supported for block blobs. Eles não têm suporte em blobs de página.They are not supported for page blobs. BACKUP para um blob de blocos requer uma assinatura de acesso compartilhado salva em uma credencial do SQL Server.BACKUP to a block blob requires a Shared Access Signature saved in a SQL Server credential. BACKUP para um blob de páginas requer que a chave de conta de armazenamento seja salva em uma credencial SQL ServerSQL Server e requer que o argumento WITH CREDENTIAL seja especificado.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 SY Exige a definição de uma credencial do SQL ServerSQL Server e exige a especificação do argumento WITH CREDENTIAL se a credencial SQL ServerSQL Server for definida usando a chave da conta de armazenamento como o segredoRequires 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 SY Exige a definição de uma credencial do SQL ServerSQL Server e exige a especificação do argumento WITH CREDENTIAL se a credencial SQL ServerSQL Server for definida usando a chave da conta de armazenamento como o segredoRequires 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 SY Exige a definição de uma credencial do SQL ServerSQL Server e exige a especificação do argumento WITH CREDENTIAL se a credencial SQL ServerSQL Server for definida usando a chave da conta de armazenamento como o segredoRequires 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 SY Exige a definição de uma credencial do SQL ServerSQL Server e exige a especificação do argumento WITH CREDENTIAL se a credencial SQL ServerSQL Server for definida usando a chave da conta de armazenamento como o segredoRequires 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 SY Exige a definição de uma credencial do SQL ServerSQL Server e exige a especificação do argumento WITH CREDENTIAL se a credencial SQL ServerSQL Server for definida usando a chave da conta de armazenamento como o segredoRequires 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 -

Para obter a sintaxe e informações gerais sobre as instruções de backup, consulte BACKUP (Transact-SQL).For syntax and general information about backup statements, see BACKUP (Transact-SQL).

Para obter a sintaxe e informações gerais sobre as instruções de restauração, consulte RESTORE (Transact-SQL).For syntax and general information about restore statements, see RESTORE (Transact-SQL).

Suporte para argumentos de backupSupport for Backup Arguments

ArgumentoArgument Tem suporteSupported ExceçãoException ComentáriosComments
DATABASEDATABASE SY
LOGLOG SY
TO (URL)TO (URL) SY Diferente de DISK e TAPE, a URL não oferece suporte para a especificação ou criação de um nome lógico.Unlike DISK and TAPE, URL does not support specifying or creating a logical name. Esse argumento é usado para especificar o caminho da URL para o arquivo de backup.This argument is used to specify the URL path for the backup file.
MIRROR TOMIRROR TO SY
Opções WITH:WITH OPTIONS:
CREDENTIALCREDENTIAL SY Só há suporte para WITH CREDENTIAL ao usar a opção BACKUP TO URL para o serviço de Armazenamento de Blobs do Microsoft Azure, e apenas se a credencial SQL ServerSQL Server for definida usando a chave da conta de armazenamento como o segredoWITH 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 SY
ENCRYPTIONENCRYPTION SY Quando o argumento WITH ENCRYPTION é especificado, o backup do instantâneo de arquivo do SQL ServerSQL Server assegura que todo o banco de dados tenha sido criptografado com TDE antes de executar o backup e, em caso afirmativo, criptografa o próprio arquivo de backup do instantâneo do arquivo usando o algoritmo especificado para TDE no banco de dados.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 todos os dados no banco de dados, no banco de dados inteiro, não estiverem criptografados, o backup falhará (por exemplo, o processo de criptografia ainda não estará completo).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 SY
COPY_ONLYCOPY_ONLY SY
COMPRESSION|NO_COMPRESSIONCOMPRESSION|NO_COMPRESSION SY Não há suporte para backup de instantâneo de arquivoNot supported for file-snapshot backup
DESCRIPTIONDESCRIPTION SY
NAMENAME SY
EXPIREDATE | RETAINDAYSEXPIREDATE | RETAINDAYS -
NOINIT | INITNOINIT | INIT - Não é possível anexar aos blobs.Appending to blobs is not possible. Para substituir um backup, use o argumento WITH FORMAT .To overwrite a backup use the WITH FORMAT argument. No entanto, ao usar backups de instantâneo de arquivo (usando o argumento WITH FILE_SNAPSHOT ), o argumento WITH FORMAT não recebe permissão, a fim de evitar deixar órfãos os instantâneos de arquivos que foram criados com o backup original.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 SY Um backup executado em um blob existente falhará, a menos que WITH FORMAT seja especificado.A backup taken to an existing blob fails unless WITH FORMAT is specified. O blob existente será substituído quando WITH FORMAT for especificado.The existing blob is overwritten when WITH FORMAT is specified. No entanto, ao usar backups de instantâneo de arquivo (usando o argumento WITH FILE_SNAPSHOT ), o argumento FORMAT não recebe permissão, a fim de evitar deixar órfãos os instantâneos de arquivos que foram criados com o backup de instantâneo de arquivo original.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. No entanto, ao usar backups de instantâneo de arquivo (usando o argumento WITH FILE_SNAPSHOT ), o argumento WITH FORMAT não recebe permissão, a fim de evitar deixar órfãos os instantâneos de arquivos que foram criados com o backup original.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 SY
MEDIANAMEMEDIANAME SY
BLOCKSIZEBLOCKSIZE SY Sem suporte para blobs de páginas.Not supported for page blob. Com suporte para blobs de blocos.Supported for block blob. Recomendamos BLOCKSIZE=65536 para otimizar o uso dos 50.000 blocos permitidos em um blob de blocos.Recommend BLOCKSIZE=65536 to optimize use of the 50,000 blocks allowed in a block blob.
BUFFERCOUNTBUFFERCOUNT SY
MAXTRANSFERSIZEMAXTRANSFERSIZE SY Sem suporte para blobs de páginas.Not supported for page blob. Com suporte para blobs de blocos.Supported for block blob. O padrão é 1048576.Default is 1048576. O valor pode variar a até 4 MB em incrementos de 65536 bytes.The value can range up to 4 MB in increments of 65536 bytes.
Recomendamos MAXTRANSFERSIZE=4194304 para otimizar o uso dos 50.000 blocos permitidos em um blob de blocos.Recommend MAXTRANSFERSIZE=4194304 to optimize use of the 50,000 blocks allowed in a block blob.
NO_CHECKSUM | CHECKSUMNO_CHECKSUM | CHECKSUM SY
STOP_ON_ERROR | CONTINUE_AFTER_ERRORSTOP_ON_ERROR | CONTINUE_AFTER_ERROR SY
STATSSTATS SY
REWIND | NOREWINDREWIND | NOREWIND -
UNLOAD | NOUNLOADUNLOAD | NOUNLOAD -
NORECOVERY | STANDBYNORECOVERY | STANDBY SY
NO_TRUNCATENO_TRUNCATE SY

Para obter mais informações sobre os argumentos de backup, consulte BACKUP (Transact-SQL).For more information about backup arguments, see BACKUP (Transact-SQL).

Suporte para argumentos de restauraçãoSupport for Restore Arguments

ArgumentoArgument Tem suporteSupported ExceçõesExceptions ComentáriosComments
DATABASEDATABASE SY
LOGLOG SY
FROM (URL)FROM (URL) SY O argumento FROM URL é usado para especificar o caminho da URL do arquivo de backup.The FROM URL argument is used to specify the URL path for the backup file.
WITH Options:WITH Options:
CREDENTIALCREDENTIAL SY Há suporte para WITH CREDENTIAL somente quando a opção RESTORE FROM URL for usada para realizar a restauração no serviço de Armazenamento de Blobs do Microsoft Azure.WITH CREDENTIAL is only supported when using RESTORE FROM URL option to restore from Microsoft Azure Blob storage service.
PARTIALPARTIAL SY
RECOVERY | NORECOVERY | STANDBYRECOVERY | NORECOVERY | STANDBY SY
LOADHISTORYLOADHISTORY SY
MOVEMOVE SY
REPLACEREPLACE SY
RESTARTRESTART SY
RESTRICTED_USERRESTRICTED_USER SY
FILEFILE -
PASSWORDPASSWORD SY
MEDIANAMEMEDIANAME SY
MEDIAPASSWORDMEDIAPASSWORD SY
BLOCKSIZEBLOCKSIZE SY
BUFFERCOUNTBUFFERCOUNT -
MAXTRANSFERSIZEMAXTRANSFERSIZE -
CHECKSUM | NO_CHECKSUMCHECKSUM | NO_CHECKSUM SY
STOP_ON_ERROR | CONTINUE_AFTER_ERRORSTOP_ON_ERROR | CONTINUE_AFTER_ERROR SY
FILESTREAMFILESTREAM SY Não há suporte para backup de instantâneosNot supported for snapshot backup
STATSSTATS SY
REWIND | NOREWINDREWIND | NOREWIND -
UNLOAD | NOUNLOADUNLOAD | NOUNLOAD -
KEEP_REPLICATIONKEEP_REPLICATION SY
KEEP_CDCKEEP_CDC SY
ENABLE_BROKER | ERROR_BROKER_CONVERSATIONS | NEW_BROKERENABLE_BROKER | ERROR_BROKER_CONVERSATIONS | NEW_BROKER SY
STOPAT | STOPATMARK | STOPBEFOREMARKSTOPAT | STOPATMARK | STOPBEFOREMARK SY

Para obter mais informações sobre os argumentos de restauração, consulte Argumentos de RESTORE (Transact-SQL).For more information about Restore arguments, see RESTORE Arguments (Transact-SQL).

Usando a tarefa de backup no SQL Server Management StudioUsing Back Up Task in SQL Server Management Studio

Você pode fazer o backup de um banco de dados para a URL por meio da tarefa de Backup no SQL Server Management Studio usando uma credencial do 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.

Observação

Para criar um backup de instantâneo de arquivo do SQL ServerSQL Server substituir um conjunto de mídias existente, é necessário usar o Transact-SQL, Powershell ou C# em vez da tarefa de Backup no 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.

As etapas a seguir descrevem as alterações feitas na tarefa de Backup de Banco de Dados no SQL Server Management Studio para permitir o backup para o armazenamento do 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. No Pesquisador de Objetos, conecte-se a uma instância do Mecanismo de Banco de Dados do SQL Server e expanda-a.In Object Explorer, connect to an instance of the SQL Server Database Engine and then expand that instance.

  2. Expanda Bancos de Dados, clique com o botão direito do mouse no banco de dados desejado, aponte para Tarefase clique em Fazer backup... .Expand Databases, right-click the desired database, point to Tasks, and then click Back Up....

  3. Na página Geral , na seção Destino , a opção URL está disponível na lista suspensa Fazer backup em: .On the General page in the Destination section the URL option is available in the Back up to: drop-down list. A opção URL é usada para criar um backup no armazenamento do Microsoft Azure.The URL option is used to create a backup to Microsoft Azure storage. Clique em Adicionar e a caixa de diálogo Selecionar Destino do Backup será aberta:Click Add and the Select Backup Destination dialog box will open:

    1. Contêiner de armazenamento do Azure: O nome do contêiner de armazenamento do Microsoft Azure no qual os arquivos de backup serão armazenados.Azure storage container: The name of the Microsoft Azure storage container to store the backup files. Selecione um contêiner existente na lista suspensa ou digite manualmente o contêiner.Select an existing container from the drop-down list or manually enter the container.

    2. Política de Acesso Compartilhado: Insira a assinatura de acesso compartilhado de um contêiner inserido manualmente.Shared Access Policy: Enter the shared access signature for a manually entered container. Este campo não estará disponível se um contêiner existente tiver sido escolhido.This field is not available if an existing container was chosen.

    3. Arquivo de Backup: Nome do arquivo de backup.Backup File: Name of the backup file.

    4. Novo Contêiner: Usado para registrar um contêiner existente para o qual não existe uma assinatura de acesso compartilhado.New Container: Used to register an existing container that you do not have a shared access signature for. Consulte Connect to a Microsoft Azure Subscription(Conectar-se a uma assinatura do Microsoft Azure).See Connect to a Microsoft Azure Subscription.

Observação

Adicionar dá suporte a vários arquivos de backup e os contêineres de armazenamento para um único conjunto de mídias.Add supports multiple backup files and storage containers for a single media set.

Observação

Se você encontrar algo desatualizado ou incorreto neste artigo, como uma etapa ou um exemplo de código, informe-nos.If you find something outdated or incorrect in this article, such as on a step or in a code example, please tell us. Você pode clicar no botão Esta página na seção Comentários na parte inferior desta página.You can click the This page button in the Feedback section at the bottom of this page. Ou melhor, se você souber qual é a correção, clique no ícone Editar-lápis na parte superior desta página e clique no ícone de lápis na página do GitHub.Or better, if you know the fix, you can click the Edit-pencil icon at the top of this page, and then click the pencil icon on the GitHub page. Obrigado.Thank you!

Quando você selecionar URL como destino, determinadas opções na página Opções de Mídia serão desabilitadas.When you select URL as the destination, certain options in the Media Options page are disabled. Os tópicos a seguir têm mais informações na caixa de diálogo Backup de Banco de Dados:The following topics have more information on the Back Up Database dialog:

Fazer backup do banco de dados (página Geral)Back Up Database (General Page)

Fazer backup do banco de dados (página Opções de Mídia)Back Up Database (Media Options Page)

Fazer backup do banco de dados (página Opções de Backup)Back Up Database (Backup Options Page)

Criar credencial - autenticar no Armazenamento do AzureCreate Credential - Authenticate to Azure Storage

Backup do SQL Server para a URL usando o Assistente de Plano de ManutençãoSQL Server Backup to URL Using Maintenance Plan Wizard

Assim como a tarefa de backup descrita anteriormente, o Assistente de Plano de Manutenção no SQL Server Management Studio inclui a URL como uma das opções de destino, e outros objetos de suporte necessários ao backup no armazenamento do Windows Azure, como a Credencial 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. Para saber mais, confira a seção Definir tarefas de Backup em Using Maintenance Plan Wizard.It has the same For more information, see the Define Backup Tasks section in Using Maintenance Plan Wizard.

Observação

Para criar um conjunto de backups distribuído, um backup de instantâneo de arquivo do SQL ServerSQL Server ou uma credencial do SQL usando o token de Acesso Compartilhado, é necessário usar Transact-SQL, Powershell ou C# em vez da tarefa de Backup no Assistente de Plano de Manutenção.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.

Restaurando por meio do armazenamento do Microsoft Azure usando o SQL Server Management StudioRestoring from Microsoft Azure storage Using SQL Server Management Studio

A tarefa Restaurar Banco de Dados inclui URL como um dispositivo do qual restaurar.The Restore Database task includes URL as a device to restore from. As etapas a seguir descrevem como usar a tarefa Restaurar para restaurar do serviço de Armazenamento de Blobs do Microsoft Azure:The following steps describe using the Restore task to restore from the Microsoft Azure Blob storage service:

  1. Clique com o botão direito do mouse em Bancos de Dados e selecione Restaurar Banco de Dados... .Right-click Databases and select Restore Database....

  2. Na página Geral , selecione Dispositivo na seção Fonte .On the General page, select Device under the Source section.

  3. Clique no botão Procurar (...) para abrir a caixa de diálogo Selecione dispositivos de backup .Click the browse (...) button to open the Select backup devices dialog box.

  4. Selecione URL na lista suspensa Tipo de mídia de backup: .Select URL from the Backup media type: drop-down list. Clique em Adicionar para abrir a caixa de diálogo Selecione um Local do Arquivo de Backup .Click Add to open the Select a Backup File Location dialog box.

    1. Contêiner de armazenamento do Azure: o nome totalmente qualificado do contêiner de Armazenamento do Microsoft Azure que contém os arquivos de backup.Azure storage container: The fully qualified name of the Microsoft Azure storage container which contains the backup files. Selecione um contêiner existente na lista suspensa ou digite manualmente o nome totalmente qualificado do contêiner.Select an existing container from the drop-down list or manually enter the fully qualified container name.

    2. Assinatura de Acesso Compartilhado: usada para inserir a assinatura de acesso compartilhado para o contêiner designado.Shared Access Signature: Used to enter the shared access signature for the designated container.

    3. Adicionar: Usado para registrar um contêiner existente para o qual não existe uma assinatura de acesso compartilhado.Add: Used to register an existing container that you do not have a shared access signature for. Consulte Connect to a Microsoft Azure Subscription(Conectar-se a uma assinatura do Microsoft Azure).See Connect to a Microsoft Azure Subscription.

    4. OK: o SQL Server se conecta ao Armazenamento do Microsoft Azure usando as informações da Credencial do SQL fornecidas e abre a caixa de diálogo Localizar Arquivo de Backup no 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. Os arquivos de backup que residem no contêiner de armazenamento são exibidos nessa página.The backup files residing in the storage container are displayed on this page. Selecione o arquivo que deseja usar para restaurar e clique em OK.Select the file you want to use to restore and click OK. Isso o levará de volta à caixa de diálogo Selecione Dispositivos de Backup . Se você clicar em OK nessa caixa de diálogo, será levado de volta à caixa de diálogo Restaurar , na qual poderá concluir a restauração.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.

    Restaurar banco de dados (página Geral)Restore Database (General Page)

    Restaurar banco de dados (página Arquivos)Restore Database (Files Page)

    Restaurar banco de dados (página Opções)Restore Database (Options Page)

Exemplos de códigoCode Examples

Esta seção contém os seguintes exemplos:This section contains the following examples.

Observação

Para obter um tutorial sobre como usar o SQL Server 2016 com o serviço de armazenamento de BLOBs do Microsoft Azure, confira Tutorial: Como usar o serviço de Armazenamento de Blobs do Microsoft Azure com os bancos de dados do 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

Criar uma Assinatura de Acesso CompartilhadoCreate a Shared Access Signature

O exemplo a seguir cria Assinaturas de Acesso Compartilhado que podem ser usadas para criar uma SQL ServerSQL Server Credencial em um contêiner recém-criado.The following example creates Shared Access Signatures that can be used to create a SQL ServerSQL Server Credential on a newly created container. O script cria uma Assinatura de Acesso Compartilhado que está associada a uma Política de Acesso Armazenado.The script creates a Shared Access Signature that is associated with a Stored Access Policy. Para obter mais informações, confira Assinaturas de Acesso Compartilhado, parte 1: Noções básicas sobre o modelo SAS.For more information, see Shared Access Signatures, Part 1: Understanding the SAS Model. O script também grava o comando T-SQL necessário para criar a credencial no SQL Server.The script also writes the T-SQL command required to create the credential on SQL Server.

Observação

O exemplo exige o Microsoft Azure PowerShell.The example requires Microsoft Azure Powershell. Para obter informações sobre como instalar e usar o Azure PowerShell, consulte Como instalar e configurar o Azure PowerShell.For information about installing and using Azure Powershell, see How to install and configure Azure PowerShell.
Esses scripts foram verificados com o Azure PowerShell 5.1.15063.These scripts were verified using Azure PowerShell 5.1.15063.

Assinatura de Acesso Compartilhado que está associada uma Política de Acesso ArmazenadaShared 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   
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 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


# 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  

Depois de executar o script com êxito, copie o comando CREATE CREDENTIAL para uma ferramenta de consulta, conecte-se a uma instância do SQL Server e execute o comando para criar a credencial com a Assinatura de Acesso Compartilhado.After successfully running the script, copy the CREATE CREDENTIAL command to a query tool, connect to an instancance of SQL Server and run the command to create the credential with the Shared Access Signature.

Criar uma credencialCreate a Credential

Os exemplos a seguir criam credenciais do SQL ServerSQL Server para autenticação no serviço de Armazenamento de Blobs do Microsoft Azure.The following examples create SQL ServerSQL Server credentials for authentication to the Microsoft Azure Blob storage service. Execute uma delas.Do one of the following.

  1. Usando a Assinatura de Acesso CompartilhadoUsing Shared Access Signature

Se você executou o script para criar a Assinatura de Acesso Compartilhado acima, copie o CREATE CREDENTIAL para um editor de consultas conectado à instância do SQL Server e execute o comando.If you ran the script to create the Shared Access Signature above, copy the CREATE CREDENTIAL to a query editor connected to your instance of SQL Server and run the command.

O T-SQL a seguir é um exemplo que cria a credencial para usar uma Assinatura de Acesso Compartilhado.The following T-SQL is an example that creates the credential to use a 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>';  
  1. Usando a chave de acesso e a identidade da conta de armazenamentoUsing storage account identity and access key
IF NOT EXISTS  
(SELECT * FROM sys.credentials   
WHERE name = '<mycredentialname>')  
CREATE CREDENTIAL [<mycredentialname>] WITH IDENTITY = '<mystorageaccountname>'  
,SECRET = '<mystorageaccountaccesskey>';  

Executar um backup completo do banco de dados.Perform a full database backup

Os exemplos a seguir executam um backup completo do banco de dados AdventureWorks2016 no serviço de Armazenamento de Blobs do Microsoft Azure.The following examples perform a full database backup of the AdventureWorks2016 database to the Microsoft Azure Blob storage service. Siga um destes procedimentos:Do one of the following:

  1. Para URL usando uma Assinatura de Acesso CompartilhadoTo URL using Shared Access Signature
BACKUP DATABASE AdventureWorks2016   
TO URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2016.bak';  
GO   
  1. Para URL usando a chave de acesso e a identidade da conta de armazenamentoTo 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   

Restauração pontual usando STOPATRestoring to a point-in-time using STOPAT

O exemplo a seguir restaura um exemplo de banco de dados AdventureWorks2016 para seu estado em um determinado momento, e mostra uma operação de restauração.The following example restores the AdventureWorks2016 sample database to its state at a point in time, and shows a restore operation.

  1. De URL usando uma Assinatura de Acesso CompartilhadoFrom 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  

Consulte TambémSee Also

Práticas recomendadas e solução de problemas de backup do SQL Server para URL SQL Server Backup to URL Best Practices and Troubleshooting
Fazer backup e restaurar bancos de dados do sistema (SQL Server) Back Up and Restore of System Databases (SQL Server)
Tutorial: Como usar o serviço de Armazenamento de Blobs do Microsoft Azure com os bancos de dados do SQL Server 2016Tutorial: Using the Microsoft Azure Blob storage service with SQL Server 2016 databases