Partilhar via


Backup do SQL Server para URL de Armazenamento de Blobs do Azure

Aplica-se a:SQL ServerAzure SQL Managed Instance

Este artigo apresenta os conceitos, requisitos e componentes necessários para usar o Armazenamento de Blobs do Azure como um destino de backup. As funcionalidades de backup e restauração são iguais ou semelhantes ao uso 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), podes fazer backup para URL com identidade gerida. Revisar cópia de segurança para URL com identidade gerida (preview) - SQL Server habilitado pelo Azure Arc.

Overview

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

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

Criar uma Conta de armazenamento do Azure na subscrição do Azure é o primeiro passo neste 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 de armazenamento. O SQL Server pode usar o nome da conta de armazenamento do Azure e seu valor de chave de acesso para autenticar, gravar e ler blobs no Armazenamento de Blobs do Azure ou usar um token de Assinatura de Acesso Compartilhado gerado em contêineres específicos concedendo-lhe direitos de leitura e gravação. Para obter mais informações sobre Contas de Armazenamento do Azure, consulte Sobre Contas de Armazenamento do Azure e para obter mais informações sobre Assinaturas de Acesso Compartilhado, consulte Assinaturas de Acesso Compartilhado, Parte 1: Noções básicas sobre o Modelo SAS. A Credencial do SQL Server armazena essas informações de autenticação e é usada durante as operações de backup ou restauração.

Armazenamento do Azure e armazenamento compatível com S3

O SQL Server 2022 (16.x) introduz a capacidade de gravar backups no armazenamento de objetos compatível com o S3, com funcionalidade de backup e restauração conceitualmente semelhante ao trabalho com Backup para URL usando o Armazenamento de Blob do Azure como um tipo de dispositivo de backup. O SQL Server 2022 (16.x) estende a BACKUP/RESTORE TO/FROM URL sintaxe adicionando suporte para um novo conector S3 usando a API REST.

Este artigo contém informações sobre como usar o Backup para URL no Blob Storage do Azure. Para saber mais sobre como usar o Backup para URL para armazenamento compatível com o S3, consulte Backup do SQL Server para URL para armazenamento de objetos compatível com o S3.

Backup para blob de bloco de armazenamento do Azure vs. blob de página

Há dois tipos de blobs que podem ser armazenados no Armazenamento de Blobs do Azure: blobs de bloco e de página. Para o SQL Server 2016 e posterior, o blob de bloco é preferível.

Se a chave de armazenamento for utilizada na credencial, um blob de página será utilizado; se a Assinatura de Acesso Partilhado for utilizada, um blob de bloco será utilizado.

O backup para block blob só está disponível no SQL Server 2016 ou versão posterior para backup no Armazenamento de Blobs do Azure. Faça backup para um blob de bloco em vez de um blob de página se estiveres a executar o Servidor SQL 2016 ou posterior.

As principais razões são:

  • A Assinatura de Acesso Compartilhado é uma maneira mais segura de autorizar o acesso de blob em comparação com a chave de armazenamento.
  • Você pode fazer backup em vários blobs de bloco para obter melhor desempenho de backup e restauração e dar suporte a backups de bancos de dados maiores.
  • O blob de bloco é mais barato do que o blob de página.
  • Os clientes que precisam fazer backup de blobs de página por meio de um servidor proxy precisam usar backuptourl.exe.

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

Se o banco de dados for muito grande:

  • Utilize compactação de backup ou
  • Fazer backup em múltiplos blobs de bloco

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

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

  • Sistema operativo autónomo
  • Contentores
  • Instância Gerenciada SQL habilitada pelo Azure Arc
  • Qualquer outro ambiente baseado em Linux

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

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 o Armazenamento de Blobs do Azure, primeiro crie uma conta de armazenamento do Azure. Para obter mais informações, consulte Criar uma conta de armazenamento

Contentor: Um contêiner fornece um agrupamento de um conjunto de blobs e pode armazenar um número ilimitado de blobs. Para gravar um backup do SQL Server no 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 somente em um contêiner específico.

Blob: Um arquivo de qualquer tipo e tamanho. Há dois tipos de blobs que podem ser armazenados no Armazenamento de Blobs do Azure: blobs de bloco e de página. O backup do SQL Server pode usar qualquer tipo de blob, dependendo da sintaxe de Transact-SQL usada. Os blobs podem ser endereçados usando o seguinte formato de URL: https://< storage account.blob.core.windows.net/>< container>/<blob>. Para obter mais informações sobre o Armazenamento de Blobs do Azure, consulte Introdução ao Armazenamento de Blobs do Azure. Para obter mais informações sobre blobs de página e bloco, consulte Noções básicas sobre blobs de bloco e página.

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

Azure Snapshot: Um instantâneo de um blob do Azure tirado em um determinado momento. Para obter mais informações, consulte Criando um instantâneo de um Blob. O backup do SQL Server agora dá suporte a backups 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 no Azure.

Componentes do SQL Server

Endereço 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 do SQL Server. A URL deve apontar para um blob real, não apenas para um contêiner. Se o blob não existir, ele é criado. Se um blob existente for especificado, BACKUP falhará, a menos que a WITH FORMAT opção seja especificada para substituir o arquivo de backup existente no blob.

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

Note

O backup para URL usando HTTP não é suportado.

Credencial: Uma credencial do SQL Server é um objeto usado para armazenar informações de autenticação necessárias para se conectar a um recurso fora do SQL Server. Aqui, os processos de backup e restauração do SQL Server usam credenciais para autenticar no Armazenamento de Blobs do Azure e seus objetos de contêiner e blob. A Credencial armazena o nome da conta de armazenamento e os valores da chave de acesso da conta de armazenamento ou a URL do contêiner e seu token de Assinatura de Acesso Compartilhado. Depois de a credencial ser criada, a sintaxe das instruções BACKUP/RESTORE determina o tipo de blob e a credencial necessária.

Para obter um exemplo sobre como criar uma assinatura de acesso compartilhado, consulte Criar exemplos de assinatura de acesso compartilhado mais adiante neste artigo e para criar uma credencial do SQL Server, consulte Criar exemplos de credenciais mais adiante neste artigo.

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

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

Suporte de armazenamento imutável do Azure

O SQL Server 2025 (17.x) introduz suporte para armazenamento imutável Azure, 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, os backups do SQL Server 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 etapa quando gravado para bloquear blobs.

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

  1. Configure a imutabilidade do seu container de armazenamento do Azure.

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

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

Segurança para o Armazenamento de Blobs do Azure

A seguir estão as considerações e os requisitos de segurança ao fazer backup ou restaurar do Armazenamento de Blobs do Azure.

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

    Important

    O SQL Server requer que um nome de conta do Azure e uma autenticação de chave de acesso, ou uma Assinatura de Acesso Compartilhado e token de acesso, sejam armazenados em uma Credencial do SQL Server. Essas informações são usadas para autenticar na conta do Azure ao executar operações de backup ou restauração.

    Warning

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

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

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

  • O SQL Server limita o tamanho máximo de backup suportado com um blob de páginas a 1 TB. O tamanho máximo de backup suportado usando blobs de bloco é limitado a aproximadamente 200 GB (50 000 blocos * 4 MB MAXTRANSFERSIZE). Os blobs de bloco suportam striping para suportar tamanhos de backup substancialmente maiores - o limite é um máximo de 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 bloco seja de 200 GB, é possível que o SQL Server escreva em tamanhos de bloco menores, 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 que sejam menores que 200 GB) para evitar o limite de blocos, especialmente quando você usa backups diferenciais ou não compactados.

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

  • Ao fazer backup em uma conta de Armazenamento do Azure, o SQL Server só dá suporte à autenticação com tokens SAS (Assinatura de Acesso Compartilhado) ou chaves de conta de armazenamento. Não há suporte para todos os outros métodos de autenticação, incluindo a autenticação com o Microsoft Entra ID (anteriormente Azure Ative Directory).

  • 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 do SQL Server Management Studio.

  • Não há suporte para a anexação a blobs de backup existentes. Os backups para um blob existente só podem ser sobrescritos usando a opção WITH FORMAT. No entanto, ao usar backups de instantâneo de arquivo (usando o WITH FILE_SNAPSHOT argumento), o WITH FORMAT argumento não tem permissão para evitar deixar instantâneos de arquivo órfãos que foram criados com o backup de instantâneo de arquivo original.

  • O backup para vários blobs numa única operação de cópia de segurança só é suportado utilizando blobs de bloco e utilizando um token SAS (Assinatura de Acesso Compartilhado) em vez da chave da conta de armazenamento para as credenciais do SQL.

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

  • Especificar MAXTRANSFERSIZE não é suportado para blobs de página.

  • Especificação de opções de conjunto de backup - RETAINDAYS e EXPIREDATE não são suportadas.

  • O 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, deixando 223 caracteres para nomes de conta, contêiner e blob juntos.

  • O 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 são suportados).

  • Se o seu servidor aceder ao Azure através de um servidor proxy, tem de utilizar o sinalizador de rastreio 1819 e, em seguida, definir a configuração de proxy WinHTTP através de um dos seguintes métodos:

    • O utilitário proxycfg.exe no Windows XP ou Windows Server 2003 e versões anteriores.
    • O utilitário netsh.exe no Windows Vista e Windows Server 2008 ou posterior.
  • Não há suporte para armazenamento imutável para o Armazenamento de Blobs do Azure. Defina a política de armazenamento imutável como false.

  • O backup para URL não é suportado para armazenamento premium.

Argumentos e instruções suportadas no Armazenamento de Blobs do Azure

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

Declaração de backup/restauração Supported Exceptions Comments
BACKUP Yes BLOCKSIZE e MAXTRANSFERSIZE são suportados para blobs de bloco. Eles não são suportados para blobs de página. BACKUP para um block blob requer uma Assinatura de Acesso Partilhado guardada numa credencial do SQL Server. BACKUP to page blob requer a chave da conta de armazenamento salva em uma credencial do SQL Server e requer que o WITH CREDENTIAL argumento seja especificado.
RESTORE Yes Requer que uma credencial do SQL Server seja definida e requer que o WITH CREDENTIAL argumento seja especificado se a credencial do SQL Server for definida usando a chave da conta de armazenamento como o segredo
RESTORE FILELISTONLY Yes Requer que uma credencial do SQL Server seja definida e requer que o WITH CREDENTIAL argumento seja especificado se a credencial do SQL Server for definida usando a chave da conta de armazenamento como o segredo
RESTORE HEADERONLY Yes Requer que uma credencial do SQL Server seja definida e requer que o WITH CREDENTIAL argumento seja especificado se a credencial do SQL Server for definida usando a chave da conta de armazenamento como o segredo
RESTORE LABELONLY Yes Requer que uma credencial do SQL Server seja definida e requer que o WITH CREDENTIAL argumento seja especificado se a credencial do SQL Server for definida usando a chave da conta de armazenamento como o segredo
RESTORE VERIFYONLY Yes Requer que uma credencial do SQL Server seja definida e requer que o WITH CREDENTIAL argumento seja especificado se a credencial do 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 de DISK e TAPE, a URL não suporta especificar ou criar 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 quando se usa na opção BACKUP TO URL para fazer backup no Armazenamento de Blobs do Azure e somente se a credencial do SQL Server for definida usando a chave da conta de armazenamento como segredo.
FILE_SNAPSHOT Yes
ENCRYPTION Yes Quando o WITH ENCRYPTION argumento é especificado, o Backup do SQL Server File-Snapshot garante que todo o banco de dados foi criptografado por TDE antes de fazer o backup e, se assim for, criptografa o próprio arquivo instantâneo de backup usando o algoritmo especificado para TDE no banco de dados. Se todos os dados no banco de dados inteiro 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 suportado para backup de instantâneo de arquivo
DESCRIPTION Yes
NAME Yes
EXPIREDATE | RETAINDAYS No
NOINIT | INIT No Não é possível anexar a blobs. Para substituir um backup, use o argumento WITH FORMAT. No entanto, ao usar backups de instantâneos de arquivos (usando o argumento WITH FILE_SNAPSHOT), o argumento WITH FORMAT não é permitido, para evitar que sejam deixados instantâneos de arquivos órfãos criados com o backup original.
NOSKIP | SKIP No
NOFORMAT | FORMAT Yes Um backup realizado para um blob existente falha a menos que WITH FORMAT seja especificado. O blob existente é substituído quando WITH FORMAT é especificado. No entanto, ao usar backups de instantâneo de arquivo (usando o WITH FILE_SNAPSHOT argumento), o FORMAT argumento não tem permissão para evitar deixar instantâneos de arquivo órfãos que foram criados com o backup de instantâneo de arquivo original. No entanto, ao usar backups de instantâneos de arquivos (usando o argumento WITH FILE_SNAPSHOT), o argumento WITH FORMAT não é permitido, para evitar que sejam deixados instantâneos de arquivos órfãos criados com o backup original.
MEDIADESCRIPTION Yes
MEDIANAME Yes
BLOCKSIZE Yes Não há suporte para blob de página. Suportado para blob de blocos. Recomendo BLOCKSIZE=65536 otimizar o uso dos 50.000 blocos permitidos em um blob de bloco.
BUFFERCOUNT Yes
MAXTRANSFERSIZE Yes Não há suporte para blob de página. Suportado para blob de blocos. O padrão é 1048576. O valor pode variar até 4 MB em incrementos de 65.536 bytes.

Recomendo MAXTRANSFERSIZE=4194304 otimizar o uso dos 50.000 blocos permitidos em um blob de bloco.
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 é suportado somente quando se usa a opção RESTORE FROM URL para restaurar a partir do Armazenamento de Blob 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 suportado para backup de captura instantânea
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 RESTORE, consulte Instruções RESTORE - Argumentos.

Backup com o SSMS

Você pode fazer backup de um banco de dados para URL por meio da tarefa Backup no SQL Server Management Studio usando uma Credencial do SQL Server.

Note

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

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

  1. No 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, na seção Destino, a opção URL está disponível na lista suspensa Fazer backup em:. A opção URL é usada para criar um backup para o armazenamento do Azure. Selecione Adicionar e a caixa de diálogo Selecionar Destino do Backup será aberta:

    1. Contêiner de armazenamento do Azure: O nome do contêiner de armazenamento do 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. Este campo não estará disponível se tiver sido escolhido um contentor existente.

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

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

Note

O Add suporta vários arquivos de backup e contêineres de armazenamento para um único conjunto de mídias.

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

Backup com plano de manutenção

Semelhante à 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 para fazer backup no armazenamento do Azure, como a Credencial SQL. Tem o mesmo Para obter mais informações, consulte a seção Definir tarefas de backup em Usando o Assistente de Plano de Manutenção.

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 Backup no Assistente de Plano de Manutenção.

Restaurar com o SSMS

A tarefa Restaurar Banco de Dados inclui URL como um dispositivo a partir do qual restaurar. As etapas a seguir descrevem o uso da tarefa Restaurar para restaurar a partir do 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. Selecione o 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 contentor existente na lista suspensa ou insira manualmente o nome completo do contentor.

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

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

    4. OK: O SQL Server se conecta ao armazenamento do Azure usando as informações de Credenciais 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 nesta página. Selecione o arquivo que 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 principal Restaurar , onde 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 o Armazenamento de Blobs do Azure, consulte Tutorial: Usar o Armazenamento de Blobs do Azure com o 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 do SQL Server em um contêiner recém-criado. O script cria uma Assinatura de Acesso Compartilhado associada a uma Política de Acesso Armazenado. Para obter mais informações, consulte 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 o Azure PowerShell. Para obter informações sobre como instalar e usar o Azure PowerShell, consulte Como instalar e configurar o Azure PowerShell. Esses scripts foram verificados usando o Azure PowerShell 5.1.15063.

Assinatura de Acesso Compartilhado associada a uma Política de Acesso Armazenado

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

Criar uma credencial

Os exemplos a seguir criam credenciais do SQL Server para autenticação no Armazenamento de Blobs do Azure. Proceda de uma das seguintes formas.

  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 à sua 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 identidade da conta de armazenamento e a chave de acesso

    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 completo da base de dados AdventureWorks2025 para o Armazenamento de Blobs do Azure. Use um dos seguintes exemplos:

  1. Para URL com uma Assinatura de Acesso Compartilhado

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

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

Restaurar para um ponto no tempo usando STOPAT

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

Da URL com Assinatura de Acesso Partilhada

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