Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:SQL Server
O backup de snapshots de arquivo do SQL Server utiliza snapshots do Azure para fornecer backups quase instantâneos (e restaurações mais rápidas) de arquivos de banco de dados armazenados no Armazenamento de Blobs do Azure. Use backups snapshot de arquivos para simplificar suas políticas de backup e restauração.
Para mais informações sobre como armazenar arquivos de banco de dados no Armazenamento de Blobs do Azure, veja SQL Server data files in Microsoft Azure.
Já possui uma conta do Azure? Visite o SQL Server em Máquinas Virtuais do Azure para criar uma máquina virtual que tenha o SQL Server pré-instalado.
Usar instantâneos do Azure para fazer backup de arquivos de banco de dados armazenados no Azure
O que é um backup de snapshot de arquivo do SQL Server?
Um backup de snapshot de arquivo é um conjunto de snapshots em Azure dos blobs que contêm os arquivos do banco de dados, além de um arquivo de backup com ponteiros para esses snapshots. Cada snapshot de arquivo reside no contêiner com o blob base.
Você pode escrever o arquivo de backup em URL, disco ou fita, mas deve fazer backup para URL sempre que possível. Para mais informações, veja BACKUP e SQL Server backup para URL para Armazenamento de Blobs do Azure.
Deletar o blob base invalida o conjunto de backup. Você não pode deixar um blob que contenha snapshots de arquivo a menos que escolha explicitamente excluir o blob junto com todos os snapshots do arquivo. Eliminar um banco de dados ou arquivo de dados não exclui o blob base nem nenhum de seus snapshots de arquivo, e excluir o arquivo de backup não apaga nenhum dos snapshots do conjunto de backup. Para excluir um conjunto de backup de instantâneo de arquivo, use o procedimento armazenado do sistema sys.sp_delete_backup.
Backup completo do banco de dados: Um backup completo de snapshot de arquivo faz um snapshot no Azure de cada arquivo de dados e log no banco de dados, estabelece a cadeia de backup do log de transações e escreve as localizações dos snapshots de arquivo no arquivo de backup.
Backup do log de transações: Um backup snapshot de arquivo do log de transações faz um snapshot de arquivo de cada arquivo do banco de dados (não apenas o log de transações), registra as localizações do snapshot no arquivo de backup e trunca o log de transações.
Importante
Após o backup inicial completo que estabelece a cadeia de backup do log de transações (que pode ser um backup snapshot de arquivo), você precisa apenas de backups do log de transações. Cada conjunto de backup de log de transações contém snapshots de arquivo de cada arquivo de banco de dados, então você pode usá-lo tanto para restauração de banco de dados quanto para restauração de log. Você não precisa de backups completos ou diferenciais extras porque o Armazenamento de Blobs do Azure lida com as diferenças entre cada snapshot de arquivo e o estado atual do blob base.
Para um tutorial sobre como usar SQL Server com Armazenamento de Blobs do Azure, veja Tutorial: Use Armazenamento de Blobs do Azure com SQL Server.
Restaurar usando backups de instantâneo de arquivo
Cada conjunto de backup de snapshots de arquivo contém um snapshot de arquivo de cada arquivo de banco de dados, então uma restauração precisa no máximo de dois conjuntos de backup de snapshots de arquivo adjacentes. Esse requisito é válido tanto o conjunto de backup vem de um backup completo de banco de dados quanto de um backup de log. Com backup tradicional de streaming, o processo de restauração precisa do backup completo, um backup diferencial e um ou mais backups de log de transação. A etapa de recuperação é a mesma para ambas as abordagens.
Até o momento de qualquer conjunto de backup: Para restaurar um banco de dados na época de um conjunto específico de backup snapshot de arquivo, RESTORE DATABASE é necessário apenas esse conjunto de backup e os blobs base. Como RESTORE DATABASE funciona com um conjunto de backup de arquivo de log de transações, normalmente você usa um conjunto de backup de log de transações e raramente um conjunto completo de backup de banco de dados. Consulte o exemplo posteriormente neste artigo.
Para um ponto no tempo entre dois conjuntos de backup de snapshots de arquivo: Para restaurar um banco de dados em um ponto específico no tempo entre dois conjuntos de backup de logs de transações adjacentes, RESTORE DATABASE são necessários apenas dois conjuntos de backup de logs de transação: um de antes do momento em que você deseja restaurar o banco de dados, e outro de depois. Execute RESTORE DATABASE ... WITH NORECOVERY usando o conjunto de backup anterior, e depois usando RESTORE LOG ... WITH RECOVERY o último. Use o STOPAT argumento para especificar o momento em que deve parar a recuperação do backup do log de transações. Consulte o exemplo posteriormente neste artigo.
Manutenção do conjunto de backup de arquivos
Deletar um conjunto de backup com snapshot de arquivo: Você não pode sobrescrever um conjunto de backup snapshot de arquivo com esse FORMAT argumento. O FORMAT argumento não é permitido porque pode transformar snapshots órfãos do backup original do snapshot. Para excluir um conjunto de backup, use o sys.sp_delete_backup procedimento armazenado do sistema. Ele remove o arquivo de backup e todos os snapshots de arquivo do conjunto. Outros métodos de exclusão podem remover o arquivo de backup, mas deixar os snapshots do arquivo para trás.
Excluindo snapshots de arquivos de backup órfãos: Você pode acabar com snapshots de arquivo órfãos se excluir o arquivo de backup sem sys.sp_delete_backup, ou se descartar um banco de dados ou arquivo de dados enquanto seus blobs ainda têm snapshots de arquivo de backup associados. Para encontrar candidatos, use a sys.fn_db_backup_file_snapshots função do sistema para listar cada snapshot de arquivo dos arquivos do banco de dados. Para ver quais snapshots de arquivo pertencem a um conjunto específico de backup, use o RESTORE FILELISTONLY procedimento armazenado do sistema. Depois, remova um órfão com o sys.sp_delete_backup_file_snapshot procedimento de armazenamento do sistema. Veja os exemplos mais adiante neste artigo.
Para obter mais informações, consulte:
- sp_delete_backup
- sys.fn_db_backup_file_snapshots
- sp_delete_backup_file_snapshot
- RESTORE Declarações- FILELISTONLY
Considerações e limitações
Armazenamento premium: Quando você usa armazenamento premium, as seguintes limitações se aplicam:
Você não pode armazenar o arquivo de backup em si usando armazenamento premium.
Você não pode configurar a frequência dos backups para ser menor que 10 minutos.
Você pode armazenar até 100 snapshots.
Você deve usar
RESTORE WITH MOVE.Para mais informações sobre premium storage, veja Armazenamento Premium: High-Performance Armazenamento para Azure Cargas de Trabalho de Máquinas Virtuais.
Conta de armazenamento única: O snapshot do arquivo e os blobs de destino devem usar a mesma conta de armazenamento.
Modelo de recuperação em massa: Se você usar o modelo de recuperação em massa com um backup de log de transações que contém transações mínimamente registradas, não pode restaurar o log (incluindo a recuperação em momento real) a partir desse backup. Em vez disso, restaure o banco de dados para o momento do conjunto de backup snapshot de arquivo. A mesma limitação se aplica ao backup de streaming.
Restauração online: Você não pode realizar uma restauração online a partir de um backup de snapshot de arquivo. Para obter informações sobre restaurações online, consulte Restauração online (SQL Server).
Faturamento: O backup de snapshot de arquivo do SQL Server adiciona cobranças conforme os dados são alterados. Para saber mais, consulte Entendendo como os snapshots geram cobranças.
Arquivamento: Você pode arquivar um backup de snapshot de arquivo no Armazenamento de Blobs do Azure ou no backup de streaming. Para Armazenamento de Blobs do Azure, copie os snapshots do conjunto de backup de snapshots de arquivo em blobs separados. Para backup em streaming, restaure o backup snapshot de arquivo como um novo banco de dados e depois faça um backup em streaming regular com compressão e/ou criptografia. Você pode manter o arquivo pelo tempo que quiser, independente dos blobs base.
Importante
Manter múltiplos backups de snapshots de arquivos tem apenas uma pequena sobrecarga de desempenho, mas manter muitos pode afetar o desempenho de I/O no banco de dados. Mantenha apenas os backups de snapshots de arquivo que você precisa para atingir seu objetivo de ponto de recuperação.
Faça backup do banco de dados e do log usando um backup por instantâneo de arquivo
O exemplo a seguir utiliza um backup de snapshot de arquivo para fazer backup do AdventureWorks2025 banco de dados de exemplo em uma URL.
-- To permit log backups, before the full database backup, modify the database
-- to use the full recovery model.
USE master;
GO
ALTER DATABASE AdventureWorks2025
SET RECOVERY FULL;
GO
-- Back up the full AdventureWorks2025 database.
BACKUP DATABASE AdventureWorks2025
TO URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2025.bak'
WITH FILE_SNAPSHOT;
GO
-- Back up the AdventureWorks2025 log using a timestamp in the backup file name.
DECLARE @Log_Filename AS VARCHAR (300);
SET @Log_Filename = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2025_Log_'+
REPLACE (REPLACE (REPLACE (CONVERT (VARCHAR (40), GETDATE (), 120), '-','_'),':', '_'),' ', '_') + '.trn';
BACKUP LOG AdventureWorks2025
TO URL = @Log_Filename WITH FILE_SNAPSHOT;
GO
Restaurar a partir de um backup de instantâneo de arquivo do SQL Server
O exemplo a seguir restaura o AdventureWorks2025 banco de dados usando um conjunto de backup de arquivo de registro de transações e snapshot, e mostra uma operação de recuperação. Você pode restaurar um banco de dados a partir de um único conjunto de backup de arquivo de log de transações.
RESTORE DATABASE AdventureWorks2025 FROM URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2025_2026_05_18_16_00_00.trn'
WITH RECOVERY, REPLACE;
GO
Restaurar a partir de um backup de instantâneo de arquivo do SQL Server para um ponto no tempo
O exemplo a seguir utiliza dois conjuntos de backup de log de transações e snapshots de arquivo para restaurar o AdventureWorks2025 banco de dados ao seu estado em um momento especificado, e mostra uma operação de recuperação.
RESTORE DATABASE AdventureWorks2025
FROM URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2025_2026_05_18_16_00_00.trn'
WITH NORECOVERY,
REPLACE;
GO
RESTORE LOG AdventureWorks2025
FROM URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2025_2026_05_18_18_00_00.trn'
WITH RECOVERY,
STOPAT = 'May 18, 2026 5:35 PM';
GO
Excluir um conjunto de backup de instantâneo de arquivo de banco de dados
Para excluir um conjunto de backup de instantâneo de arquivo, use o procedimento armazenado do sistema sys.sp_delete_backup. Inclua o nome do banco de dados para que o procedimento verifique se o conjunto de backup é um backup para esse banco de dados. Se você omitir o nome do banco de dados, o procedimento pula essa verificação e exclui o conjunto de backup e seus snapshots de arquivo. Para obter mais informações, consulte sp_delete_backup.
Aviso
Se você excluir um conjunto de backup de snapshot de arquivo de outra forma, por exemplo, do portal do Azure ou do nó Armazenamento do Azure no Pesquisador de Objetos do SQL Server Management Studio, os snapshots de arquivo permanecem. Essas ferramentas só removem o arquivo de backup, que mantém os ponteiros para os snapshots do arquivo. Para encontrar snapshots de arquivo remanescentes, use a sys.fn_db_backup_file_snapshots função do sistema e depois exclua cada um com o sys.sp_delete_backup_file_snapshot procedimento armazenado do sistema.
O exemplo a seguir exclui um conjunto de backup de snapshots de arquivo, incluindo seu arquivo de backup e todos os snapshots de arquivo do conjunto.
EXECUTE sys.sp_delete_backup
'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2025.bak',
'AdventureWorks2025';
GO
Visualize snapshots de arquivos de backup do banco de dados
Para listar os snapshots do blob base para cada arquivo de banco de dados, use a sys.fn_db_backup_file_snapshots função do sistema. Você pode encontrar snapshots de arquivos de backup que permanecem quando algo que não sys.sp_delete_backup seja delete do arquivo de backup para um conjunto de backup de snapshots de arquivo. Para ver quais snapshots de arquivo pertencem a um conjunto de backup intacto, use RESTORE FILELISTONLY para listar os snapshots de arquivo que cada arquivo de backup referencia. Para mais informações, veja sys.fn_db_backup_file_snapshots e RESTORE Declarações - FILELISTONLY.
O exemplo a seguir lista todos os snapshots de arquivos de backup para um banco de dados.
--Either specify the database name or set the database context
USE AdventureWorks2025;
SELECT *
FROM sys.fn_db_backup_file_snapshots(NULL);
GO
SELECT *
FROM sys.fn_db_backup_file_snapshots('AdventureWorks2025');
GO
Exclua um snapshot individual de arquivo de backup de banco de dados
Para excluir um snapshot individual de arquivo de backup de um blob base de banco de dados, use o sys.sp_delete_backup_file_snapshot procedimento armazenado do sistema. Use principalmente para limpar snapshots de arquivos órfãos que permanecem quando um processo que não sys.sp_delete_backup seja delete o arquivo de backup. Para obter mais informações, consulte sp_delete_backup_file_snapshot.
Aviso
Deletar um snapshot individual de arquivo que pertence a um conjunto de backup de snapshots de arquivo invalida o conjunto de backup.
O exemplo a seguir exclui um snapshot de arquivo de backup. Você pode obter a URL de sys.fn_db_backup_file_snapshots.
EXECUTE sys.sp_delete_backup_file_snapshot
N'AdventureWorks2025',
N'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2025Data.mdf?snapshot=2026-05-29T21:31:31.6502195Z';
GO