Fazer backup e restaurar bancos de dados no Azure SQL Edge
Importante
O Azure SQL Edge será desativado em 30 de setembro de 2025. Para obter mais informações e opções de migração, consulte o Aviso de aposentadoria.
Nota
O Azure SQL Edge não suporta mais a plataforma ARM64.
O Azure SQL Edge baseia-se nas versões mais recentes do Mecanismo de Banco de Dados Microsoft SQL. Ele fornece recursos de backup e restauração de banco de dados semelhantes ao SQL Server no Linux e ao SQL Server em execução em contêineres. O componente de backup e restauração fornece uma salvaguarda essencial para proteger os dados armazenados em seus bancos de dados do Azure SQL Edge.
Para minimizar o risco de perda catastrófica de dados, você deve fazer backup de seus bancos de dados periodicamente para preservar modificações em seus dados regularmente. Uma estratégia de backup e restauração bem planejada ajuda a proteger os bancos de dados contra a perda de dados causada por várias falhas. Teste sua estratégia restaurando um conjunto de backups e, em seguida, recuperando seu banco de dados, para prepará-lo para responder de forma eficaz a um desastre.
Para ler mais sobre por que os backups são importantes, consulte Backup e restauração de bancos de dados do SQL Server.
O Azure SQL Edge permite fazer backup e restaurar a partir do armazenamento local e dos blobs do Azure. Para obter mais informações, consulte Backup e restauração do SQL Server com armazenamento de Blob do Azure e Backup do SQL Server para URL.
Fazer backup de um banco de dados no Azure SQL Edge
O Azure SQL Edge dá suporte aos mesmos tipos de backup do SQL Server. Para obter uma lista completa, consulte Visão geral do backup.
Importante
Os bancos de dados criados no Azure SQL Edge usam o modelo de recuperação simples por padrão. Como tal, não é possível executar backups de log nesses bancos de dados. Se precisar fazer isso, precisará de um administrador para alterar o modelo de recuperação de banco de dados para o modelo de recuperação completa. Para obter uma lista completa dos modelos de recuperação suportados pelo SQL Server, consulte Visão geral do modelo de recuperação.
Fazer backup no disco local
No exemplo a seguir, você usa o BACKUP DATABASE
comando Transact-SQL para criar um backup de banco de dados no contêiner. Neste exemplo, você cria uma nova pasta chamada backup para armazenar os arquivos de backup.
Crie uma pasta para os backups. Execute este comando no host onde seu contêiner do Azure SQL Edge está sendo executado. No comando a seguir, substitua <AzureSQLEdge_Container_Name> pelo nome do contêiner do Azure SQL Edge em sua implantação.
sudo docker exec -it <AzureSQLEdge_Container_Name> mkdir /var/opt/mssql/backup
Conecte-se à instância do SQL Edge do Azure usando o SQL Server Management Studio (SSMS) ou usando o Azure Data Studio. Execute o
BACKUP DATABASE
comando para fazer o backup do seu banco de dados de usuários. No exemplo a seguir, você está fazendo o backup do banco deIronOreSilicaPrediction
dados.BACKUP DATABASE [IronOreSilicaPrediction] TO DISK = N'/var/opt/mssql/backup/IronOrePredictDB.bak' WITH NOFORMAT, NOINIT, NAME = N'IronOreSilicaPrediction-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, COMPRESSION, STATS = 10; GO
Depois de executar o comando, se o backup do banco de dados for bem-sucedido, você verá mensagens semelhantes às seguintes na seção de resultados do SSMS ou do Azure Data Studio.
10 percent processed. 20 percent processed. 30 percent processed. 40 percent processed. 50 percent processed. 60 percent processed. 70 percent processed. 80 percent processed. 90 percent processed. 100 percent processed. Processed 51648 pages for database 'IronOreSilicaPrediction', file 'IronOreSilicaPrediction' on file 1. Processed 2 pages for database 'IronOreSilicaPrediction', file 'IronOreSilicaPrediction_log' on file 1. BACKUP DATABASE successfully processed 51650 pages in 3.588 seconds (112.461 MB/sec). Completion time: 2020-04-09T23:54:48.4957691-07:00
Fazer backup no URL
O Azure SQL Edge dá suporte a backups para blobs de página e blobs de bloco. Para obter mais informações, consulte Backup para bloquear blob vs blob de página. No exemplo a seguir, o backup do banco de dados IronOreSilicaPrediction
está sendo feito em um blob de bloco.
Para configurar backups para bloquear blobs, primeiro gere um token de assinatura de acesso compartilhado (SAS) que você pode usar para criar uma credencial do SQL Server no SQL Edge do Azure. O script cria uma SAS 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. O script a seguir pressupõe que você já tenha uma assinatura do Azure com uma conta de armazenamento e um contêiner de armazenamento para os backups.
# Define global variables for the script $subscriptionName='<your subscription name>' # the name of subscription name you will use $resourcegroupName = '<your resource group name>' # the name of resource group you will use $storageAccountName= '<your storage account name>' # the storage account name you will use for backups $containerName= '<your storage container name>' # the storage container name to which you will attach the SAS policy with its SAS token $policyName = 'SASPolicy' # the name of the SAS policy # adds an authenticated Azure account for use in the session Login-AzAccount # set the tenant, subscription and environment for use in the rest of Select-AzSubscription -Subscription $subscriptionName # Generate the SAS token $sa = Get-AzStorageAccount -ResourceGroupName $resourcegroupName -Name $storageAccountName $storagekey = Get-AzStorageAccountKey -ResourceGroupName $resourcegroupName -Name $storageAccountName $storageContext = New-AzStorageContext -StorageAccountName $storageAccountName -StorageAccountKey $storagekey[0].Value $cbc = Get-AzStorageContainer -Name $containerName -Context $storageContext $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.Substring(1))'' # 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.CloudBlobContainer.Uri.AbsoluteUri,$sas.Substring(1) $tSql | clip Write-Host $tSql
Depois de executar o script com êxito, copie o
CREATE CREDENTIAL
comando para uma ferramenta de consulta. Em seguida, conecte-se a uma instância do SQL Server e execute o comando para criar a credencial com o SAS.Conecte-se à instância do Azure SQL Edge usando o SSMS ou o Azure Data Studio e crie a credencial usando o comando da etapa anterior. Certifique-se de substituir o
CREATE CREDENTIAL
comando pela saída real da etapa anterior.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>';
O comando a seguir faz um backup do para o contêiner de armazenamento do
IronOreSilicaPrediction
Azure.BACKUP DATABASE IronOreSilicaPrediction TO URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/IronOreSilicaPrediction.bak' With MAXTRANSFERSIZE = 4194304,BLOCKSIZE=65536; GO
Restaurar um banco de dados no Azure SQL Edge
No Azure SQL Edge, você pode restaurar a partir de um disco local, um local de rede ou uma conta de armazenamento de Blob do Azure. Para obter mais informações sobre restauração e recuperação no SQL Server, consulte Visão geral de restauração e recuperação. Para obter uma visão geral do modelo de recuperação simples no SQL Server, consulte Restaurações completas de banco de dados (modelo de recuperação simples).
Importante
Os bancos de dados criados no Azure SQL Edge não podem ser restaurados em uma instância do Microsoft SQL Server ou do Azure SQL. Além disso, um banco de dados criado no Microsoft SQL Server ou no Azure SQL pode ser restaurado no Azure SQL Edge, desde que o banco de dados não contenha nenhum dos recursos não suportados pelo Azure SQL Edge.
Restaurar a partir de um disco local
Este exemplo usa o IronOreSilicaPrediction
backup que você fez no exemplo anterior. Agora, você irá restaurá-lo como um novo banco de dados com um nome diferente.
Se o arquivo de backup do banco de dados ainda não estiver presente no contêiner, você poderá usar o seguinte comando para copiar o arquivo para o contêiner. O exemplo a seguir pressupõe que o arquivo de backup esteja presente no host local e esteja sendo copiado para a pasta /var/opt/mssql/backup em um contêiner do Azure SQL Edge chamado sql1.
sudo docker cp IronOrePredictDB.bak sql1:/var/opt/mssql/backup
Conecte-se à instância do SQL Edge do Azure usando o SSMS ou o Azure Data Studio para executar o comando de restauração. No exemplo a seguir,
IronOrePredictDB.bak
é restaurado para criar um novo banco de dados,IronOreSilicaPrediction_2
.Restore FilelistOnly from disk = N'/var/opt/mssql/backup/IronOrePredictDB.bak' Restore Database IronOreSilicaPrediction_2 From disk = N'/var/opt/mssql/backup/IronOrePredictDB.bak' WITH MOVE 'IronOreSilicaPrediction' TO '/var/opt/mssql/data/IronOreSilicaPrediction_Primary_2.mdf', MOVE 'IronOreSilicaPrediction_log' TO '/var/opt/mssql/data/IronOreSilicaPrediction_Primary_2.ldf';
Depois de executar o comando restaurar, se a operação de restauração tiver sido bem-sucedida, você verá mensagens semelhantes às seguintes na janela de saída.
Processed 51648 pages for database 'IronOreSilicaPrediction_2', file 'IronOreSilicaPrediction' on file 1. Processed 2 pages for database 'IronOreSilicaPrediction_2', file 'IronOreSilicaPrediction_log' on file 1. RESTORE DATABASE successfully processed 51650 pages in 6.543 seconds (61.670 MB/sec). Completion time: 2020-04-13T23:49:21.1600986-07:00
Restaurar a partir do URL
O Azure SQL Edge também dá suporte à restauração de um banco de dados de uma conta de Armazenamento do Azure. Você pode restaurar a partir dos blobs de bloco ou backups de blob de página. No exemplo a seguir, o IronOreSilicaPrediction_2020_04_16.bak
arquivo de backup do banco de dados em um blob de bloco é restaurado para criar o banco de dados, IronOreSilicaPrediction_3
.
RESTORE DATABASE IronOreSilicaPrediction_3
FROM URL = 'https://mystorageaccount.blob.core.windows.net/mysecondcontainer/IronOreSilicaPrediction_2020_04_16.bak'
WITH MOVE 'IronOreSilicaPrediction' TO '/var/opt/mssql/data/IronOreSilicaPrediction_Primary_3.mdf',
MOVE 'IronOreSilicaPrediction_log' TO '/var/opt/mssql/data/IronOreSilicaPrediction_Primary_3.ldf',
STATS = 10;