Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: SQL Server
Azure SQL Managed Instance
Este artigo apresenta os conceitos, requisitos e componentes necessários para usar o Armazenamento de Blobs do Azure como 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. Verificar Backup para URL com identidade gerida (pré-visualização) - SQL Server ativado por meio do Azure Arc.
Overview
O SQL Server 2012 Service Pack 1 CU2 e o SQL Server 2014 introduziram a capacidade de fazer backup para um URL apontado para o Armazenamento de Blobs do Azure, usando a sintaxe familiar do T-SQL para escrever backups de forma segura no armazenamento Azure. SQL Server 2016 (13.x) introduziu File-Snapshot Backups para Ficheiros de Base de Dados em Azure e segurança através de chaves de assinatura de acesso partilhado (SAS), uma forma segura e simples de autenticar certificados segundo Armazenamento do Azure política de segurança.
É importante compreender os componentes e a interação entre eles para fazer uma cópia de segurança ou restauração a partir do Armazenamento de Blobs do Azure.
Criar uma conta Armazenamento do Azure dentro da sua subscrição 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 Azure e o seu valor da chave de acesso para autenticar, escrever e ler blobs no Armazenamento de Blobs do Azure, ou usar um token de assinatura de acesso partilhado gerado em contentores específicos que lhe concedam direitos de leitura e escrita. Para mais informações sobre Contas de Armazenamento do Azure, veja Sobre Contas de Armazenamento do Azure e para mais informações sobre Assinaturas de Acesso Partilhado, veja Assinaturas de Acesso Partilhado, Parte 1: Compreender o Modelo SAS. A credencial SQL Server armazena esta informação de autenticação e é utilizada durante as operações de backup ou restauro.
Armazenamento do Azure e armazenamento compatível com S3
O SQL Server 2022 (16.x) introduz a capacidade de escrever backups para armazenamento de objetos compatível com S3, com funcionalidades de backup e restauro conceptualmente semelhantes a trabalhar com 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 o uso do Backup to URL para Armazenamento de Blobs do Azure. Para saber mais sobre o uso de Backup to URL para armazenamento compatível com S3, consulte Backup to URL do SQL Server para armazenamento de objetos compatível com S3.
Backup para o Armazenamento do Azure block blob versus page blob
Existem 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 posteriores, block blob é preferido.
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 está disponível apenas a partir do SQL Server 2016 ou em versões posteriores para backup no Armazenamento de Blobs do Azure. Faça backup para blocar blob em vez de page blob se estiver a usar SQL Server 2016 ou versão 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.
Efetuar o backup de uma grande base de dados para o Armazenamento de Blobs do Azure está sujeito às limitações listadas em diferenças, limitações e problemas conhecidos do Azure SQL Managed Instance T-SQL.
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, containers e SQL Managed Instance ativado pelo Azure Arc
Se a instância do SQL Server estiver alojada no Linux, incluindo:
- Sistema operativo autónomo
- Contentores
- SQL Managed Instance ativada pelo Azure Arc
- Qualquer outro ambiente baseado em Linux
O único backup suportado para URL no Armazenamento de Blobs do Azure é bloquear blobs, usando a Assinatura de Acesso Partilhada.
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 aceder ao Armazenamento de Blobs do Azure, crie primeiro uma conta de armazenamento 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 escrever um backup do SQL Server para o Armazenamento de Blobs do Azure, deve ter pelo menos o contentor 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. Existem 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 Transact-SQL utilizada. Os blobs podem ser endereçados usando o seguinte formato de URL: https://< storage account.blob.core.windows.net/>< container>/<blob>. Para mais informações sobre 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.
Azure Snapshot: Um snapshot de um blob Azure tirado num dado momento. Para obter mais informações, consulte Criando um instantâneo de um Blob. O backup do SQL Server suporta agora backups snapshot Azure de ficheiros de base de dados armazenados no Armazenamento de Blobs do Azure. Para mais informações, consulte File-Snapshot Backups para Ficheiros de Base de Dados em Azure.
Componentes do SQL Server
Endereço URL: Uma URL especifica um URI (Uniform Resource Identifier) para um arquivo de backup exclusivo. O URL é usado para fornecer a localização e o nome do ficheiro 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.
Credential: Uma credencial SQL Server é um objeto utilizado para armazenar a informação de autenticação necessária para se ligar a um recurso fora da SQL Server. Aqui, os processos de backup e restauro do SQL Server utilizam credenciais para autenticar no Armazenamento de Blobs do Azure e nos seus objetos contentor 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 um exemplo sobre como criar uma Assinatura de Acesso Partilhado, veja Criar uma Assinatura de Acesso Partilhado exemplos mais adiante neste artigo e, para criar uma Credencial SQL Server, veja Criar uma credencial exemplos mais adiante neste artigo.
Para mais informações sobre credenciais, consulte Credenciais (Database Engine).
Para informações sobre outros exemplos onde credenciais são usadas, veja Criar um Proxy SQL Server Agent.
Suporte de armazenamento imutável Azure
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 dois passos. 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.
O armazenamento Azure oferece dois tipos de imutabilidade: nível de contentor e nível de versão. Atualmente, apenas o armazenamento imutável ao nível do contentor é suportado.
Para usar armazenamento imutável com backup do SQL Server 2025 (17.x) para URL, siga estes passos:
Configura imutabilidade para o teu contentor de armazenamento Azure.
Emita o BACKUP para fazer backup da sua base de dados no contentor de armazenamento Azure. Se você usar a
WITH FORMATopçã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 Armazenamento de Blobs do Azure
Seguem-se considerações e requisitos de segurança ao fazer backup ou restaurar a partir do Armazenamento de Blobs do Azure.
Ao criar um contentor para Armazenamento de Blobs do Azure, recomendamos que defina o acesso para private. Definir o acesso como privado restringe o acesso a utilizadores ou contas capazes de fornecer a informação necessária para autenticar na conta Azure.
Important
O SQL Server requer que um nome de conta e autenticação de chave de acesso no Azure, ou uma Assinatura de Acesso Partilhada e token de acesso, sejam armazenados numa credencial do SQL Server. Esta informação é usada para autenticar a conta Azure ao realizar operações de backup ou restauração.
Warning
Armazenamento do Azure suporta desativar a autorização de Chave Partilhada para uma conta de armazenamento. Se a autorização de Chave Partilhada estiver desativada, o SQL Server Backup To URL não funcionará.
A conta de usuário usada para emitir comandos
BACKUPouRESTOREdeve estar na função de operador de banco de dados db_backup com permissões para alterar qualquer credencial .
Limitações do backup/restauro no Armazenamento de Blobs do Azure
O SQL Server limita o tamanho máximo de backup suportado usando um blob de páginas a 1 TB. O tamanho máximo de backup suportado com blocos de blocos está limitado a aproximadamente 195,3 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 bloco seja aproximadamente 195,3 GB, é possível que o SQL Server escreva em blocos de tamanho menor, o que pode levar o SQL Server a atingir o limite de 50.000 blocos antes de transferir todo o backup. 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.
As cópias de segurança do registo de transações ignoram o especificado
MAXTRANSFERSIZEpelo utilizador ao efetuar cópias de segurança para vários ficheiros de cópia de segurança. Em vez disso, 64KB é usado se mais do que um ficheiro for especificado, independentemente do valorMAXTRANSFERSIZEno comando de backup. Portanto, o tamanho máximo de uma cópia de segurança de um registo de transações para URL é aproximadamente 195,3GB (50.000 blocos * 4 MBMAXTRANSFERSIZE* 1 ficheiro OU 50.000 blocos * 64 KB * 64 ficheiros). A compressão pode permitir que um log de transações maior seja efetuado o backup, mas as taxas de compressão variam.Pode emitir instruções de backup ou restauro usando Transact-SQL, SMO, comandos PowerShell ou o assistente de Backup ou Restauro do SQL Server Management Studio.
Ao fazer backup para uma conta Armazenamento do Azure, o SQL Server só suporta autenticação com tokens de Assinatura de Acesso Partilhada (SAS) ou chaves de conta de armazenamento. Todos os outros métodos de autenticação, incluindo a autenticação com Microsoft Entra ID (anteriormente Azure Active Directory), não são suportados.
Não há suporte para a criação de um nome de dispositivo lógico. Portanto, adicionar URL como dispositivo de backup usando
sp_dumpdeviceou através de SQL Server Management Studio não é suportado.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 oWITH FILE_SNAPSHOTargumento), oWITH FORMATargumento 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
BLOCKSIZEnão é suportada para blobs de página.Especificar
MAXTRANSFERSIZEnão é suportado para blobs de página.Especificação de opções de conjunto de backup -
RETAINDAYSeEXPIREDATEnão são suportadas.O SQL Server tem um limite máximo de 259 caracteres para o nome de um dispositivo de backup. O
BACKUP TO URLconsome 36 caracteres para os elementos necessários usados para especificar a URLhttps://.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 de Assinatura de Acesso Partilhado (SAS), o que limita o tipo de tokens que podem ser usados (por exemplo, tokens de Chave de Delegação de Utilizador não são suportados).
Se o seu servidor acede ao Azure através de um servidor proxy, deve usar o traço flag 1819 e depois definir a configuração do proxy WinHTTP através de um dos seguintes métodos:
- A ferramenta proxycfg.exe em Windows XP ou Windows Server 2003 e anteriores.
- A ferramenta netsh.exe em Windows Vista e Windows Server 2008 ou posteriores.
O armazenamento imutável para o Armazenamento de Blobs do Azure não é suportado antes da versão SQL Server 2025. Defina a política de armazenamento imutável como false.
Para suporte no SQL Server 2025 e versões posteriores, consulte o suporte de armazenamento imutável do Azure.
- O armazenamento Azure oferece dois tipos de imutabilidade: nível de contentor e nível de versão. Atualmente, apenas o armazenamento imutável ao nível do contentor é suportado.
O backup para URL não é suportado para armazenamento premium.
Argumentos e afirmações suportados no Armazenamento de Blobs do Azure
Suporte para instruções de backup/restauro 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 blob de bloco requer uma Assinatura de Acesso Partilhada guardada numa credencial SQL Server.
BACKUP to page blob requer que a chave da conta de armazenamento seja guardada numa credencial SQL Server e que o argumento WITH CREDENTIAL seja especificado. |
RESTORE |
Yes | Requer que uma credencial SQL Server seja definida, e exige que o argumento WITH CREDENTIAL seja especificado se a credencial SQL Server for definida usando a chave da conta de armazenamento como segredo |
|
RESTORE FILELISTONLY |
Yes | Requer que uma credencial SQL Server seja definida, e exige que o argumento WITH CREDENTIAL seja especificado se a credencial SQL Server for definida usando a chave da conta de armazenamento como segredo |
|
RESTORE HEADERONLY |
Yes | Requer que uma credencial SQL Server seja definida, e exige que o argumento WITH CREDENTIAL seja especificado se a credencial SQL Server for definida usando a chave da conta de armazenamento como segredo |
|
RESTORE LABELONLY |
Yes | Requer que uma credencial SQL Server seja definida, e exige que o argumento WITH CREDENTIAL seja especificado se a credencial SQL Server for definida usando a chave da conta de armazenamento como segredo |
|
RESTORE VERIFYONLY |
Yes | Requer que uma credencial SQL Server seja definida, e exige que o argumento WITH CREDENTIAL seja especificado se a credencial SQL Server for definida usando a chave da conta de armazenamento como 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ó é suportado quando se utiliza a opção BACKUP TO URL para fazer backup até Armazenamento de Blobs do Azure e só se a credencial de SQL Server estiver definida usando a chave da conta de armazenamento como segredo |
|
FILE_SNAPSHOT |
Yes | ||
ENCRYPTION |
Yes | Quando o argumento WITH ENCRYPTION é especificado, o SQL Server File-Snapshot Backup assegura que toda a base de dados foi encriptada com TDE antes de fazer a cópia de segurança e, se sim, encripta a própria cópia de segurança do snapshot de ficheiro usando o algoritmo especificado para TDE na base 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 em 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ó é suportado quando se usa a opção RESTORE FROM URL para restaurar a partir 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 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
Pode fazer backup de uma base de dados para URL através da tarefa Backup no SQL Server Management Studio usando uma credencial do SQL Server.
Note
Para criar um backup de snapshot de ficheiro do SQL Server, ou sobrescrever um conjunto de mídia existente, deve usar Transact-SQL, PowerShell ou C# em vez da tarefa de Backup no SQL Server Management Studio.
Os passos seguintes descrevem as alterações feitas à tarefa de Backup Database no SQL Server Management Studio para permitir a cópia de segurança para o armazenamento Azure:
Em Object Explorer, liga-te a uma instância do Mecanismo de Banco de Dados do SQL Server e depois expande essa instância.
Expanda Bancos de Dados, clique com o botão direito do mouse no banco de dados desejado, aponte para Tarefas e selecione Fazer Backup....
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 Azure armazenamento. Selecione Adicionar e a caixa de diálogo Selecionar Destino do Backup será aberta:
Azure storage container: O nome do Azure contentor de armazenamento para armazenar os ficheiros de backup. Selecione um contêiner existente na lista suspensa ou insira manualmente o contêiner.
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.
Arquivo de backup: Nome do arquivo de backup.
Novo Contentor: Usado para registrar um contêiner existente para o qual você não tem uma Assinatura de Acesso Compartilhado. Veja Ligar-se a uma subscrição 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:
- Banco de Dados de Backup (Página Geral)
- Cópia de Segurança do Banco de Dados (página Opções de mídia)
- Banco de Dados de Backup (Página Opções de Backup)
- Criar Credencial - Autenticar para Armazenamento do Azure
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 URL como uma das opções de destino, e outros objetos de suporte necessários, como a Credencial SQL, para fazer backup no armazenamento Azure. 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 listado, um backup de snapshot de ficheiros do SQL Server ou uma credencial SQL usando token de Acesso Partilhado, 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 URL como um dispositivo a partir do qual restaurar. Os passos seguintes descrevem o uso da tarefa Restaurar para restaurar a partir do Armazenamento de Blobs do Azure:
Clique com o botão direito do mouse em Bancos de Dados e selecione Restaurar Banco de Dados....
Na página Geral , selecione Dispositivo na seção Origem .
Selecione o botão Procurar (...) para abrir a caixa de diálogo Selecionar dispositivos de backup .
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 .
Azure storage container: O nome totalmente qualificado do contentor de armazenamento Azure que contém os ficheiros de backup. Selecione um contentor existente na lista suspensa ou insira manualmente o nome completo do contentor.
Assinatura de acesso compartilhado: Usado para inserir a Assinatura de Acesso Compartilhado para o contêiner designado.
Adicione: Usado para registrar um contêiner existente para o qual você não tem uma Assinatura de Acesso Compartilhado. Veja Como ligar-se a uma subscrição da Microsoft Azure (backup para URL).
OK: SQL Server liga-se ao armazenamento de Azure usando a informação de credenciais SQL que forneceu e abre a caixa de diálogo Localizar o Ficheiro 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.
- Criar uma assinatura de acesso compartilhado
- Criar uma credencial
- Fazer uma cópia de segurança de base de dados completa
- Restaurar para um momento específico usando STOPAT
Note
Para um tutorial sobre como usar SQL Server 2016 com Armazenamento de Blobs do Azure, veja Tutorial: Use Armazenamento de Blobs do Azure com SQL Server
Criar uma assinatura de acesso compartilhado
O exemplo seguinte cria Assinaturas de Acesso Partilhado que podem ser usadas para criar uma Credencial do SQL Server num contentor 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 escreve o comando T-SQL necessário para criar a credencial no SQL Server.
Note
O exemplo requer Azure PowerShell. Para informações sobre como instalar e usar Azure PowerShell, consulte Como instalar e configurar Azure PowerShell. Estes scripts foram verificados usando 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 com sucesso o script, copie o comando CREATE CREDENTIAL para uma ferramenta de consulta, ligue-se a uma instância de SQL Server e execute o comando para criar a credencial com a Assinatura de Acesso Partilhada.
Criar uma credencial
Os exemplos seguintes criam credenciais do SQL Server para autenticação no Armazenamento de Blobs do Azure. Proceda de uma das seguintes formas.
Usando a assinatura de acesso compartilhado
Se executaste o script anterior para criar a Assinatura de Acesso Partilhada, copia o
CREATE CREDENTIALpara um editor de consultas ligado à tua instância de SQL Server e executa 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>';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 seguintes realizam uma cópia de segurança completa da base de dados AdventureWorks2025 para Armazenamento de Blobs do Azure. Use um dos seguintes exemplos:
Para URL com uma Assinatura de Acesso Compartilhado
BACKUP DATABASE AdventureWorks2022 TO URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2022.bak'; GOPara 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