Compartilhar via


SQL Server backup na URL para Armazenamento de Blobs do Azure

Applies to:SQL ServerInstância Gerenciada de SQL do Azure

Este artigo apresenta os conceitos, os requisitos e os componentes necessários para usar Armazenamento de Blobs do Azure como destino de backup. A funcionalidade de backup e restauração são iguais ou semelhantes ao usar DISK ou TAPE, com algumas diferenças. Essas diferenças e alguns exemplos de código estão incluídos neste artigo.

Tip

A partir do SQL Server 2025 (17.x), você pode fazer backup da URL com a identidade gerenciada. Revise Backup para URL com identidade gerenciada (versão prévia) - SQL Server habilitado por Azure Arc.

Overview

SQL Server 2012 Service Pack 1 CU2 e SQL Server 2014 introduziram a capacidade de fazer backup diretamente para uma URL que aponta para o Armazenamento de Blobs do Azure, usando a sintaxe T-SQL familiar para gravar backups com segurança no armazenamento do Azure. SQL Server 2016 (13.x) introduziu File-Snapshot Backups para Arquivos de Banco de Dados em Azure e segurança por meio de chaves SAS (assinatura de acesso compartilhado), uma maneira segura e simples de autenticar certificados para Armazenamento do Azure política de segurança.

É importante entender os componentes e a interação entre eles para executar um backup ou restauração de Armazenamento de Blobs do Azure.

A criação de uma conta Armazenamento do Azure em sua assinatura Azure é a primeira etapa desse processo. Essa conta de armazenamento é uma conta administrativa que tem permissões administrativas completas em todos os contêineres e objetos criados com a conta. SQL Server pode usar o nome da conta de armazenamento Azure e seu valor de chave de acesso para autenticar e gravar e ler blobs para Armazenamento de Blobs do Azure ou usar um token de Assinatura de Acesso Compartilhado gerado em contêineres específicos que lhe concedem direitos de leitura e gravação. Para obter mais informações sobre Contas de Armazenamento do Azure, consulte About Contas de Armazenamento do Azure e para obter mais informações sobre assinaturas de acesso compartilhado, consulte Shared Access Signatures, Parte 1: Noções básicas sobre o modelo SAS. O SQL Server Credential armazena essas informações de autenticação e é usado durante as operações de backup ou restauração.

Armazenamento do Azure e armazenamento compatível com S3

SQL Server 2022 (16.x) apresenta a capacidade de armazenar backups em armazenamento compatível com S3, com funcionalidade de backup e restauração conceitualmente semelhante à de utilizar o Backup para URL usando o Armazenamento de Blobs do Azure como tipo de dispositivo de backup. SQL Server 2022 (16.x) estende a sintaxe BACKUP/RESTORE TO/FROM URL adicionando suporte para um novo conector S3 usando a API REST.

Este artigo contém informações sobre como usar o Backup para URL para Armazenamento de Blobs do Azure. Para saber mais sobre como usar o Backup na URL para armazenamento compatível com S3, consulte SQL Server fazer backup na URL para armazenamento de objetos compatíveis com S3.

Backup para Armazenamento do Azure block blob versus page blob

Há dois tipos de blobs que podem ser armazenados em Armazenamento de Blobs do Azure: blobs de blocos e páginas. Para SQL Server 2016 e posterior, o blob de blocos é preferencial.

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.

O backup para o Azure Blob de blocos só está disponível no SQL Server 2016 ou em versões posteriores para backup no Armazenamento de Blobs do Azure. Faça backup para blob de blocos em vez de blob de páginas ao executar o SQL Server 2016 ou posterior.

Os motivos principais são:

  • A Assinatura de Acesso Compartilhado é uma maneira mais segura de autorizar o acesso ao blob em comparação à chave de armazenamento.
  • Você pode fazer backup em vários blobs de blocos para obter um melhor desempenho de backup e restauração e dar suporte a um backup de banco de dados maior.
  • Blob de blocos é mais barato que blob de páginas.
  • Os clientes que precisarem fazer backup em blobs de páginas por meio de um servidor proxy deverão usar backuptourl.exe.

Fazer um backup de um banco de dados grande para Armazenamento de Blobs do Azure está sujeito às limitações listadas em Instância Gerenciada de SQL do Azure diferenças, limitações e problemas conhecidos do T-SQL.

Se o banco de dados for muito grande, escolha uma das seguintes soluções:

  • Usar a compactação de backup ou
  • Fazer backup em vários blobs de blocos

Suporte para Linux, contêineres e Instância Gerenciada de SQL habilitado pelo Azure Arc

Se a instância SQL Server estiver hospedada no Linux, incluindo:

  • Sistema operacional autônomo
  • Contêineres
  • Instância Gerenciada de SQL habilitado pelo Azure Arc
  • Qualquer outro ambiente baseado em Linux

O único backup com suporte na URL para Armazenamento de Blobs do Azure é bloquear blobs usando a Assinatura de Acesso Compartilhado.

Armazenamento de Blobs do Azure (Armazenamento de Blobs do Azure)

Conta de armazenamento: A conta de armazenamento é o ponto de partida para todos os serviços de armazenamento. Para acessar Armazenamento de Blobs do Azure, primeiro crie uma conta de armazenamento Azure. Para saber mais, confira Criar uma conta de armazenamento.

Recipiente: Um contêiner fornece um agrupamento de um conjunto de blobs e pode armazenar um número ilimitado de blobs. Para gravar um backup SQL Server em Armazenamento de Blobs do Azure, você deve ter pelo menos o contêiner raiz criado. 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.

BLOB: Um arquivo de qualquer tipo e tamanho. Há dois tipos de blobs que podem ser armazenados em Armazenamento de Blobs do Azure: blobs de blocos e páginas. SQL Server backup pode usar qualquer tipo de blob dependendo da sintaxe de Transact-SQL usada. O endereço dos blobs têm o seguinte formato de URL: https://<conta de armazenamento>.blob.core.windows.net/<contêiner>/<blob>. Para obter mais informações sobre Armazenamento de Blobs do Azure, consulte Introduction to Armazenamento de Blobs do Azure. Para saber mais sobre blobs de páginas e de blocos, confira Noções básicas sobre blobs de blocos e blobs de páginas

Diagrama de contas Armazenamento de Blobs do Azure, contêineres e blobs.

Azure Snapshot: Uma captura instantânea de um blob do Azure realizada em um determinado momento. Para saber mais, consulte Criando um instantâneo de um blob. SQL Server backup agora dá suporte a backups de instantâneos do Azure de arquivos de banco de dados armazenados no Armazenamento de Blobs do Azure. Para obter mais informações, consulte File-Snapshot Backups para arquivos de banco de dados em Azure.

componentes SQL Server

URL: Uma URL especifica um URI (Uniform Resource Identifier) para um arquivo de backup exclusivo. A URL é usada para fornecer o local e o nome do arquivo de backup SQL Server. A URL deve apontar para um blob real, e não apenas para um contêiner. Se o blob não existir, ele será criado. Se um blob existente for especificado, BACKUP falhará, a menos que a opção WITH FORMAT seja especificada para substituir o arquivo de backup existente no blob.

Aqui está um valor de URL de exemplo: https://ACCOUNTNAME.blob.core.windows.net/<CONTAINER>/FILENAME.bak.

Note

Não há suporte para backup na URL usando HTTP.

Credential: Uma credencial SQL Server é um objeto usado para armazenar informações de autenticação necessárias para se conectar a um recurso fora de SQL Server. Aqui, os processos de backup e restauração do SQL Server usam credenciais para autenticar em Armazenamento de Blobs do Azure e seus objetos blob e de contêiner. 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. Depois que a credencial é criada, a sintaxe das BACKUP/RESTORE instruções determina o tipo de blob e a credencial necessária.

Para obter um exemplo sobre como criar uma Assinatura de Acesso Compartilhado, consulte Criar uma Assinatura de Acesso Compartilhado exemplos posteriormente neste artigo e para criar uma Credencial SQL Server, consulte Criar uma credencial exemplos posteriormente neste artigo.

Para obter mais informações sobre credenciais, consulte Credentials (Mecanismo de Banco de Dados).

Para obter informações sobre outros exemplos em que as credenciais são usadas, consulte Criar um Proxy SQL Server Agent.

Azure suporte ao armazenamento imutável

SQL Server 2025 (17.x) apresenta suporte para Azure armazenamento imutável, que protege contra ataques de ransomware. Os arquivos gravados no armazenamento imutável não podem ser modificados ou excluídos, conforme definido pela imutabilidade.

Normalmente, SQL Server backups são criados em duas etapas. Inicialmente, o .bak arquivo de backup é criado com zeros e, em seguida, o arquivo é atualizado com dados. Como a modificação de arquivo no armazenamento imutável não é permitida depois que o arquivo é gravado e confirmado, o processo de backup agora ignora a etapa inicial para criar o arquivo de backup com zeros. Em vez disso, todo o backup é criado em uma única etapa quando gravado em blobs de blocos.

Azure armazenamento fornece dois tipos de imutabilidade, nível de contêiner e nível de versão. Atualmente, há suporte apenas para o armazenamento imutável no nível do contêiner.

Para usar o armazenamento imutável com o backup do SQL Server 2025 (17.x) para URL, siga estas etapas:

  1. Configure a imutabilidade do contêiner de armazenamento do seu Azure.

  2. Emita o BACKUP para fazer backup do banco de dados no contêiner de armazenamento Azure. Se você usar a opção WITH FORMAT no armazenamento imutável e um backup já existir com o mesmo nome, você receberá um erro e o backup falhará.

    BACKUP DATABASE [<Database>] TO URL = '<url>';
    

Segurança para Armazenamento de Blobs do Azure

Veja a seguir considerações e requisitos de segurança ao fazer backup ou restauração de Armazenamento de Blobs do Azure.

  • Ao criar um contêiner para Armazenamento de Blobs do Azure, recomendamos que você defina o acesso a private. Definir o acesso a privado restringe o acesso a usuários ou contas capazes de fornecer as informações necessárias para autenticar na conta Azure.

    Important

    SQL Server requer que um nome de conta Azure e a autenticação de chave de acesso ou um token de acesso e assinatura de acesso compartilhado sejam armazenados em uma credencial SQL Server. Essas informações são usadas para autenticar na conta Azure ao executar operações de backup ou restauração.

    Warning

    Armazenamento do Azure dá suporte a desabilitar a autorização de Chave Compartilhada para uma conta de armazenamento. Se a autorização de Chave Compartilhada estiver desabilitada, o Backup do SQL Server para URL não funcionará.

  • A conta de usuário usada para emitir BACKUP ou RESTORE comandos deve estar na função de banco de dados operador db_backup com permissões de Alterar qualquer credencial.

Limitações de backup/restauração para Armazenamento de Blobs do Azure

  • SQL Server limita o tamanho máximo de backup suportado por um blob de página a 1 TB. O tamanho máximo de backup suportado usando blobs de blocos é limitado a aproximadamente 195,3 GB (50.000 blocos * 4 MB MAXTRANSFERSIZE). Blobs de bloco oferecem suporte a definição de faixas para compatibilidade com tamanhos de backup substancialmente maiores: o limite é de no máximo 64 URLs, o que resulta na seguinte fórmula: 64 stripes * 50,000 blocks * 4MB maxtransfersize = 12.8 TB.

    Important

    Embora o tamanho máximo de backup suportado por um único blob de blocos seja de aproximadamente 195,3 GB, é possível o SQL Server conseguir gravar em tamanhos menores de bloco, o que pode levar o SQL Server a atingir o limite de 50.000 blocos, antes que todo o backup seja transferido. Distribua backups (mesmo se eles forem menores que 200 GB) para evitar o limite de bloco, especialmente se você usar backups diferenciais ou não compactados.

  • Os backups de log de transações ignoram o usuário especificado MAXTRANSFERSIZE ao fazer backup em vários arquivos de backup. Em vez disso, 64KB serão usados se mais de um arquivo for especificado, independentemente do MAXTRANSFERSIZE valor no comando de backup. Portanto, o tamanho máximo de um backup de log de transações para URL é de aproximadamente 195,3 GB (50.000 blocos * 4 MB MAXTRANSFERSIZE * 1 arquivo OU 50.000 blocos * 64 KB * 64 arquivos). A compactação pode permitir que um log de transações maior seja feito backup, mas as proporções de compactação variarão.

  • Você pode emitir instruções de backup ou restauração usando Transact-SQL, SMO, cmdlets do PowerShell ou o assistente de Backup ou Restauração do SQL Server Management Studio.

  • Ao fazer backup em uma conta Armazenamento do Azure, SQL Server dá suporte apenas à autenticação com tokens SAS (Assinatura de Acesso Compartilhado) ou chaves de conta de armazenamento. Todos os outros métodos de autenticação, incluindo autenticação com Microsoft Entra ID (formerly Azure Active Directory), não têm suporte.

  • Não há suporte para a criação de um nome de dispositivo lógico. Portanto, não há suporte para adicionar URL como um dispositivo de backup usando sp_dumpdevice ou por meio de SQL Server Management Studio.

  • Não há suporte para acrescentar a blobs de backup existentes. Os backups em um blob existente só podem ser substituídos usando a opção WITH FORMAT. 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.

  • 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.

  • Não há suporte para a especificação BLOCKSIZE de blobs de páginas.

  • A especificação de MAXTRANSFERSIZE não é suportada para blobs de página.

  • ** Especificar opções do conjunto de backup - RETAINDAYS e EXPIREDATE não são suportados.

  • SQL Server tem um limite máximo de 259 caracteres para um nome de dispositivo de backup. O BACKUP TO URL consome 36 caracteres para os elementos necessários usados para especificar a URL https://.blob.core.windows.net//.bak, restando 223 caracteres para os nomes de conta, contêiner e blob juntos.

  • SQL Server 2019 (15.x) e versões anteriores têm um limite de 256 caracteres para tokens SAS (Assinatura de Acesso Compartilhado), o que limita o tipo de tokens que podem ser usados (por exemplo, tokens de Chave de Delegação de Usuário não têm suporte).

  • Se o servidor acessar Azure por meio de um servidor proxy, você deverá usar o sinalizador de rastreamento 1819 e definir a configuração de proxy WinHTTP por meio de um dos seguintes métodos:

    • O utilitário proxycfg.exe em Windows XP ou Windows Server 2003 e anteriores.
    • O utilitário netsh.exe em Windows Vista e Windows Server 2008 ou posterior.
  • Armazenamento imutável para Armazenamento de Blobs do Azure não tem suporte antes do SQL Server 2025. Defina a política de Armazenamento Imutável como false.

  • Para obter suporte no SQL Server 2025 e versões posteriores, consulte Azure suporte de armazenamento imutável.

    • Azure armazenamento fornece dois tipos de imutabilidade, nível de contêiner e nível de versão. Atualmente, há suporte apenas para o armazenamento imutável no nível do contêiner.
  • Não é compatível o backup para URL no armazenamento premium.

Argumentos e declarações com suporte no Armazenamento de Blobs do Azure

Suporte para instruções de backup/restauração no Armazenamento de Blobs do Azure

Instrução de Backup/Restauração Supported Exceptions Comments
BACKUP Yes BLOCKSIZE e MAXTRANSFERSIZE têm suporte para blobs de blocos. Eles não têm suporte para blobs de página. BACKUP em um blob de blocos requer uma Assinatura de Acesso Compartilhado salva em uma credencial de SQL Server. BACKUP para o blob de páginas requer a chave da conta de armazenamento salva em uma credencial SQL Server e requer que o argumento WITH CREDENTIAL seja especificado.
RESTORE Yes Requer que uma credencial SQL Server seja definida e requer que o argumento WITH CREDENTIAL seja especificado se a credencial SQL Server for definida usando a chave da conta de armazenamento como o segredo
RESTORE FILELISTONLY Yes Requer que uma credencial SQL Server seja definida e requer que o argumento WITH CREDENTIAL seja especificado se a credencial SQL Server for definida usando a chave da conta de armazenamento como o segredo
RESTORE HEADERONLY Yes Requer que uma credencial SQL Server seja definida e requer que o argumento WITH CREDENTIAL seja especificado se a credencial SQL Server for definida usando a chave da conta de armazenamento como o segredo
RESTORE LABELONLY Yes Requer que uma credencial SQL Server seja definida e requer que o argumento WITH CREDENTIAL seja especificado se a credencial SQL Server for definida usando a chave da conta de armazenamento como o segredo
RESTORE VERIFYONLY Yes Requer que uma credencial SQL Server seja definida e requer que o argumento WITH CREDENTIAL seja especificado se a credencial SQL Server for definida usando a chave da conta de armazenamento como o segredo
RESTORE REWINDONLY No

Para obter sintaxe e informações gerais sobre instruções de backup, consulte BACKUP.

Para obter sintaxe e informações gerais sobre instruções de restauração, consulte Instruções RESTORE.

Suporte para argumentos de backup no Armazenamento de Blobs do Azure

Argument Supported Exception Comments
DATABASE Yes
LOG Yes
TO (URL) Yes Ao contrário DISK e TAPE, a URL não dá suporte à especificação ou à criação de um nome lógico. Esse argumento é usado para especificar o caminho da URL para o arquivo de backup.
MIRROR TO Yes
WITH Opções:
CREDENTIAL Yes WITH CREDENTIAL só tem suporte ao usar BACKUP TO URL opção para fazer backup até Armazenamento de Blobs do Azure e somente se a credencial SQL Server for definida usando a chave da conta de armazenamento como o segredo
FILE_SNAPSHOT Yes
ENCRYPTION Yes Quando o argumento WITH ENCRYPTION for especificado, SQL Server File-Snapshot Backup garante que todo o banco de dados foi criptografado por TDE antes de fazer o backup e, nesse caso, criptografa o próprio arquivo de backup de instantâneo de arquivo usando o algoritmo especificado para TDE no banco de dados. Se todos os dados no banco de dados em todo o banco de dados não estiverem criptografados, o backup falhará (por exemplo, o processo de criptografia ainda não foi concluído).
DIFFERENTIAL Yes
COPY_ONLY Yes
COMPRESSION|NO_COMPRESSION Yes Não há suporte para backup de instantâneo de arquivo
DESCRIPTION Yes
NAME Yes
EXPIREDATE | RETAINDAYS No
NOINIT | INIT No Não é possível anexar aos blobs. Para substituir um backup, use o argumento WITH FORMAT. 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.
NOSKIP | SKIP No
NOFORMAT | FORMAT Yes Um backup feito em um blob existente falha, a menos que WITH FORMAT seja especificado. O blob existente será substituído quando WITH FORMAT for especificado. 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. 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.
MEDIADESCRIPTION Yes
MEDIANAME Yes
BLOCKSIZE Yes Sem suporte para blobs de páginas. Com suporte para blobs de blocos. É recomendável BLOCKSIZE=65536 otimizar o uso dos 50.000 blocos permitidos em um blob de blocos.
BUFFERCOUNT Yes
MAXTRANSFERSIZE Yes Sem suporte para blobs de páginas. Com suporte para blobs de blocos. O padrão é 1048576. O valor pode variar até 4 MB em incrementos de 65.536 bytes.

É recomendável MAXTRANSFERSIZE=4194304 otimizar o uso dos 50.000 blocos permitidos em um blob de blocos.
NO_CHECKSUM | CHECKSUM Yes
STOP_ON_ERROR | CONTINUE_AFTER_ERROR Yes
STATS Yes
REWIND | NOREWIND No
UNLOAD | NOUNLOAD No
NORECOVERY | STANDBY Yes
NO_TRUNCATE Yes

Para obter mais informações sobre argumentos de backup, consulte BACKUP.

Suporte para argumentos de restauração no Armazenamento de Blobs do Azure

Argument Supported Exceptions Comments
DATABASE Yes
LOG Yes
FROM (URL) Yes O FROM URL argumento é usado para especificar o caminho da URL para o arquivo de backup.
WITH Opções:
CREDENTIAL Yes WITH CREDENTIAL só tem suporte ao usar a opção RESTORE FROM URL para restaurar de Armazenamento de Blobs do Azure.
PARTIAL Yes
RECOVERY | NORECOVERY | STANDBY Yes
LOADHISTORY Yes
MOVE Yes
REPLACE Yes
RESTART Yes
RESTRICTED_USER Yes
FILE No
PASSWORD Yes
MEDIANAME Yes
MEDIAPASSWORD Yes
BLOCKSIZE Yes
BUFFERCOUNT No
MAXTRANSFERSIZE No
CHECKSUM | NO_CHECKSUM Yes
STOP_ON_ERROR | CONTINUE_AFTER_ERROR Yes
FILESTREAM Yes Não há suporte para backup de instantâneos
STATS Yes
REWIND | NOREWIND No
UNLOAD | NOUNLOAD No
KEEP_REPLICATION Yes
KEEP_CDC Yes
ENABLE_BROKER | ERROR_BROKER_CONVERSATIONS | NEW_BROKER Yes
STOPAT | STOPATMARK | STOPBEFOREMARK Yes

Para obter mais informações sobre os argumentos de restauração, consulte Instruções RESTORE - Argumentos.

Fazer backup com o SSMS

Você pode fazer backup de um banco de dados para a URL por meio da tarefa Backup em SQL Server Management Studio usando uma credencial SQL Server.

Note

Para criar um backup de instantâneo de arquivo SQL Server ou substituir um conjunto de mídia existente, você deve usar Transact-SQL, PowerShell ou C# em vez de usar a tarefa de Backup no SQL Server Management Studio.

As etapas a seguir descrevem as alterações feitas na tarefa Backup do Banco de Dados no SQL Server Management Studio para permitir o backup para Azure armazenamento:

  1. Em Pesquisador de Objetos, conecte-se a uma instância do Mecanismo de Banco de Dados do SQL Server e expanda essa instância.

  2. Expanda Bancos de Dados, clique com o botão direito do mouse no banco de dados desejado, aponte para Tarefas e selecione Fazer Backup....

  3. Na página Geral da seção Destino, a opção URL está disponível na lista suspensa Fazer backup para: A opção URL é usada para criar um backup para Azure armazenamento. Selecione Adicionar e a caixa de diálogo Selecionar Destino de Backup é aberta:

    1. Azure contêiner de armazenamento: o nome do contêiner de armazenamento Azure para armazenar os arquivos de backup. Selecione um contêiner existente na lista suspensa ou insira manualmente o contêiner.

    2. Política de Acesso Compartilhado: Insira a Assinatura de Acesso Compartilhado para um contêiner inserido manualmente. Esse campo não estará disponível se um contêiner existente tiver sido escolhido.

    3. Arquivo de backup: Nome do arquivo de backup.

    4. Novo contêiner: Usado para registrar um contêiner existente para o qual você não tem uma Assinatura de Acesso Compartilhado. Consulte Conectar a uma assinatura do Microsoft Azure (Backup para URL).

Note

Adicionar dá suporte a vários arquivos de backup e contêineres de armazenamento para um único conjunto de mídias.

Quando você seleciona a URL como destino, determinadas opções na página Opções de Mídia são desabilitadas. Os seguinte artigos têm mais informações sobre a caixa de diálogo Backup de Banco de Dados:

Fazer backup com o plano de manutenção

Semelhante à tarefa de backup descrita anteriormente, o Assistente de Plano de Manutenção no SQL Server Management Studio inclui URL como uma das opções de destino e outros objetos de suporte necessários para fazer backup para o armazenamento do Azure, como a Credencial do SQL Server. Para saber mais, confira a seção Definir tarefas de Backup em Using Maintenance Plan Wizard.

Note

Para criar um conjunto de backup distribuído, um backup de instantâneo de arquivo do SQL Server ou uma credencial SQL usando o token de Acesso Compartilhado, você deve usar Transact-SQL, PowerShell ou C# em vez da tarefa de backup no Assistente de Plano de Manutenção.

Restaurar com o SSMS

A tarefa Restaurar Banco de Dados inclui como dispositivo do qual restaurar a URL. As etapas a seguir descrevem como usar a tarefa Restaurar para restaurar de Armazenamento de Blobs do Azure:

  1. Clique com o botão direito do mouse em Bancos de Dados e selecione Restaurar Banco de Dados....

  2. Na página Geral , selecione Dispositivo na seção Origem .

  3. Clique no botão Procurar (...) para abrir a caixa de diálogo Selecionar dispositivos de backup.

  4. Selecione URL na lista suspensa Tipo de mídia de backup:. Selecione Adicionar para abrir a caixa de diálogo Selecionar um Local do Arquivo de Backup .

    1. Contêiner de armazenamento do Azure: o nome totalmente qualificado do contêiner de armazenamento do Azure que contém os arquivos de backup. Selecione um contêiner existente na lista suspensa ou digite de forma manual o nome totalmente qualificado do contêiner.

    2. Assinatura de Acesso Compartilhado: Usado para inserir a Assinatura de Acesso Compartilhado para o contêiner designado.

    3. Adicionar: Usado para registrar um contêiner existente para o qual você não tem uma Assinatura de Acesso Compartilhado. Consulte Conectar a uma Assinatura do Microsoft Azure (Backup para URL).

    4. OK: SQL Server conecta-se ao armazenamento do Azure usando as informações de Credenciais do SQL fornecidas e abre a caixa de diálogo Localizar Arquivo de Backup no Microsoft Azure. Os arquivos de backup que residem no contêiner de armazenamento são exibidos nessa página. Selecione o arquivo que você deseja usar para restaurar e selecione OK. Isso leva você de volta à caixa de diálogo Selecionar Dispositivos de Backup e selecionar OK nessa caixa de diálogo leva você de volta à caixa de diálogo Restauração principal, na qual você pode concluir a restauração.

Exemplos de código

Esta seção contém os seguintes exemplos:

Note

Para obter um tutorial sobre como usar o SQL Server 2016 com Armazenamento de Blobs do Azure, consulte Tutorial: usar Armazenamento de Blobs do Azure com SQL Server

Criar uma Assinatura de Acesso Compartilhado

O exemplo a seguir cria Assinaturas de Acesso Compartilhado que podem ser usadas para criar uma credencial SQL Server em um contêiner recém-criado. O script cria uma assinatura de acesso compartilhado que está associada a uma Política de Acesso Armazenada. Para saber mais, confira Assinaturas de Acesso Compartilhado, Parte 1: noções básicas sobre o modelo SAS. O script também grava o comando T-SQL necessário para criar a credencial no SQL Server.

Note

O exemplo requer Azure PowerShell. Para obter informações sobre como instalar e usar Azure PowerShell, consulte Como instalar e configurar Azure PowerShell. Esses scripts foram verificados usando Azure PowerShell 5.1.15063.

Assinatura de Acesso Compartilhado que está associada uma Política de Acesso Armazenada

# Define global variables for the script
$prefixName = '<a prefix name>'  # used as the prefix for the name for various objects
$subscriptionName = '<your subscription name>'   # the name of subscription name you will use
$locationName = '<a data center location>'  # the data center region you will use
$storageAccountName = $prefixName + 'storage' # the storage account name you will create or use
$containerName = $prefixName + 'container'  # the storage container name to which you will attach the SAS policy with its SAS token
$policyName = $prefixName + 'policy' # the name of the SAS policy

# Set a variable for the name of the resource group you will create or use
$resourceGroupName = $prefixName + 'rg'

# adds an authenticated Azure account for use in the session
Connect-AzAccount

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

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

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

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

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

# Creates a new container in Azure Blob Storage
$container = New-AzStorageContainer -Context $storageContext -Name $containerName
$cbc = $container.CloudBlobContainer

# Sets up a Stored Access Policy and a Shared Access Signature for the new container
$policy = New-AzStorageContainerStoredAccessPolicy -Container $containerName -Policy $policyName -Context $storageContext -ExpiryTime $(Get-Date).ToUniversalTime().AddYears(10) -Permission "rwld"
$sas = New-AzStorageContainerSASToken -Policy $policyName -Context $storageContext -Container $containerName
Write-Host 'Shared Access Signature= '$($sas.TrimStart('?'))''

# Outputs the Transact SQL to the clipboard and to the screen to create the credential using the Shared Access Signature
Write-Host 'Credential T-SQL'
$tSql = "CREATE CREDENTIAL [{0}] WITH IDENTITY='Shared Access Signature', SECRET='{1}'" -f $cbc.Uri, $sas.TrimStart('?')
$tSql | clip
Write-Host $tSql

Depois de executar o script com êxito, copie o comando CREATE CREDENTIAL para uma ferramenta de consulta, conecte-se a uma instância de SQL Server e execute o comando para criar a credencial com a Assinatura de Acesso Compartilhado.

Criar uma credencial

Os exemplos a seguir criam credenciais do SQL Server para a autenticação no serviço Armazenamento de Blobs do Azure. Execute um dos procedimentos a seguir.

  1. Usando a Assinatura de Acesso Compartilhado

    Se você executou o script anterior para criar a Assinatura de Acesso Compartilhado, copie o CREATE CREDENTIAL para um editor de consultas conectado à instância do SQL Server e execute o comando.

    O T-SQL a seguir é um exemplo que cria a credencial para usar uma Assinatura de Acesso Compartilhado.

    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>';
    
  2. Usando a chave de acesso e a identidade da conta de armazenamento

    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

Os exemplos a seguir executam um backup de banco de dados completo do banco de dados AdventureWorks2025 para Armazenamento de Blobs do Azure. Use um dos seguintes exemplos:

  1. Para URL usando uma Assinatura de Acesso Compartilhado

    BACKUP DATABASE AdventureWorks2022
        TO URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2022.bak';
    GO
    
  2. Para URL usando a chave de acesso e a identidade da conta de armazenamento

    BACKUP DATABASE AdventureWorks2022
    TO URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2022.bak'
    WITH CREDENTIAL = '<mycredentialname>',
    COMPRESSION, STATS = 5;
    GO
    

Restauração pontual com STOPAT

O exemplo a seguir restaura um banco de dados de exemplo AdventureWorks2025 para seu estado em um determinado momento e mostra uma operação de restauração.

De URL usando uma Assinatura de Acesso Compartilhado

RESTORE DATABASE AdventureWorks2022
    FROM URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2022_2015_05_18_16_00_00.bak'
    WITH MOVE 'AdventureWorks2022_data' TO 'C:\Program Files\Microsoft SQL Server\<myinstancename>\MSSQL\DATA\AdventureWorks2022.mdf',
    MOVE 'AdventureWorks2022_log' TO 'C:\Program Files\Microsoft SQL Server\<myinstancename>\MSSQL\DATA\AdventureWorks2022.ldf',
    NORECOVERY, REPLACE, STATS = 5;
GO

RESTORE LOG AdventureWorks2022
    FROM URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2022_2015_05_18_18_00_00.trn'
    WITH RECOVERY, STOPAT = 'May 18, 2015 5:35 PM';
GO