Na Instância Gerenciada SQL do Azure, você pode configurar uma política de retenção de backup de longo prazo (LTR). Isso permite que você retenha automaticamente backups de banco de dados 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 com o portal do Azure e o PowerShell.
As seções a seguir mostram como usar o portal do Azure, o PowerShell e a CLI do Azure para configurar a retenção de backup de longo prazo, exibir backups no armazenamento SQL do Azure e restaurar a partir de um backup no armazenamento SQL do Azure.
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, no entanto, o desenvolvimento futuro será feito no 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-AzSqlInstanceDatabaseLongTermRetentionBackup e Restore-AzSqlInstanceDatabase, você precisa ser membro de uma das seguintes funções:
Função de Proprietário da Subscrição ou
Função de Colaborador da Instância Gerenciada SQL ou
A função de Colaborador da Instância Gerenciada SQL 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 aceder a cópias de segurança LTR que pertençam a uma instância removida, a permissão tem de ser concedida no âmbito da subscrição dessa instância.
Você pode configurar a Instância Gerenciada 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, selecione sua instância gerenciada e, em seguida, selecione Backups. 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. As alterações não se aplicarão a nenhum banco de dados deixado desmarcado.
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.
Quando terminar, selecione Aplicar.
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 midb show para obter os detalhes do banco de dados da Instância Gerenciada SQL.
az sql midb show /
--resource-group mygroup /
--managed-instance myinstance /
--name mymanageddb /
--subscription mysubscription
Execute o comando az sql midb 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 midb ltr-policy set /
--resource-group mygroup /
--managed-instance myinstance /
--name mymanageddb /
--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.
Para exibir backups de longo prazo disponíveis no portal do Azure, siga estas etapas:
No portal do Azure, selecione sua instância gerenciada e, em seguida, selecione Backups. Na guia Backups disponíveis, selecione o banco de dados para o qual você deseja ver os backups disponíveis. Selecione Gerir.
No painel Gerenciar backups, revise os backups disponíveis.
Você também pode restaurar a partir desta página escolhendo o backup e selecionando Restaurar.
Como alternativa, para restaurar um backup da retenção de longo prazo usando o portal do Azure, siga estas etapas:
Vá para a Instância Gerenciada SQL de destino para a qual você planeja restaurar seu banco de dados.
Na página Visão geral, escolha + Novo banco de dados para abrir a página Criar Banco de Dados Gerenciado SQL do Azure.
Na guia Noções básicas da página Criar Banco de Dados Gerenciado SQL do Azure, forneça detalhes da assinatura e do grupo de recursos em Detalhes do projeto. Em seguida, em Detalhes do banco de dados, forneça o novo nome do banco de dados que você planeja restaurar. Confirme se a instância gerenciada correta está listada na lista suspensa. Em seguida, selecione Next: Data source >
Na guia Fonte de dados , escolha Restauração point-in-time em Usar dados existentes. Forneça a assinatura, o grupo de recursos e a instância gerenciada que contém o banco de dados de origem. Na lista suspensa Banco de dados gerenciado, escolha o banco de dados que deseja restaurar e, em seguida, escolha o ponto no tempo a partir do qual deseja restaurar o banco de dados. A instância de origem e de destino pode ser a mesma ou duas instâncias diferentes. Selecione Seguinte : Configurações adicionais >
Na guia Configurações adicionais, você pode marcar a caixa para herdar a política de retenção do banco de dados de origem ou, alternativamente, selecionar Configurar retenção para abrir a página Configurar políticas e definir as políticas de retenção desejadas para o banco de dados restaurado. Quando terminar, selecione Rever + criar.
Em Rever + criar, quando a validação for bem-sucedida, selecione Criar para restaurar a base de dados.
Essa ação inicia o processo de restauração, que cria um novo banco de dados e o preenche com dados do banco de dados original no point-in-time especificado. Para obter mais informações sobre o processo de recuperação, consulte Tempo de recuperação.
Para restaurar a partir de uma cópia de segurança LTR após a eliminação da instância, tem de ter permissões na subscrição da instância e essa subscrição tem de estar ativa.
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.
Ver políticas de LTR
Este exemplo mostra como listar as políticas LTR em uma instância para um único banco de dados.
# gets the current version of LTR policy for a database
$LTRPolicy = @{
InstanceName = $instanceName
DatabaseName = $dbName
ResourceGroupName = $resourceGroup
}
Get-AzSqlInstanceDatabaseBackupLongTermRetentionPolicy @LTRPolicy
Este exemplo mostra como listar as políticas LTR para todos os bancos de dados em uma instância.
# gets the current version of LTR policy for all of the databases on an instance
$Databases = Get-AzSqlInstanceDatabase -ResourceGroupName $resourceGroup -InstanceName $instanceName
$LTRParams = @{
InstanceName = $instanceName
ResourceGroupName = $resourceGroup
}
foreach($database in $Databases.Name){
Get-AzSqlInstanceDatabaseBackupLongTermRetentionPolicy @LTRParams -DatabaseName $database
}
Limpar uma política de LTR
Este exemplo mostra como limpar uma política LTR de um banco de dados.
# remove the LTR policy from a database
$LTRPolicy = @{
InstanceName = $instanceName
DatabaseName = $dbName
ResourceGroupName = $resourceGroup
RemovePolicy = $true
}
Set-AzSqlInstanceDatabaseBackupLongTermRetentionPolicy @LTRPolicy
Ver backups LTR
Este exemplo mostra como listar os backups LTR em uma instância.
$instance = Get-AzSqlInstance -Name $instanceName -ResourceGroupName $resourceGroup
# 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
Get-AzSqlInstanceDatabaseLongTermRetentionBackup -Location $instance.Location
# get the list of LTR backups from the Azure region under the given managed instance
$LTRBackupParam = @{
Location = $instance.Location
InstanceName = $instanceName
}
Get-AzSqlInstanceDatabaseLongTermRetentionBackup @LTRBackupParam
# get the LTR backups for a specific database from the Azure region under the given managed instance
$LTRBackupParam = @{
Location = $instance.Location
InstanceName = $instanceName
DatabaseName = $dbName
}
Get-AzSqlInstanceDatabaseLongTermRetentionBackup @LTRBackupParam
# list LTR backups only from live databases (you have option to choose All/Live/Deleted)
$LTRBackupParam = @{
Location = $instance.Location
DatabaseState = 'Live'
}
Get-AzSqlInstanceDatabaseLongTermRetentionBackup @LTRBackupParam
# only list the latest LTR backup for each database
$LTRBackupParam = @{
Location = $instance.Location
InstanceName = $instanceName
OnlyLatestPerDatabase = $true
}
Get-AzSqlInstanceDatabaseLongTermRetentionBackup @LTRBackupParam
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 instance $instanceName of the resource group $resourceGroup
$LTRBackupParam = @{
Location = $instance.Location
InstanceName = $instanceName
DatabaseName = $dbname
OnlyLatestPerDatabase = $true
}
$ltrBackup = Get-AzSqlInstanceDatabaseLongTermRetentionBackup @LTRBackupParam
$RestoreLTRParam = @{
TargetInstanceName = $instanceName
TargetResourceGroupName = $resourceGroup
TargetInstanceDatabaseName = $dbName
FromLongTermRetentionBackup = $true
ResourceId = $ltrBackup.ResourceId
}
Restore-AzSqlInstanceDatabase @RestoreLTRParam
Importante
Para restaurar a partir de uma cópia de segurança LTR após a eliminação da instância, tem de ter permissões na subscrição da instância e essa subscrição tem de estar ativa. Você também deve omitir o parâmetro opcional -ResourceGroupName.
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 após a instância ter sido excluída, 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é a instância gerenciada do SQL.
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.
Este exemplo mostra como excluir o backup LTR mais antigo da lista de backups. Este exemplo obtém a lista de backups LTR para um banco de dados específico da região do Azure sob a instância gerenciada SQL fornecida.
# remove the earliest backup
# get the LTR backups for a specific database from the Azure region under the given SQL managed instance
$LTRBackupParam = @{
Location = $instance.Location
InstanceName = $instanceName
DatabaseName = $dbName
}
$ltrBackups = Get-AzSqlInstanceDatabaseLongTermRetentionBackup @LTRBackupParam
$ltrBackup = $ltrBackups[0]
Remove-AzSqlInstanceDatabaseLongTermRetentionBackup -ResourceId $ltrBackup.ResourceId