Com o Banco de Dados SQL do Azure, você pode configurar uma política de retenção de backup de longo prazo (LTR) para reter backups automaticamente em contêineres de armazenamento de blobs do Azure separados por até 10 anos. Em seguida, você pode recuperar um banco de dados usando esses backups usando o portal do Azure, CLI do Azure ou o PowerShell.
Se preferir executar os comandos de referência da CLI localmente, instale a CLI do Azure. Para execuções no Windows ou no macOS, considere executar a CLI do Azure em um contêiner do Docker. Para obter mais informações, confira Como executar a CLI do Azure em um contêiner do Docker.
Se estiver usando uma instalação local, entre com a CLI do Azure usando o comando az login. Para concluir o processo de autenticação, siga as etapas exibidas no terminal. Para ver outras opções de entrada, confira Conectar-se com a CLI do Azure.
Quando solicitado, instale a extensão da CLI do Azure no primeiro uso. Para obter mais informações sobre extensões, confira Usar extensões com a CLI do Azure.
Execute az version para localizar a versão e as bibliotecas dependentes que estão instaladas. Para fazer a atualização para a versão mais recente, execute az upgrade.
Prepare o ambiente para o PowerShell.
Observação
Este artigo usa o módulo do PowerShell Azure Az, que é o módulo do PowerShell recomendado para interagir com o Azure. Para começar a usar o módulo do Az PowerShell, confira Instalar o Azure PowerShell. Para saber como migrar para o módulo Az PowerShell, confira Migrar o Azure PowerShell do AzureRM para o Az.
Importante
O módulo Azure Resource Manager do PowerShell ainda tem suporte do Banco de Dados SQL do Azure, mas todo o desenvolvimento futuro é para o módulo Az.Sql. Para esses cmdlets, confira AzureRM.Sql. Os argumentos para os comandos no módulo Az e nos módulos AzureRm são substancialmente idênticos.
Para Get-AzSqlDatabaseLongTermRetentionBackup e Restore-AzSqlDatabase, você precisa ser membro de uma das seguintes funções:
A função Colaborador do SQL Server não tem permissão para excluir backups de LTR.
As permissões de RBAC (controle de acesso baseado em função) do Azure podem ser concedidas no escopo da assinatura ou do grupo de recursos. No entanto, para acessar backups LTR que pertencem a um servidor descartado, essa permissão deve ser concedida no escopo de assinatura desse servidor:
Você pode configurar o Banco de Dados SQL para reter backups automatizados por um período maior que o período de retenção da camada de serviço.
No portal do Azure, navegue até o servidor e selecione Backups. Selecione a guia Políticas de retenção para modificar as configurações de retenção de backup.
Na guia Configurar políticas, selecione os bancos de dados onde deseja definir ou modificar as políticas de retenção de backup de longo prazo. Os bancos de dados não selecionados não serão afetados.
No painel Configurar políticas, especifique o período de retenção desejado como backups semanais, mensais ou anuais. Escolha um período de retenção de “0” para indicar que não quer definir nenhuma retenção de backup de longo prazo.
Selecione Aplicar para aplicar as configurações de retenção escolhidas a todos os bancos de dados selecionados.
Importante
Quando você habilita uma política de retenção de backup de longo prazo, pode levar até sete dias para o primeiro backup ficar visível e disponível para restauração. Para obter informações sobre a cadência de backup LTR, consulte retenção de backup de longo prazo.
Execute o comando az sql db ltr-policy set para criar uma política LTR. O exemplo a seguir define uma política de retenção de longo prazo para 12 semanas para o backup semanal.
az sql db ltr-policy set \
--resource-group mygroup \
--server myserver \
--name mydb \
--weekly-retention "P12W"
Este exemplo define uma política de retenção de 12 semanas para o backup semanal, 5 anos para o backup anual e a semana de 15 de abril para o backup anual LTR.
az sql db ltr-policy set \
--resource-group mygroup \
--server myserver \
--name mydb \
--weekly-retention "P12W" \
--yearly-retention "P5Y" \
--week-of-year 16
# get the SQL server
$subId = "<subscriptionId>"
$serverName = "<serverName>"
$resourceGroup = "<resourceGroupName>"
$dbName = "<databaseName>"
Connect-AzAccount
Select-AzSubscription -SubscriptionId $subId
$server = Get-AzSqlServer -ServerName $serverName -ResourceGroupName $resourceGroup
# create LTR policy with WeeklyRetention = 12 weeks. MonthlyRetention and YearlyRetention = 0 by default.
Set-AzSqlDatabaseBackupLongTermRetentionPolicy -ServerName $serverName -DatabaseName $dbName `
-ResourceGroupName $resourceGroup -WeeklyRetention P12W
# create LTR policy with WeeklyRetention = 12 weeks, YearlyRetention = 5 years and WeekOfYear = 16 (week of April 15). MonthlyRetention = 0 by default.
Set-AzSqlDatabaseBackupLongTermRetentionPolicy -ServerName $serverName -DatabaseName $dbName `
-ResourceGroupName $resourceGroup -WeeklyRetention P12W -YearlyRetention P5Y -WeekOfYear 16
Exibir os backups e restaurar de um backup
Veja os backups que são mantidos para um banco de dados específico com uma política LTR e restaure a partir desses backups.
No portal do Azure, navegue até o servidor e selecione Backups. Para exibir os backups LTR disponíveis para um banco de dados específico, selecione Gerenciar na coluna Backups LTR disponíveis. Um painel será exibido com uma lista dos backups de LTR disponíveis para o banco de dados selecionado.
No painel Backups LTR disponíveis, revise os backups disponíveis. Selecione um backup para restaurar.
Para restaurar a partir de um backup LTR disponível, selecione o backup do qual você deseja restaurar e, em seguida, selecione Restaurar.
Escolha um nome para o novo banco de dados e, em seguida, selecione Revisar + Criar para revisar os detalhes da restauração. Selecione Criar para restaurar o banco de dados do backup escolhido.
Na barra de ferramentas, selecione no ícone de notificação para exibir o status do trabalho de restauração.
Quando o trabalho de restauração for concluído, abra a página Bancos de dados SQL para exibir o banco de dados recém-restaurado.
Execute o comando az sql db ltr-policy show para exibir a política LTR de um único banco de dados no seu servidor.
az sql db ltr-policy show \
--resource-group mygroup \
--server myserver \
--name mydb
Exibir backups LTR
Use o comando az sql db ltr-backup list para listar os backups de LTR de um banco de dados. Você pode usar esse comando para encontrar o parâmetro name para uso em outros comandos.
az sql db ltr-backup list \
--location eastus2 \
--server myserver \
--database mydb
az sql db ltr-backup restore \
--dest-database targetdb \
--dest-server myserver \
--dest-resource-group mygroup \
--backup-id $get_backup_id
Importante
Para restaurar a partir de um backup de LTR após o servidor ou grupo de recursos ter sido excluído, você precisará ter permissões com escopo para a assinatura do servidor, e a assinatura deverá estar ativa. Você também deve omitir o parâmetro -ResourceGroupName opcional.
Observação
A partir daqui, você pode se conectar ao banco de dados restaurado usando SQL Server Management Studio executar as tarefas necessárias, como a troca de banco de dados. Confira recuperação pontual.
Exibir políticas LTR
Este exemplo mostra como listar as políticas LTR dentro de um servidor.
# get all LTR policies within a server
$ltrPolicies = Get-AzSqlDatabase -ResourceGroupName $resourceGroup -ServerName $serverName | `
Get-AzSqlDatabaseLongTermRetentionPolicy
# get the LTR policy of a specific database
$ltrPolicies = Get-AzSqlDatabaseBackupLongTermRetentionPolicy -ServerName $serverName -DatabaseName $dbName `
-ResourceGroupName $resourceGroup
Limpar uma política LTR
Este exemplo mostra como limpar uma política LTR de um banco de dados.
Este exemplo mostra como listar os backups LTR dentro de um servidor.
# get the list of all LTR backups in a specific Azure region
# backups are grouped by the logical database id, within each group they are ordered by the timestamp, the earliest backup first
$ltrBackups = Get-AzSqlDatabaseLongTermRetentionBackup -Location $server.Location
# get the list of LTR backups from the Azure region under the named server
$ltrBackups = Get-AzSqlDatabaseLongTermRetentionBackup -Location $server.Location -ServerName $serverName
# get the LTR backups for a specific database from the Azure region under the named server
$ltrBackups = Get-AzSqlDatabaseLongTermRetentionBackup -Location $server.Location -ServerName $serverName -DatabaseName $dbName
# list LTR backups only from live databases (you have option to choose All/Live/Deleted)
$ltrBackups = Get-AzSqlDatabaseLongTermRetentionBackup -Location $server.Location -DatabaseState Live
# only list the latest LTR backup for each database
$ltrBackups = Get-AzSqlDatabaseLongTermRetentionBackup -Location $server.Location -ServerName $serverName -OnlyLatestPerDatabase
Restaurar a partir de backups LTR
Este exemplo mostra como restaurar a partir de um backup LTR. Observe que essa interface não foi alterada, mas o parâmetro de identificação do recurso agora requer a identificação do recurso do backup LTR.
# restore a specific LTR backup as an P1 database on the server $serverName of the resource group $resourceGroup
Restore-AzSqlDatabase -FromLongTermRetentionBackup -ResourceId $ltrBackup.ResourceId -ServerName $serverName -ResourceGroupName $resourceGroup `
-TargetDatabaseName $dbName -ServiceObjectiveName P1
Importante
Para restaurar a partir de um backup de LTR após o servidor ou grupo de recursos ter sido excluído, você precisará ter permissões com escopo para a assinatura do servidor, e a assinatura deverá estar ativa. Você também deve omitir o parâmetro -ResourceGroupName opcional.
Se você estiver usando backups LTR para atender à conformidade ou a outros requisitos críticos, considere realizar drills de recuperação periódicas para verificar se os backups LTR podem ser restaurados e se a restauração resulta em um estado esperado do banco de dados.
Observação
A partir daqui, você pode conectar o banco de dados restaurado usando o SQL Server Management Studio para executar as tarefas necessárias, tais como, extrair um pouco de dados do banco de dados restaurado para copiar para o banco de dados existente ou excluir o banco de dados existente e renomear o banco de dados restaurado com o nome do banco de dados existente. Confira recuperação pontual.
Excluir backups LTR
Exclua backups retidos para um banco de dados específico com uma política de LTR.
Importante
A exclusão do backup LTR é irreversível. Para excluir um backup de LTR depois que o servidor tiver sido excluído, você deverá ter a permissão de escopo de Assinatura. Você pode configurar notificações sobre cada exclusão no Azure Monitor filtrando a operação "Exclui um backup de retenção de longo prazo". O log de atividades contém informações sobre quem fez a solicitação e quando. Confira Criar alertas do log de atividades para obter instruções detalhadas.
No portal do Azure, navegue até o servidor lógico do Banco de Dados SQL do Azure.
Selecione Backups. Para exibir os backups de LTR disponíveis para um banco de dados específico, selecione Gerenciar na coluna Backups de LTR disponíveis. Um painel será exibido com uma lista dos backups de LTR disponíveis para o banco de dados selecionado.
No painel Backups LTR disponíveis, revise os backups disponíveis. Selecione um backup para excluir. Selecione Excluir.
Se você usar backups com LTR para atender à conformidade ou outros requisitos críticos:
Verifique se os backups com LTR são feitos de acordo com a política configurada seguindo as etapas descritas na seção exibir backups usando o Portal, a CLI do Azure ou o PowerShell.
Considere realizar simulações de recuperação periódicas para verificar se a restauração dos backups LTR resulta no estado esperado do banco de dados.
Conteúdo relacionado
Para saber mais sobre backups automáticos gerados pelo serviço, veja backups automáticos