Com o Banco de Dados SQL do Azure, você pode definir uma política de retenção de backup de longo prazo (LTR) para reter automaticamente backups em contêineres de armazenamento de Blob do Azure separados por até 10 anos. Em seguida, você pode recuperar um banco de dados usando esses backups usando o portal do Azure, a CLI do Azure ou o PowerShell.
Se preferir executar comandos de referência da CLI localmente, instale a CLI do Azure. Se estiver a utilizar o Windows ou macOS, considere executar a CLI do Azure num contentor Docker. Para obter mais informações, consulte Como executar a CLI do Azure em um contêiner do Docker.
Se estiver a utilizar uma instalação local, inicie sessão no CLI do Azure ao utilizar o comando az login. Para concluir o processo de autenticação, siga os passos apresentados no seu terminal. Para outras opções de entrada, consulte Entrar com a CLI do Azure.
Quando solicitado, instale a extensão da CLI do Azure na primeira utilização. Para obter mais informações sobre as extensões, veja Utilizar extensões com o CLI do Azure.
Execute o comando az version para localizar a versão e as bibliotecas dependentes instaladas. Para atualizar para a versão mais recente, execute o comando az upgrade.
Prepare seu ambiente para o PowerShell.
Nota
Este artigo usa o módulo Azure Az PowerShell, que é o módulo PowerShell recomendado para interagir com o Azure. Para começar a utilizar o módulo Azure PowerShell, veja Instalar o Azure PowerShell. Para saber como migrar para o módulo do Az PowerShell, veja Migrar o Azure PowerShell do AzureRM para o Az.
Importante
O módulo PowerShell Azure Resource Manager ainda é suportado pelo Banco de Dados SQL do Azure, mas todo o desenvolvimento futuro é para o módulo Az.Sql. Para esses cmdlets, consulte 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 de Colaborador do SQL Server não tem permissão para excluir backups LTR.
As permissões 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 do 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 suas configurações de retenção de backup.
Na guia Políticas de retenção, selecione o(s) banco(s) de dados no qual você deseja definir ou modificar 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 para backups semanais, mensais ou anuais. Escolha um período de retenção de '0' para indicar que nenhuma retenção de backup de longo prazo deve ser definida.
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é 7 dias para que o primeiro backup fique visível e disponível para restauração. Para obter detalhes 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 por 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 fazer o backup LTR anual.
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
Visualizar backups e restaurações a partir de um backup
Exiba os backups retidos 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 é exibido com uma lista dos backups LTR disponíveis para o banco de dados selecionado.
No painel Backups LTR disponíveis exibido, 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 deseja restaurar e, em seguida, selecione Restaurar.
Escolha um nome para o novo banco de dados e selecione Revisar + Criar para revisar os detalhes da Restauração. Selecione Criar para restaurar seu banco de dados a partir do backup escolhido.
Na barra de ferramentas, selecione o ícone de notificação para exibir o status do trabalho de restauração.
Quando o trabalho de restauração estiver concluído, abra a página Bancos de dados SQL para exibir o banco de dados recém-restaurado.
az sql db ltr-policy show \
--resource-group mygroup \
--server myserver \
--name mydb
Ver backups LTR
Use o comando az sql db ltr-backup list para listar os backups LTR de um banco de dados. Você pode usar esse comando para localizar o name parâmetro para uso em outros comandos.
az sql db ltr-backup list \
--location eastus2 \
--server myserver \
--database mydb
Restaure seu banco de dados a partir do backup LTR.
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 LTR depois que o servidor ou grupo de recursos tiver sido excluído, você deve ter permissões com escopo para a assinatura do servidor e essa assinatura deve estar ativa. Você também deve omitir o parâmetro opcional -ResourceGroupName.
Nota
A partir daqui, você pode se conectar ao banco de dados restaurado usando o SQL Server Management Studio para executar as tarefas necessárias, como a troca de banco de dados. Consulte a restauração point-in-time.
Ver políticas de LTR
Este exemplo mostra como listar as políticas LTR em 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 de LTR
Este exemplo mostra como limpar uma política LTR de um banco de dados.
Este exemplo mostra como listar os backups LTR em 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 resource ID agora requer o ID do recurso de 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 LTR depois que o servidor ou grupo de recursos tiver sido excluído, você deve ter permissões com escopo para a assinatura do servidor e essa assinatura deve estar ativa. Também tem de omitir o parâmetro -ResourceGroupName opcional.
Se você estiver usando backups LTR para atender a requisitos de conformidade ou outros requisitos de missão crítica, considere a realização de exercícios de recuperação periódicos para verificar se os backups LTR podem ser restaurados e se a restauração resulta em um estado esperado do banco de dados.
Nota
A partir daqui, pode ligar à base de dados restaurada através do o SQL Server Management Studio para efetuar tarefas necessárias, bem como para extrair alguns dados da base de dados restaurada para copiá-los para a base de dados existente ou para eliminar a base de dados existente e mudar o nome da base de dados restaurada para o nome da base de dados existente. Consulte a restauração point-in-time.
Excluir backups LTR
Exclua backups retidos para um banco de dados específico com uma política LTR.
Importante
A exclusão do backup LTR não é reversível. Para excluir um backup LTR depois que o servidor tiver sido excluído, você deve ter 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 registro de atividades contém informações sobre quem e quando fez a solicitação. Consulte Criar alertas de registro 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 LTR disponíveis para um banco de dados específico, selecione Gerenciar na coluna Backups LTR disponíveis. Um painel é exibido com uma lista dos backups LTR disponíveis para o banco de dados selecionado.
No painel Backups LTR disponíveis exibido, revise os backups disponíveis. Selecione um backup para excluir. Selecione Eliminar.
Se você usar backups LTR para atender a requisitos de conformidade ou outros requisitos de missão crítica:
Verifique se os backups 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 a realização de exercícios de recuperação periódicos para verificar se a restauração de backups LTR resulta no estado esperado do banco de dados.