Aplica-se a:
Azure SQL Managed Instance
Este artigo mostra como configurar uma política de retenção de backup de longo prazo (LTR) para a Instância Gerenciada SQL do Azure usando o portal do Azure, o PowerShell e a CLI do Azure, bem como como exibir e restaurar backups do armazenamento do Azure. Uma política LTR 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.
Pré-requisitos
Uma assinatura ativa do Azure.
Prepare seu ambiente para a CLI do Azure.
Use o ambiente Bash na Azure Cloud Shell. Para mais informações, veja Get started with Azure Cloud Shell.
Se preferir executar comandos de referência da CLI localmente, instalar CLI do Azure. Se você estiver executando no Windows ou macOS, considere executar a CLI do Azure em um contêiner do Docker. Para obter mais informações, consulte Como executar a CLI do Azure em um contêiner do Docker.
Se você estiver usando uma instalação local, entre na CLI do Azure usando 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 Autenticar no Azure usando a CLI do Azure.
Quando solicitado, instale a extensão da CLI do Azure na primeira utilização. Para obter mais informações sobre extensões, consulte Usar e gerenciar extensões com a CLI do Azure.
Execute az version para localizar a versão e as bibliotecas dependentes que estão instaladas. Para atualizar para a versão mais recente, execute az upgrade.
Prepare seu ambiente para o PowerShell.
Importante
O módulo PowerShell Azure Resource Manager (AzureRM) foi preterido em 29 de fevereiro de 2024. Todo o desenvolvimento futuro deve usar o módulo Az.Sql. Os usuários são aconselhados a migrar do AzureRM para o módulo Az PowerShell para garantir suporte e atualizações contínuos. O módulo AzureRM não é mais mantido ou suportado. Os argumentos para os comandos no módulo Az PowerShell e nos módulos AzureRM são substancialmente idênticos. Para obter mais informações sobre sua compatibilidade, consulte Apresentando o novo módulo do Az PowerShell.
Permissões
Para exibir e restaurar backups LTR, você precisa ser membro das seguintes funções:
- Função de Proprietário da Subscrição ou
- Função de Colaborador da Instância Gerenciada SQL ou
- Função personalizada com as seguintes permissões:
Microsoft.Sql/locations/longTermRetentionManagedInstanceBackups/read
Microsoft.Sql/locations/longTermRetentionManagedInstances/longTermRetentionManagedInstanceBackups/read
Microsoft.Sql/locations/longTermRetentionManagedInstances/longTermRetentionDatabases/longTermRetentionManagedInstanceBackups/read
Para excluir backups LTR, você precisa ser membro de uma das seguintes funções:
- Função de Proprietário da Subscrição ou
- Função personalizada com a seguinte permissão:
Microsoft.Sql/locations/longTermRetentionManagedInstances/longTermRetentionDatabases/longTermRetentionManagedInstanceBackups/delete
Observação
A função de Colaborador da Instância Gerenciada SQL não tem permissão para excluir backups LTR.
As permissões do RBAC do Azure podem ser concedidas no escopo de de assinatura ou no escopo de grupo de recursos. No entanto, para aceder a backups LTR que pertencem a uma instância eliminada, a permissão deve ser concedida no âmbito da subscrição dessa instância.
Microsoft.Sql/locations/longTermRetentionManagedInstances/longTermRetentionDatabases/longTermRetentionManagedInstanceBackups/delete
Criar políticas de retenção de longo prazo
Você pode configurar o SQL Managed Instance para reter backups automatizados por um período maior do que o período de retenção do seu nível de serviço.
No portal do Azure, selecione sua instância gerenciada SQL e selecione Backups. Na guia Políticas de retenção , selecione os bancos de dados para os quais 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é sete 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, cinco anos para o backup anual e a semana de 15 de abril para fazer o backup LTR anual.
az sql midb ltr-policy set /
--resource-group mygroup /
--managed-instance myinstance /
--name mymanageddb /
--weekly-retention "P12W" /
--yearly-retention "P5Y" /
--week-of-year 16
# get the SQL Managed Instance
$subId = "<subscriptionId>"
$instanceName = "<instanceName>"
$resourceGroup = "<resourceGroupName>"
$dbName = "<databaseName>"
Connect-AzAccount
Select-AzSubscription -SubscriptionId $subId
$instance = Get-AzSqlInstance -Name $instanceName -ResourceGroupName $resourceGroup
# create LTR policy with WeeklyRetention = 12 weeks. MonthlyRetention and YearlyRetention = 0 by default.
$LTRPolicy = @{
InstanceName = $instanceName
DatabaseName = $dbName
ResourceGroupName = $resourceGroup
WeeklyRetention = 'P12W'
}
Set-AzSqlInstanceDatabaseBackupLongTermRetentionPolicy @LTRPolicy
# create LTR policy with WeeklyRetention = 12 weeks, YearlyRetention = 5 years and WeekOfYear = 16 (week of April 15). MonthlyRetention = 0 by default.
$LTRPolicy = @{
InstanceName = $instanceName
DatabaseName = $dbName
ResourceGroupName = $resourceGroup
WeeklyRetention = 'P12W'
YearlyRetention = 'P5Y'
WeekOfYear = '16'
}
Set-AzSqlInstanceDatabaseBackupLongTermRetentionPolicy @LTRPolicy
Visualizar backups e restaurações a partir de um backup
Para exibir backups de longo prazo disponíveis no portal do Azure, siga estas etapas:
No portal do Azure, selecione sua instância gerenciada SQL e selecione Backups. Na aba backups disponíveis, selecione a base de dados para a qual pretende ver os backups disponíveis. Selecione Gerenciar.
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:
Inicie sessão no portal do Azure.
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 + Nova base de dados para abrir a página Criar Base de Dados SQL Gerida do Azure.
Na aba Noções básicas da página Criar base de dados gerida SQL do Azure, insira os detalhes da subscrição 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 SQL gerida correta está na lista suspensa. Em seguida, selecione Seguinte: Fonte de dados >.
Na guia Fonte de dados, escolha Restauração no ponto no tempo em Usar dados existentes. Forneça a assinatura, o grupo de recursos e a instância gerenciada SQL que contém o banco de dados de origem. Na lista suspensa Banco de dados gerenciado , escolha o banco de dados que deseja restaurar. 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 Avançar : 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. Como alternativa, você pode 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 Revisão + criação, quando a validação for bem-sucedida, selecione Criar para restaurar a sua 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.
Ver políticas de LTR
Execute o comando az sql midb ltr-policy show para exibir a política LTR para um único banco de dados em uma instância.
az sql midb ltr-policy show \
--resource-group mygroup \
--managed-instance myinstance \
--name mymanageddb
Ver os backups de LTR
Use o comando az sql midb ltr-backup list para consultar os backups LTR numa instância.
az sql midb ltr-backup list \
--resource-group mygroup \
--location eastus2 \
--managed-instance myinstance
Restaurar a partir de backups LTR
Execute o comando az sql midb ltr-backup restore para restaurar seu banco de dados a partir de um backup LTR. Você pode executar az sql midb ltr-backup show para obter o backup-id.
Crie uma variável para o backup-id com o comando az sql db ltr-backup show para uso futuro.
get_backup_id=$(az sql midb ltr-backup show
--location eastus2 \
--managed-instance myinstance \
--database mydb \
--name "3214b3fb-fba9-43e7-96a3-09e35ffcb336;132292152080000000" \
--query 'id' \
--output tsv)
Restaure seu banco de dados a partir de um backup LTR
az sql midb ltr-backup restore \
--dest-database targetmidb \
--dest-mi myinstance \
--dest-resource-group mygroup \
--backup-id $get_backup_id
Importante
Para restaurar a partir de um backup LTR após a instância ter sido excluída, deve ter permissões atribuídas à assinatura da instância e essa assinatura deve estar ativa.
Observação
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 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 para o nome do banco de dados existente. Consulte a restauração pontual em .
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 os backups de 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 SQL 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 SQL 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 um backup LTR após a instância ter sido excluída, deve ter permissões atribuídas à assinatura da instância e essa assinatura deve 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 o SQL Server Management Studio para executar as tarefas necessárias, 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 para o nome do banco de dados existente. Consulte a restauração pontual em .
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 eliminar um backup LTR após a instância ter sido eliminada, deve ter permissão ao nível da Subscrição. 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 fez a solicitação e quando. 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 Available LTR Backups. Um painel é exibido com uma lista dos backups LTR disponíveis para o banco de dados selecionado.
- No painel backups LTR disponíveis que aparece, reveja os backups disponíveis. Selecione um backup para excluir. Selecione Excluir.
Execute o comando az sql midb ltr-backup list para obter o backup name.
Execute o comando az sql midb ltr-backup delete para remover um backup LTR.
az sql midb ltr-backup delete \
--location eastus2 \
--managed-instance myinstance \
--database mymanageddb \
--name "3214b3fb-fba9-43e7-96a3-09e35ffcb336;132292152080000000"
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
Limitações
Considere as seguintes limitações:
- Os backups de banco de dados obtidos de instâncias configuradas com a política de atualização do SQL Server 2022 podem ser restaurados para instâncias configuradas com a política de atualização SQL Server 2022, SQL Server 2025 ou Always-up-to-date .
- Os backups de banco de dados obtidos de instâncias configuradas com a política de atualização do SQL Server 2025 podem ser restaurados para instâncias configuradas com a política de atualização SQL Server 2025 ou Always-up-to-date , mas não para instâncias configuradas com a política de atualização do SQL Server 2022 .
- Os backups de banco de dados obtidos de instâncias configuradas com a política de atualização Always-up-to-date só podem ser restaurados para instâncias também configuradas com a política de atualização Always-up-to-date .
Conteúdo relacionado