Partilhar via


Backup automatizado para máquinas virtuais do SQL Server 2014 (Gerenciador de Recursos)

Aplica-se a:SQL Server na VM do Azure

O Backup Automatizado configura automaticamente o Backup Gerenciado para Microsoft Azure para todos os bancos de dados novos e existentes em uma VM do Azure que executa o SQL Server 2014 Standard ou Enterprise. Isso permite configurar backups de banco de dados regulares que utilizam armazenamento de Blob do Azure durável. O Backup Automatizado depende da Extensão do Agente IaaS (infraestrutura como serviço) do SQL Server.

Nota

O Azure tem dois modelos de implantação diferentes que você pode usar para criar e trabalhar com recursos: Azure Resource Manager e clássico. Este artigo aborda o uso do modelo de implantação do Resource Manager. Recomendamos o modelo de implantação do Resource Manager para novas implantações em vez do modelo de implantação clássico.

Pré-requisitos

Para usar o Backup Automatizado, considere os seguintes pré-requisitos:

Sistema operativo:

  • Windows Server 2012 e superior

Versão/edição do SQL Server:

  • SQL Server 2014 Standard
  • SQL Server 2014 Enterprise

Nota

Para SQL 2016 e superior, consulte Backup automatizado para SQL Server 2016.

Configuração do banco de dados:

  • Os bancos de dados de usuários de destino devem usar o modelo de recuperação completa. Os bancos de dados do sistema não precisam usar o modelo de recuperação completa. No entanto, se você precisar que os backups de log sejam feitos para model ou msdb, deverá usar o modelo de recuperação completa. Para obter mais informações sobre o impacto do modelo de recuperação completa nos backups, consulte Backup sob o modelo de recuperação completa.
  • A VM do SQL Server foi registrada com a extensão do SQL IaaS Agent e o recurso de backup automatizado está habilitado. Como o backup automatizado depende da extensão, o backup automatizado só é suportado em bancos de dados de destino da instância padrão ou de uma única instância nomeada. Se não houver nenhuma instância padrão e várias instâncias nomeadas, a extensão do SQL IaaS Agent falhará e o backup automatizado não funcionará.

Administração

A tabela a seguir descreve as opções que podem ser configuradas para o Backup Automatizado. As etapas de configuração reais variam dependendo se você usa o portal do Azure ou os comandos do Windows PowerShell do Azure. Observe que o backup automatizado usa a compactação de backup por padrão e você não pode desativá-lo.

Definição Intervalo (padrão) Descrição
Cópia de Segurança Automatizada Ativar/Desativar (Desativado) Habilita ou desabilita o Backup Automatizado para uma VM do Azure que executa o SQL Server 2014 Standard ou Enterprise.
Período de retenção 1-90 dias (90 dias) O número de dias para manter um backup.
Conta de Armazenamento Conta de armazenamento do Azure Uma conta de armazenamento do Azure a ser usada para armazenar arquivos do Backup Automatizado no armazenamento de blobs. Um contêiner é criado neste local para armazenar todos os arquivos de backup. A convenção de nomenclatura do arquivo de backup inclui a data, a hora e o nome da máquina.
Encriptação Ativar/Desativar (Desativado) Habilita ou desabilita a criptografia de backup. Quando a criptografia de backup está habilitada, os certificados usados para restaurar o backup estão localizados na conta de armazenamento especificada no mesmo automaticbackup contêiner usando a mesma convenção de nomenclatura. Se a senha for alterada, um novo certificado será gerado com essa senha, mas o certificado antigo permanecerá para restaurar backups anteriores.
Palavra-passe Texto da palavra-passe Uma senha para chaves de criptografia. Isso só é necessário se a criptografia estiver ativada. Para restaurar um backup criptografado, você deve ter a senha correta e o certificado relacionado que foi usado no momento em que o backup foi feito.

Configurar novas VMs

Use o portal do Azure para configurar o Backup Automatizado ao criar uma nova máquina virtual do SQL Server 2014 no modelo de implantação do Gerenciador de Recursos.

Na guia Configurações do SQL Server, role para baixo até Backup automatizado e selecione Habilitar. A captura de tela do portal do Azure a seguir mostra as configurações do Backup Automatizado do SQL.

SQL Automated Backup configuration in the Azure portal

Configurar VMs existentes

Para VMs existentes do SQL Server, você pode habilitar e desabilitar backups automatizados, alterar o período de retenção, especificar a conta de armazenamento e habilitar a criptografia no portal do Azure.

Navegue até o recurso de máquinas virtuais SQL para sua máquina virtual do SQL Server 2014 e selecione Backups.

SQL Automated Backup for existing VMs

Quando terminar, selecione o botão Aplicar na parte inferior da página Backups para salvar as alterações.

Se você estiver habilitando o Backup Automatizado pela primeira vez, o Azure configurará o Agente IaaS do SQL Server em segundo plano. Durante esse período, o portal do Azure pode não mostrar que o Backup Automatizado está configurado. Aguarde alguns minutos para que o agente seja instalado e configurado. Depois disso, o portal do Azure refletirá as novas configurações.

Nota

Você também pode configurar o Backup automatizado usando um modelo. Para obter mais informações, consulte Modelo de início rápido do Azure para Backup automatizado.

Configurar com o PowerShell

Você pode usar o PowerShell para configurar o Backup Automatizado. Antes de começar, deve:

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.

Verificar as definições atuais

Se você habilitou o backup automatizado durante o provisionamento, poderá usar o PowerShell para verificar sua configuração atual. Execute o comando Get-AzVMSqlServerExtension e examine a propriedade AutoBackupSettings :

$vmname = "yourvmname"
$resourcegroupname = "yourresourcegroupname"

(Get-AzVMSqlServerExtension -VMName $vmname -ResourceGroupName $resourcegroupname).AutoBackupSettings

Você deve obter uma saída semelhante à seguinte:

Enable                      : False
EnableEncryption            : False
RetentionPeriod             : -1
StorageUrl                  : NOTSET
StorageAccessKey            : 
Password                    : 
BackupSystemDbs             : False
BackupScheduleType          : 
FullBackupFrequency         : 
FullBackupStartTime         : 
FullBackupWindowHours       : 
LogBackupFrequency          : 

Se a saída mostrar que Enable está definido como False, então você terá que habilitar o backup automatizado. A boa notícia é que você habilita e configura o Backup Automatizado da mesma maneira. Consulte a próxima seção para obter essas informações.

Nota

Se você verificar as configurações imediatamente após fazer uma alteração, é possível que você recupere os valores de configuração antigos. Aguarde alguns minutos e verifique as configurações novamente para se certificar de que suas alterações foram aplicadas.

Configurar backup automatizado

Você pode usar o PowerShell para habilitar o Backup Automatizado, bem como para modificar sua configuração e comportamento a qualquer momento.

Primeiro, selecione ou crie uma conta de armazenamento para os arquivos de backup. O script a seguir seleciona uma conta de armazenamento ou a cria se ela não existir.

$vmname = "yourvmname"
$resourcegroupname = "yourresourcegroupname"
$storage_accountname = "yourstorageaccount"
$storage_url = "https://yourstorageaccount.blob.core.windows.net/"

$storage = Get-AzStorageAccount -ResourceGroupName $resourcegroupname `
    -Name $storage_accountname -ErrorAction SilentlyContinue
If (-Not $storage)
    { $storage = New-AzStorageAccount -ResourceGroupName $resourcegroupname `
    -Name $storage_accountname -SkuName Standard_GRS -Location $region }

Nota

O Backup Automatizado não suporta o armazenamento de backups em armazenamento premium, mas pode fazer backups de discos VM que usam o Armazenamento Premium.

Se você quiser usar um contêiner personalizado na conta de armazenamento para os backups, use o script a seguir para verificar o contêiner ou criá-lo se ele não existir.

$storage_container = "backupcontainer"

New-AzStorageContainer -Name $storage_container -Context $storage.Context

if (!(Get-AzStorageAccount -StorageAccountName $storage_accountname -ResourceGroupName $resourcegroupname | Get-AzStorageContainer | Where-Object { $_.Name -eq $storage_container })){ `
	New-AzStorageContainer -Name $storage_container -Context $storage.Context `
} `
 else `
{ `
	Write-Warning "Container $storage_container already exists." `
}

Em seguida, use o seguinte script para obter a chave de acesso para a conta de armazenamento:

$accesskey = (Get-AzStorageAccountKey -ResourceGroupName $resourcegroupname  -Name $storage_accountname)[0].value

Em seguida, use o comando Update-AzSqlVM para habilitar e definir as configurações do Backup Automatizado para armazenar backups na conta de armazenamento do Azure. Neste exemplo, os backups são definidos para serem retidos por 10 dias.

Update-AzSqlVM -ResourceGroupName $resourcegroupname -Name $vmname -AutoBackupSettingEnable `
-AutoBackupSettingStorageAccessKey $accesskey `
-AutoBackupSettingStorageAccountUrl $storage_url `
-AutoBackupSettingRetentionPeriod 10 `
-AutoBackupSettingStorageContainerName $storage_container 

Pode levar vários minutos para instalar e configurar o SQL Server IaaS Agent.

Nota

Há outras configurações para Update-AzSqlVM* que se aplicam somente ao SQL Server 2016 e ao Backup Automatizado. O SQL Server 2014 não oferece suporte às seguintes configurações: -AutoBackupSettingBackupSystemDb, -AutoBackupSettingBackupScheduleType, -AutoBackupSettingFullBackupFrequency, -AutoBackupSettingFullBackupStartTime, -AutoBackupSettingFullBackupWindowHour e -AutoBackupSettingLogBackupFrequency. Se você tentar definir essas configurações em uma máquina virtual do SQL Server 2014, não haverá erro, mas as configurações não serão aplicadas. Se você quiser usar essas configurações em uma máquina virtual do SQL Server 2016, consulte Backup automatizado para máquinas virtuais do Azure do SQL Server 2016.

Para habilitar a criptografia, modifique o script anterior para passar o parâmetro -AutoBackupSettingEnableEncryption junto com uma senha (cadeia de caracteres segura) para o parâmetro -AutoBackupSettingPassword. O script a seguir habilita as configurações de Backup automatizado no exemplo anterior e adiciona criptografia.

$password = "r@ndom Va1ue"
$encryptionpassword = $password | ConvertTo-SecureString -AsPlainText -Force  

Update-AzSqlVM -ResourceGroupName $resourcegroupname -Name $vmname -AutoBackupSettingEnable `
-AutoBackupSettingStorageAccessKey $accesskey `
-AutoBackupSettingStorageAccountUrl $storage_url `
-AutoBackupSettingRetentionPeriod 10 `
-AutoBackupSettingEnableEncryption `
-AutoBackupSettingPassword $encryptionpassword `
-AutoBackupSettingStorageContainerName $storage_container 

Para confirmar se as configurações foram aplicadas, verifique a configuração do Backup automatizado.

Desativar backup automatizado

Para desabilitar o Backup Automatizado, execute o mesmo script com o parâmetro -AutoBackupSettingEnable definido como $false no comando Update-AzSqlVM . Ao definir o valor como $false o recurso é desativado. Tal como acontece com a instalação, pode levar vários minutos para desativar o Backup Automatizado.

Update-AzSqlVM -ResourceGroupName $resourcegroupname -Name $vmname -AutoBackupSettingEnable:$false

Script de exemplo

O script a seguir fornece um conjunto de variáveis que você pode personalizar para habilitar e configurar o Backup Automatizado para sua VM. No seu caso, talvez seja necessário personalizar o script com base em suas necessidades. Por exemplo, você teria que fazer alterações se quisesse desabilitar o backup de bancos de dados do sistema ou habilitar a criptografia.

$vmname = "yourvmname"
$resourcegroupname = "yourresourcegroupname"
$region = "Azure region name such as EASTUS2"
$storage_accountname = "yourstorageaccount"
$storage_url = "https://yourstorageaccount.blob.core.windows.net/"
$retentionperiod = 10

# ResourceGroupName is the resource group which is hosting the VM where you are deploying the SQL Server IaaS Extension

Set-AzVMSqlServerExtension -VMName $vmname `
    -ResourceGroupName $resourcegroupname -Name "SQLIaasExtension" `
    -Version "2.0" -Location $region

# Creates/use a storage account to store the backups

$storage = Get-AzStorageAccount -ResourceGroupName $resourcegroupname `
    -Name $storage_accountname -ErrorAction SilentlyContinue
If (-Not $storage)
    { $storage = New-AzStorageAccount -ResourceGroupName $resourcegroupname `
    -Name $storage_accountname -SkuName Standard_GRS -Location $region }

# Creates/uses a custom storage account container

$storage_container = "yourbackupcontainer"

if (!(Get-AzStorageAccount -StorageAccountName $storage_accountname -ResourceGroupName $resourcegroupname | Get-AzStorageContainer | Where-Object { $_.Name -eq $storage_container })){ `
	New-AzStorageContainer -Name $storage_container -Context $storage.Context `
} `
 else `
{ `
	Write-Warning "Container $storage_container already exists." `
}

# Get storage account access key
$accesskey = (Get-AzStorageAccountKey -ResourceGroupName $resourcegroupname  -Name $storage_accountname)[0].value

# Configure Automated Backup settings

Update-AzSqlVM -ResourceGroupName $resourcegroupname -Name $vmname -AutoBackupSettingEnable `
-AutoBackupSettingStorageAccessKey $accesskey `
-AutoBackupSettingStorageAccountUrl $storage_url `
-AutoBackupSettingRetentionPeriod $retentionperiod `
-AutoBackupSettingStorageContainerName $storage_container 

Monitorização

Para monitorar o Backup Automatizado no SQL Server 2014, você tem duas opções principais. Como o Backup Automatizado usa o recurso Backup Gerenciado do SQL Server, as mesmas técnicas de monitoramento se aplicam a ambos.

Primeiro, você pode pesquisar o status chamando msdb.smart_admin.sp_get_backup_diagnostics. Ou consulte a função com valor da tabela msdb.smart_admin.fn_get_health_status .

Nota

O esquema para Backup Gerenciado no SQL Server 2014 é msdb.smart_admin. No SQL Server 2016, isso mudou para msdb.managed_backup e os tópicos de referência usam esse esquema mais recente. Mas para o SQL Server 2014, você deve continuar a usar o esquema smart_admin para todos os objetos do Backup Gerenciado.

Outra opção é aproveitar o recurso interno do Database Mail para notificações.

  1. Chame o procedimento armazenado msdb.smart_admin.sp_set_parameter para atribuir um endereço de email ao parâmetro SSMBackup2WANotificationEmailIds .
  2. Habilite o SendGrid para enviar os emails da VM do Azure.
  3. Use o servidor SMTP e o nome de usuário para configurar o Database Mail. Você pode configurar o Database Mail no SQL Server Management Studio ou com comandos Transact-SQL. Para obter mais informações, consulte Database Mail.
  4. Configure o SQL Server Agent para usar o Database Mail.
  5. Verifique se a porta SMTP é permitida por meio do firewall da VM local e do grupo de segurança de rede para a VM.

Próximos passos

O Backup Automatizado configura o Backup Gerenciado em VMs do Azure. Por isso, é importante revisar a documentação do Backup Gerenciado no SQL Server 2014.

Você pode encontrar diretrizes adicionais de backup e restauração para o SQL Server em VMs do Azure no seguinte artigo: Backup e restauração do SQL Server em máquinas virtuais do Azure.

Para obter informações sobre outras tarefas de automação disponíveis, consulte SQL Server IaaS Agent Extension.

Para obter mais informações sobre como executar o SQL Server em VMs do Azure, consulte Visão geral do SQL Server em máquinas virtuais do Azure.