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 2016 (13.x) e versões posteriores
Este tutorial ajuda você a entender como usar o Armazenamento de Blobs do Azure para arquivos de dados e backups no SQL Server 2016 (13.x) e versões posteriores.
O suporte para o Armazenamento de Blobs do Azure no SQL Server foi introduzido no SQL Server 2012 (11.x) Service Pack 1 CU2 e aprimorado em versões posteriores. Para obter uma visão geral da funcionalidade e dos benefícios de usar esse recurso, consulte arquivos de dados do SQL Server no Microsoft Azure.
Este tutorial mostra como trabalhar com arquivos de dados do SQL Server no Armazenamento de Blobs do Azure em várias seções. Cada seção é focada em uma tarefa específica e você deve concluir as seções em sequência. Primeiro, você aprenderá a criar um novo contêiner no Armazenamento de Blobs com uma política de acesso armazenada e uma assinatura de acesso compartilhado. Em seguida, você aprenderá a criar uma credencial do SQL Server para integrar o SQL Server ao Armazenamento de Blobs do Azure. Em seguida, faça backup de um banco de dados no Armazenamento de Blobs e restaure-o em uma máquina virtual do Azure. Em seguida, você usa o backup de log de transações de instantâneo de arquivo do SQL Server para restaurar para um ponto no tempo e para um novo banco de dados. Por fim, o tutorial demonstra o uso de procedimentos e funções armazenados do sistema de metadados para ajudá-lo a entender e trabalhar com backups de instantâneo de arquivo.
Pré-requisitos
Para concluir este tutorial, você deve estar familiarizado com os conceitos de backup e restauração do SQL Server e a sintaxe T-SQL.
Para usar este tutorial, você precisa de uma conta de armazenamento do Azure, sSMS (SQL Server Management Studio), acesso a uma instância do SQL Server local, acesso a uma VM (máquina virtual) do Azure executando uma instância do SQL Server 2016 (13.x) ou versão posterior e um AdventureWorks2025 banco de dados. Além disso, a conta usada para emitir o e BACKUP os RESTORE comandos devem estar na função de banco de dados db_backupoperator com a alteração de qualquer permissão de credencial.
- Obtenha uma conta gratuita do Azure.
- Crie uma conta de armazenamento do Azure.
- Instale SQL Server 2017 Developer Edition.
- Provisione uma VM do Azure executando o SQL Server.
- Instalar o SQL Server Management Studio.
- Baixar Bancos de dados de exemplo do AdventureWorks.
- Atribua a conta de usuário à função de db_backupoperator e conceda permissões de alteração de credencial .
Importante
O SQL Server não dá suporte ao Azure Data Lake Storage. Verifique se o namespace hierárquico não está habilitado na conta de armazenamento usada para este tutorial.
1 – Criar política de acesso armazenado e armazenamento de acesso compartilhado
Nesta seção, você usará um script do Azure PowerShell para criar uma assinatura de acesso compartilhado em um contêiner do Armazenamento de Blobs do Azure usando uma política de acesso armazenada.
Observação
Esse script é escrito usando o Azure PowerShell 5.0.10586.
Uma assinatura de acesso compartilhado é um URI que concede direitos de acesso restritos a contêineres, blobs, filas ou tabelas. Uma política de acesso armazenado fornece um nível extra de controle sobre assinaturas de acesso compartilhado no lado do servidor, incluindo revogação, expiração ou extensão do acesso. Ao usar esse novo aprimoramento, você precisa criar uma política em um contêiner com pelo menos direitos de leitura, gravação e lista.
Você pode criar uma política de acesso armazenado e uma assinatura de acesso compartilhado usando o Azure PowerShell, o SDK de Armazenamento do Azure, a API REST do Azure ou um utilitário de terceiros. Este tutorial demonstra como usar um script do Azure PowerShell para concluir essa tarefa. O script usa o modelo de implantação do Resource Manager e cria os novos recursos a seguir
- Grupo de recursos
- Conta de armazenamento
- Contêiner do Armazenamento de Blob do Azure
- Política de SAS
Esse script começa declarando várias variáveis para especificar os nomes dos recursos anteriores e os nomes dos seguintes valores de entrada necessários:
- Um nome de prefixo usado na nomenclatura de outros objetos de recurso
- Nome da assinatura
- Localização do datacenter
O script é concluído gerando a instrução apropriada CREATE CREDENTIAL que você usa em 2 – Criar uma credencial do SQL Server usando uma assinatura de acesso compartilhado. Esta instrução é copiada para sua área de transferência para você e é saída para o console para você ver.
Para criar uma política no contêiner e gerar uma SAS (Assinatura de Acesso Compartilhado), siga estas etapas:
Abra o PowerShell ou o ISE do Windows PowerShell (consulte os requisitos de versão anteriores).
Edite e execute o seguinte script:
# Define global variables for the script $prefixName = '<a prefix name>' # used as the prefix for the name for various objects $subscriptionID = '<your subscription ID>' # the ID 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' # Add 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 -SubscriptionId $subscriptionID # Create a new resource group - comment out this line to use an existing resource group New-AzResourceGroup -Name $resourceGroupName -Location $locationName # Create a new Azure Resource Manager storage account - comment out this line to use an existing Azure Resource Manager storage account New-AzStorageAccount -Name $storageAccountName -ResourceGroupName $resourceGroupName -Type Standard_RAGRS -Location $locationName # Get the access keys for the Azure Resource Manager storage account $accountKeys = Get-AzStorageAccountKey -ResourceGroupName $resourceGroupName -Name $storageAccountName # Create a new storage account context using an Azure Resource Manager storage account $storageContext = New-AzStorageContext -StorageAccountName $storageAccountName -StorageAccountKey $accountKeys[0].Value # Creates a new container in Blob Storage $container = New-AzStorageContainer -Context $storageContext -Name $containerName # Sets up a Stored Access Policy and a Shared Access Signature for the new container $policy = New-AzStorageContainerStoredAccessPolicy -Container $containerName -Policy $policyName -Context $storageContext -StartTime $(Get-Date).ToUniversalTime().AddMinutes(-5) -ExpiryTime $(Get-Date).ToUniversalTime().AddYears(10) -Permission rwld # Gets the Shared Access Signature for the policy $sas = New-AzStorageContainerSASToken -name $containerName -Policy $policyName -Context $storageContext Write-Host 'Shared Access Signature= '$($sas.Substring(1))'' # Sets the variables for the new container you just created $container = Get-AzStorageContainer -Context $storageContext -Name $containerName $cbc = $container.CloudBlobContainer # 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 Set-Clipboard -Value $tSql Write-Host $tSql # Once you're done with the tutorial, remove the resource group to clean up the resources. # Remove-AzResourceGroup -Name $resourceGroupNameDepois que o script for concluído, a
CREATE CREDENTIALinstrução estará em sua área de transferência para uso na próxima seção.
2 – Criar uma credencial do SQL Server usando uma assinatura de acesso compartilhado
Nesta seção, você criará uma credencial para armazenar as informações de segurança, que são usadas pelo SQL Server para gravar e ler no contêiner do Armazenamento de Blobs do Azure criado na etapa anterior.
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. A credencial armazena o caminho de URI do contêiner do Armazenamento de Blobs do Azure e a assinatura de acesso compartilhado para esse contêiner.
Para criar uma credencial do SQL Server, siga estas etapas:
Inicie o SSMS.
Abra uma nova janela de consulta e conecte-se à instância do SQL Server do mecanismo de banco de dados em seu ambiente local.
Na nova janela de consulta, cole a
CREATE CREDENTIALinstrução com a assinatura de acesso compartilhado da seção 1 e execute esse script.O script se parece com o código a seguir.
/* Example: USE master CREATE CREDENTIAL [https://msfttutorial.blob.core.windows.net/containername] WITH IDENTITY='SHARED ACCESS SIGNATURE' , SECRET = 'sharedaccesssignature' GO */ USE master; CREATE CREDENTIAL [https://<storage-account>.blob.core.windows.net/<container-name>] -- this name must match the container path, start with https and must not contain a forward slash at the end WITH IDENTITY = 'SHARED ACCESS SIGNATURE', -- this is a mandatory string and should not be changed SECRET = 'sharedaccesssignature'; -- this is the shared access signature key that you obtained in section 1. GOPara ver todas as credenciais disponíveis, você pode executar a seguinte instrução em uma janela de consulta conectada à sua instância:
SELECT * FROM sys.credentials;Abra uma nova janela de consulta e conecte-se à instância do SQL Server do mecanismo de banco de dados em sua máquina virtual do Azure.
Na nova janela de consulta, cole a
CREATE CREDENTIALinstrução com a assinatura de acesso compartilhado da seção 1 e execute esse script.Repita as etapas 5 e 6 para quaisquer instâncias adicionais do SQL Server que você deseja ter acesso ao contêiner.
3 – BACKUP de banco de dados para URL
Nesta seção, você faz backup do AdventureWorks2025 banco de dados em sua instância do SQL Server para o contêiner que você criou na Seção 1.
Para fazer backup de um banco de dados no armazenamento de blobs, siga estas etapas:
Inicie o SSMS.
Abra uma nova janela de consulta e conecte-se à instância do SQL Server em sua máquina virtual do Azure.
Copie e cole o script Transact-SQL a seguir na janela de consulta. Modifique a URL adequadamente para o nome da conta de armazenamento e o contêiner especificado na seção 1 e execute esse script.
-- To permit log backups, before the full database backup, modify the database to use the full recovery model. USE master; ALTER DATABASE AdventureWorks2022 SET RECOVERY FULL; -- Back up the full AdventureWorks2022 database to the container that you created in section 1 BACKUP DATABASE AdventureWorks2022 TO URL = 'https://<storage-account>.blob.core.windows.net/<container-name>/AdventureWorks2022_onprem.bak';Abra o Pesquisador de Objetos e conecte-se ao armazenamento do Azure usando sua conta de armazenamento e a chave da conta.
- Expanda Contêineres, expanda o contêiner que você criou na seção 1 e verifique se o backup da etapa 3 anteriormente aparece neste contêiner.
4 – Restaurar o banco de dados para a máquina virtual da URL
Nesta seção, você restaurará o AdventureWorks2025 banco de dados para sua instância do SQL Server em sua máquina virtual do Azure.
Observação
Para fins de simplicidade neste tutorial, usamos o mesmo contêiner para os arquivos de dados e de log que usamos para o backup do banco de dados. Em um ambiente de produção, você provavelmente usaria vários contêineres e, frequentemente, vários arquivos de dados também. Você também pode considerar a distribuição do backup em vários blobs para aumentar o desempenho do backup ao fazer backup de um banco de dados grande.
Para restaurar o AdventureWorks2025 banco de dados do Armazenamento de Blobs do Azure para sua instância do SQL Server em sua máquina virtual do Azure, siga estas etapas:
Inicie o SSMS.
Abra uma nova janela de consulta e conecte-se à instância do SQL Server do mecanismo de banco de dados em sua máquina virtual do Azure.
Copie e cole o script Transact-SQL a seguir na janela de consulta. Modifique a URL adequadamente para o nome da conta de armazenamento e o contêiner especificado na seção 1 e execute esse script.
-- Restore AdventureWorks2022 from URL to SQL Server instance using Azure Blob Storage for database files RESTORE DATABASE AdventureWorks2022 FROM URL = 'https://<storage-account>.blob.core.windows.net/<container-name>/AdventureWorks2022_onprem.bak' WITH MOVE 'AdventureWorks2022_data' TO 'https://<storage-account>.blob.core.windows.net/<container-name>/AdventureWorks2022_Data.mdf', MOVE 'AdventureWorks2022_log' TO 'https://<storage-account>.blob.core.windows.net/<container-name>/AdventureWorks2022_Log.ldf'; --, REPLACEAbra o Pesquisador de Objetos e conecte-se à instância do SQL Server do Azure.
No Pesquisador de Objetos, expanda o nó Bancos de Dados e verifique se o
AdventureWorks2025banco de dados foi restaurado (atualize o nó conforme necessário).Clique com o botão direito do mouse em AdventureWorks2025 e selecione Propriedades.
Selecione Arquivos e verifique se os caminhos para os dois arquivos de banco de dados são URLs apontando para blobs no contêiner do Armazenamento de Blobs do Azure (selecione Cancelar quando terminar).
No Pesquisador de Objetos, conecte-se ao armazenamento do Azure.
- Expanda Contêineres, expanda o contêiner que você criou na seção 1 e verifique se a
AdventureWorks2022_Data.mdfetapa 3 apareceAdventureWorks2022_Log.ldfanteriormente neste contêiner, juntamente com o arquivo de backup da seção 3 (atualize o nó conforme necessário).
- Expanda Contêineres, expanda o contêiner que você criou na seção 1 e verifique se a
5 – Backup do banco de dados usando o backup de instantâneo de arquivo
Nesta seção, você faz backup do banco de dados em sua máquina virtual do AdventureWorks2025 Azure usando o backup de instantâneo de arquivo para executar um backup quase instantâneo usando instantâneos do Azure. Para obter mais informações sobre backups de instantâneo de arquivo, consulte backupsFile-Snapshot para arquivos de banco de dados no Azure
Para fazer backup do banco de dados usando o AdventureWorks2025 backup de instantâneo de arquivo, siga estas etapas:
Inicie o SSMS.
Abra uma nova janela de consulta e conecte-se à instância do SQL Server do mecanismo de banco de dados em sua máquina virtual do Azure.
Copie, cole e execute o script de Transact-SQL a seguir na janela de consulta (não feche esta janela de consulta – execute esse script novamente na etapa 5). Esse procedimento armazenado do sistema permite que você exiba os backups de instantâneo de arquivo existentes para cada arquivo que compreende um banco de dados especificado. Você pode ver que não há backups de instantâneo de arquivo para este banco de dados.
-- Verify that no file snapshot backups exist SELECT * FROM sys.fn_db_backup_file_snapshots('AdventureWorks2022');Copie e cole o script Transact-SQL a seguir na janela de consulta. Modifique a URL adequadamente para o nome da conta de armazenamento e o contêiner especificado na seção 1 e execute esse script. Observe a rapidez com que esse backup ocorre.
-- Backup the AdventureWorks2022 database with FILE_SNAPSHOT BACKUP DATABASE AdventureWorks2022 TO URL = 'https://<storage-account>.blob.core.windows.net/<container-name>/AdventureWorks2022_Azure.bak' WITH FILE_SNAPSHOT;Depois de verificar se o script na etapa 4 foi executado com êxito, execute o script a seguir novamente. A operação de backup de instantâneo de arquivo na etapa 4 gerou instantâneos de arquivo dos dados e do arquivo de log.
-- Verify that two file-snapshot backups exist SELECT * FROM sys.fn_db_backup_file_snapshots('AdventureWorks2022');No Pesquisador de Objetos, em sua instância do SQL Server em sua máquina virtual do Azure, expanda o nó Bancos de Dados e verifique se o
AdventureWorks2025banco de dados foi restaurado para essa instância (atualize o nó conforme necessário).No Pesquisador de Objetos, conecte-se ao armazenamento do Azure.
Expanda Contêineres, expanda o contêiner que você criou na seção 1 e verifique se a
AdventureWorks2022_Azure.baketapa 4 anterior aparece neste contêiner, juntamente com o arquivo de backup da seção 3 e os arquivos de banco de dados da seção 4 (atualize o nó conforme necessário).
6 – Gerar atividade e log de backup usando o backup de instantâneo de arquivo
Nesta seção, você gera atividade no AdventureWorks2025 banco de dados e cria periodicamente backups de log de transações usando backups de instantâneo de arquivo. Para obter mais informações sobre como usar backups de instantâneo de arquivo, consulte File-Snapshot Backups para Arquivos de Banco de Dados no Azure.
Para gerar atividade no AdventureWorks2025 banco de dados e criar periodicamente backups de log de transações usando backups de instantâneo de arquivo, siga estas etapas:
Inicie o SSMS.
Abra duas novas janelas de consulta e conecte cada uma à instância do SQL Server do mecanismo de banco de dados em sua máquina virtual do Azure.
Copie, cole e execute o script Transact-SQL a seguir em uma das janelas de consulta. A
Production.Locationtabela tem 14 linhas antes de adicionarmos novas linhas na etapa 4.-- Verify row count at start SELECT COUNT(*) FROM AdventureWorks2022.Production.Location;Copie e cole os dois scripts de Transact-SQL a seguir nas duas janelas de consulta separadas. Modifique a URL adequadamente para o nome da conta de armazenamento e o contêiner especificado na seção 1 e execute esses scripts simultaneamente em janelas de consulta separadas. Esses scripts levam alguns minutos para serem concluídos.
-- Insert 30,000 new rows into the Production.Location table in the AdventureWorks2022 database in batches of 75 DECLARE @count AS INT = 1, @inner AS INT; WHILE @count < 400 BEGIN BEGIN TRANSACTION; SET @inner = 1; WHILE @inner <= 75 BEGIN INSERT INTO AdventureWorks2022.Production.Location ( Name, CostRate, Availability, ModifiedDate ) VALUES (NEWID(), .5, 5.2, GETDATE()); SET @inner = @inner + 1; END COMMIT TRANSACTION; WAITFOR DELAY '00:00:01'; SET @count = @count + 1; END SELECT COUNT(*) FROM AdventureWorks2022.Production.Location;--take 7 transaction log backups with FILE_SNAPSHOT, one per minute, and include the row count and the execution time in the backup file name DECLARE @count INT=1, @device NVARCHAR(120), @numrows INT; WHILE @count <= 7 BEGIN SET @numrows = (SELECT COUNT (*) FROM AdventureWorks2022.Production.Location); SET @device = 'https://<storage-account>.blob.core.windows.net/<container-name>/tutorial-' + CONVERT (varchar(10),@numrows) + '-' + FORMAT(GETDATE(), 'yyyyMMddHHmmss') + '.bak'; BACKUP LOG AdventureWorks2022 TO URL = @device WITH FILE_SNAPSHOT; SELECT * from sys.fn_db_backup_file_snapshots ('AdventureWorks2022'); WAITFOR DELAY '00:1:00'; SET @count = @count + 1; END;Examine a saída do primeiro script e observe que a contagem de linhas final agora é 29.939.
Examine a saída do segundo script e observe que cada vez que a
BACKUP LOGinstrução é executada, dois novos instantâneos de arquivo são criados, um instantâneo de arquivo do arquivo de log e um instantâneo de arquivo do arquivo de dados – para um total de dois instantâneos de arquivo para cada arquivo de banco de dados. Após a conclusão do segundo script, observe que agora há um total de 16 instantâneos de arquivo, 8 para cada arquivo de banco de dados - um daBACKUP DATABASEinstrução e um para cada execução daBACKUP LOGinstrução.No Pesquisador de Objetos, conecte-se ao armazenamento do Azure.
Expanda Contêineres, expanda o contêiner que você criou na seção 1 e verifique se sete novos arquivos de backup são exibidos, juntamente com os arquivos de dados das seções anteriores (atualize o nó conforme necessário).
7 – Restaurar um banco de dados para um ponto no tempo
Nesta seção, você restaurará o AdventureWorks2025 banco de dados para um ponto no tempo entre dois dos backups de log de transações.
Com backups tradicionais, para realizar a restauração pontual, você precisaria usar o backup completo do banco de dados, talvez um backup diferencial e todos os arquivos de log de transações até e logo após o ponto no tempo para o qual você deseja restaurar. Com backups de instantâneo de arquivo, você só precisa dos dois arquivos de backup de log adjacentes que fornecem as postagens de meta enquadrando o tempo para o qual você deseja restaurar. Você só precisa de dois conjuntos de backup de instantâneo de arquivo de log porque cada backup de log cria um instantâneo de arquivo de cada arquivo de banco de dados (cada arquivo de dados e o arquivo de log).
Para restaurar um banco de dados para um ponto especificado no tempo dos conjuntos de backup de instantâneo de arquivo, siga estas etapas:
Inicie o SSMS.
Abra uma nova janela de consulta e conecte-se à instância do SQL Server do mecanismo de banco de dados em sua máquina virtual do Azure.
Copie, cole e execute o script de Transact-SQL a seguir na janela de consulta. Verifique se a
Production.Locationtabela tem 29.939 linhas antes de restaurá-la para um ponto no tempo em que há menos linhas na etapa 4.-- Verify row count at start SELECT COUNT(*) FROM AdventureWorks2022.Production.Location;
Copie e cole o script Transact-SQL a seguir na janela de consulta. Selecione dois arquivos de backup de log adjacentes e converta o nome do arquivo na data e hora necessárias para esse script. Modifique a URL adequadamente para o nome da conta de armazenamento e o contêiner especificado na seção 1. Forneça o primeiro e o segundo nomes de arquivo de backup, forneça o
STOPATtempo no formato eJune 26, 2018 01:48 PMexecute esse script. Leva alguns minutos para ser concluído.-- restore and recover to a point in time between the times of two transaction log backups, and then verify the row count ALTER DATABASE AdventureWorks2022 SET SINGLE_USER WITH ROLLBACK IMMEDIATE; RESTORE DATABASE AdventureWorks2022 FROM URL = 'https://<storage-account>.blob.core.windows.net/<container-name>/<firstbackupfile>.bak' WITH NORECOVERY, REPLACE; RESTORE LOG AdventureWorks2022 FROM URL = 'https://<storage-account>.blob.core.windows.net/<container-name>/<secondbackupfile>.bak' WITH RECOVERY, STOPAT = 'June 26, 2018 01:48 PM'; ALTER DATABASE AdventureWorks2022 SET MULTI_USER; -- get new count SELECT COUNT(*) FROM AdventureWorks2022.Production.Location;Examine a saída. Após a restauração, a contagem de linhas é de 18.389, que é um número de contagem de linhas entre o backup de log 5 e 6 (sua contagem de linhas pode variar).
8 – Restaurar como novo banco de dados do backup de log
Nesta seção, você restaurará o AdventureWorks2025 banco de dados como um novo banco de dados de um backup de log de transações de instantâneo de arquivo.
Nesse cenário, você está executando uma restauração para uma instância do SQL Server em uma máquina virtual diferente para fins de análise de negócios e relatórios. Restaurar para uma instância diferente em uma máquina virtual diferente descarrega a carga de trabalho para uma máquina virtual dedicada e dimensionada para essa finalidade, removendo seus requisitos de recursos do sistema transacional.
A restauração de um backup de log de transações com backup de instantâneo de arquivo é rápida, substancialmente mais rápida do que com backups de streaming tradicionais. Com backups de streaming tradicionais, você precisa usar o backup completo do banco de dados, talvez um backup diferencial e alguns ou todos os backups de log de transações (ou um novo backup de banco de dados completo). No entanto, com backups de log de instantâneo de arquivo, você só precisa do backup de log mais recente (ou qualquer outro backup de log ou quaisquer dois backups de log adjacentes para restauração pontual em um ponto entre dois tempos de backup de log). Para ficar claro, você só precisa de um conjunto de backup de instantâneo de arquivo de log porque cada backup de log de instantâneo de arquivo cria um instantâneo de arquivo de cada arquivo de banco de dados (cada arquivo de dados e o arquivo de log).
Para restaurar um banco de dados para um novo banco de dados de um backup de log de transações usando o backup de instantâneo de arquivo, siga estas etapas:
Inicie o SSMS.
Abra uma nova janela de consulta e conecte-se à instância do SQL Server do mecanismo de banco de dados em uma máquina virtual do Azure.
Se essa for uma máquina virtual do Azure diferente do que você tem usado para as seções anteriores, verifique se você seguiu as etapas em 2 – Criar uma credencial do SQL Server usando uma assinatura de acesso compartilhado. Se você quiser restaurar para um contêiner diferente, siga as etapas em 1 – Criar política de acesso armazenado e armazenamento de acesso compartilhado para o novo contêiner.
Copie e cole o script Transact-SQL a seguir na janela de consulta. Selecione o arquivo de backup de log que você deseja usar. Modifique a URL adequadamente para o nome da conta de armazenamento e o contêiner especificado na seção 1, forneça o nome do arquivo de backup de log e execute esse script.
-- restore as a new database from a transaction log backup file RESTORE DATABASE AdventureWorks2022_EOM FROM URL = 'https://<storage-account>.blob.core.windows.net/<container-name>/<logbackupfile.bak>' WITH MOVE 'AdventureWorks2022_data' TO 'https://<storage-account>.blob.core.windows.net/<container-name>/AdventureWorks2022_EOM_Data.mdf', MOVE 'AdventureWorks2022_log' TO 'https://<storage-account>.blob.core.windows.net/<container-name>/AdventureWorks2022_EOM_Log.ldf', RECOVERY; --, REPLACEExamine a saída para verificar se a restauração foi bem-sucedida.
No Pesquisador de Objetos, conecte-se ao armazenamento do Azure.
Expanda Contêineres, expanda o contêiner que você criou na seção 1 (atualize se necessário) e verifique se os novos dados e arquivos de log aparecem no contêiner, juntamente com os blobs das seções anteriores.
9 – Gerenciar conjuntos de backup e backups de instantâneo de arquivo
Nesta seção, você excluirá um conjunto de backup usando o procedimento armazenado do sistema sp_delete_backup . Esse procedimento armazenado do sistema exclui o arquivo de backup e o instantâneo de arquivo em cada arquivo de banco de dados associado a esse conjunto de backup.
Observação
Se você tentar excluir um conjunto de backup excluindo o arquivo de backup do contêiner do Armazenamento de Blobs do Azure, você só excluirá o próprio arquivo de backup – os instantâneos de arquivo associados permanecerão. Se você se encontrar nesse cenário, use a função sys.fn_db_backup_file_snapshots sistema para identificar a URL dos instantâneos de arquivo órfãos e usar o procedimento armazenado do sistema sp_delete_backup_file_snapshot para excluir cada instantâneo de arquivo órfão. Para obter mais informações, consulte Backups de instantâneo de arquivo para arquivos de banco de dados no Azure.
Para excluir um conjunto de backup de instantâneo de arquivo, siga estas etapas:
Inicie o SSMS.
Abra uma nova janela de consulta e conecte-se à instância do SQL Server do mecanismo de banco de dados em sua máquina virtual do Azure (ou a qualquer instância do SQL Server com permissões para ler e gravar neste contêiner).
Copie e cole o script Transact-SQL a seguir na janela de consulta. Selecione o backup de log que você deseja excluir junto com seus instantâneos de arquivo associados. Modifique a URL adequadamente para o nome da conta de armazenamento e o contêiner especificado na seção 1, forneça o nome do arquivo de backup de log e execute esse script.
EXECUTE sys.sp_delete_backup 'https://<storage-account>.blob.core.windows.net/<container-name>/tutorial-21764-20181003205236.bak';No Pesquisador de Objetos, conecte-se ao armazenamento do Azure.
Expanda Contêineres, expanda o contêiner que você criou na seção 1 e verifique se o arquivo de backup usado na etapa 3 não aparece mais neste contêiner (atualize o nó conforme necessário).
Copie, cole e execute o script de Transact-SQL a seguir na janela de consulta para verificar se dois instantâneos de arquivo foram excluídos.
-- verify that two file snapshots have been removed SELECT * FROM sys.fn_db_backup_file_snapshots('AdventureWorks2022');
10 – Remover recursos
Depois de terminar este tutorial e conservar recursos, exclua o grupo de recursos criado neste tutorial.
Para excluir o grupo de recursos, execute o seguinte código do PowerShell:
# Define global variables for the script
$prefixName = '<prefix name>' # should be the same as the beginning of the tutorial
# 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 -SubscriptionId $subscriptionID
# Remove the resource group
Remove-AzResourceGroup -Name $resourceGroupName
Conteúdo relacionado
- Arquivos de dados do SQL Server no Microsoft Azure
- File-Snapshot Backups para arquivos de banco de dados no Azure
- Backup do SQL Server para URL para Armazenamento de Blobs do Azure
- Assinaturas de Acesso Compartilhado, Parte 1: Noções básicas sobre o modelo SAS
- Criar contêiner
- Definir ACL do contêiner
- Obter ACL do contêiner
- Credenciais (Mecanismo de Banco de Dados)
- CRIAR CREDENCIAL (Transact-SQL)
- sys.credentials (Transact-SQL)
- sp_delete_backup (Transact-SQL)
- sys.fn_db_backup_file_snapshots (Transact-SQL)
- sp_delete_backup_file_snapshot (Transact-SQL)