Backup Automatizado para máquinas virtuais do SQL Server 2014 (Resource Manager)

Aplica-se a:SQL Server na VM do Azure

O backup automatizado configura automaticamente o Backup Gerenciado do Microsoft Azure para todos os bancos de dados novos e existentes em uma VM do Azure executando o SQL Server 2014 Standard ou Enterprise. Isso permite que você configure backups normais de banco de dados que utilizam o armazenamento durável de Blobs do Azure. O Backup Automatizado depende da Extensão SQL Server IaaS (infraestrutura como serviço) Agent.

Observação

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 abordará o uso do modelo de implantação do Resource Manager. Recomendamos usar o modelo de implantação do Resource Manager para executar novas implantações em vez do modelo clássico de implantação.

Pré-requisitos

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

Sistema operacional:

  • Windows Server 2012 e superior

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

  • SQL Server 2014 Standard
  • SQL Server 2014 Enterprise

Observação

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

Configuração do banco de dados:

  • Os bancos de dados do usuário 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 sejam realizados backups de log para model ou msdb, será necessário usar o modelo de recuperação completa. Para obter mais informações sobre o impacto do modelo de recuperação completa em backups, veja Backup com o modelo de recuperação completa.
  • A VM do SQL Server foi registrada com a extensão do Agente de IaaS do SQL e o recurso de backup automatizado está habilitado. Como o backup automatizado depende da extensão, o backup automatizado só tem suporte em bancos de dados de destino da instância padrão, ou em uma única instância nomeada. Se não houver nenhuma instância padrão e várias instâncias nomeadas, a extensão do Agente de IaaS do SQL falhará e o backup automatizado não funcionará.

Configurações

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

Configuração Intervalo (Padrão) Descrição
Backup Automatizado Habilitar/desabilitar (Desabilitado) Habilita ou desabilita o Backup Automatizado de uma VM do Azure que executa o SQL Server 2014 Standard ou Enterprise.
Período de Retenção Um a 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 de 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, hora e nome do computador.
Criptografia Habilitar/desabilitar (Desabilitado) Habilita ou desabilita a criptografia de backup. Quando a criptografia de backup é habilitada, os certificados usados para restaurar o backup ficam localizados na conta de armazenamento especificada no mesmo contêiner automaticbackup com a mesma convenção de nomenclatura. Se a senha for alterada, um novo certificado será gerado com essa senha, mas o certificado antigo permanece para restaurar backups anteriores.
Senha Texto da senha Uma senha para as chaves de criptografia. Isso só é necessário se a criptografia estiver habilitada. Para restaurar um backup criptografado, você deverá 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 máquina virtual do SQL Server 2014 no modelo de implantação do Resource Manager.

Na guia Configurações do SQL Server, role a página 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.

Captura de tela da configuração do Backup Automatizado do SQL no portal do Azure.

Configurar VMs existentes

Para as 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.

Procure o recurso de máquinas virtuais do SQL da sua máquina virtual do SQL Server 2014 e selecione Backups.

Captura de tela do backup Automatizado do SQL para VMs existentes.

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

Se você for habilitar o Backup Automatizado pela primeira vez, o Azure configurará o Agente IaaS do SQL Server em segundo plano. Durante esse tempo, 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.

Observação

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

Configurar com o PowerShell

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

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.

Verificar as configurações atuais

Se você habilitou o backup automatizado durante o provisionamento, poderá usar o PowerShell para verificar a 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 ver um resultado semelhante ao 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, você precisará habilitar o backup automatizado. A boa notícia é que você habilita e configura o Backup Automatizado da mesma maneira. Confira a próxima seção para obter mais informações.

Observação

Se você verificar as configurações imediatamente depois de fazer uma alteração, será possível que você obtenha os valores de configuração antigos. Aguarde alguns minutos e verifique as configurações novamente para se certificar de que as alterações foram aplicadas.

Configurar o 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 }

Observação

O Backup Automatizado não dá suporte ao armazenamento de backups no Armazenamento Premium, mas ele pode fazer backups de discos de VM que usam o Armazenamento Premium.

Se desejar 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, caso não exista.

$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." `
}

Depois, use o seguinte script para obter uma 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 ser mantidos por 10 dias.

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

Pode demorar vários minutos para instalar e configurar o Agente IaaS do SQL Server.

Observação

Há outras configurações de 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. Caso deseje usar essas configurações em uma máquina virtual do SQL Server 2016, confira Backup Automatizado para máquinas virtuais do SQL Server 2016 no Azure.

Para habilitar a criptografia, modifique o script anterior para passar o parâmetro -AutoBackupSettingEnableEncryption 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 a 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 que as configurações estão aplicadas, verifique a configuração do Backup Automatizado.

Desabilitar o Backup automatizado

Para desabilitar o backup automatizado, execute o mesmo script com o parâmtero -AutoBackupSettingEnable definido como $false no comandoUpdate-AzSqlVM. Ao configurar o valor como $false, a função será desativada. Assim como acontece com a instalação, pode demorar vários minutos para desabilitar 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, convém personalizar o script de acordo com seus requisitos. Por exemplo, você teria que fazer alterações desejasse 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 

Backup com certificados de criptografia

Se você decidir criptografar backups, um certificado de criptografia será gerado e salvo na mesma conta de armazenamento que os backups. Nesse cenário, você também precisará inserir uma senha que será usada para proteger os certificados de criptografia usados para criptografar e descriptografar seus backups. Com isso, você não precisa se preocupar com backups além da configuração desse recurso e também pode ter certeza de que seus backups são seguros.

Quando a criptografia de backup estiver habilitada, é altamente recomendável verificar se o certificado de criptografia foi criado e carregado com êxito para garantir a restauração dos bancos de dados. Você pode fazer isso criando um banco de dados imediatamente e verificando se os certificados de criptografia e os dados foram copiados para o contêiner recém-criado corretamente. Isso mostrará que tudo foi configurado corretamente e que nenhuma anomalia ocorreu.

Se o certificado não tiver sido carregado por algum motivo, você poderá usar o gerenciador de certificados para exportar o certificado e salvá-lo. No entanto, não convém salvá-lo na mesma VM, pois isso não garante que você tenha acesso ao certificado quando a VM estiver inativa. Para saber se o backup do certificado foi feito corretamente após alterar ou criar a configuração do Backup Automatizado, você poderá verificar os logs de eventos na VM e, se ele falhar, esta mensagem de erro será exibida:

Captura de tela da mensagem de erro exibida no Log de eventos na VM.

Se o backup dos certificados tiver sido feito corretamente, você verá esta mensagem nos logs de eventos:

Captura de tela do backup bem-sucedido do certificado de criptografia em logs de eventos.

Como prática geral, convém verificar a integridade dos seus backups de tempos em tempos. Para poder restaurar seus backups, faça o seguinte:

  1. Confirme se foi feito backup dos certificados de criptografia e lembre-se da senha. Se não fizer isso, você não será capaz de descriptografar e restaurar seus backups. Se o backup dos certificados não tiver sido feito corretamente por algum motivo, você poderá fazer isso manualmente executando a seguinte consulta T-SQL:

    BACKUP MASTER KEY TO FILE = <file_path> ENCRYPTION BY PASSWORD = <password>
    BACKUP CERTIFICATE [AutoBackup_Certificate] TO FILE = <file_path> WITH PRIVATE KEY (FILE = <file_path>, ENCRYPTION BY PASSWORD = <password>)
    
  2. Confirme se os arquivos de backup foram carregados com pelo menos 1 backup completo. Como erros acontecem, você deve ter certeza de que sempre tem pelo menos um backup completo antes de excluir sua VM ou, caso ela seja corrompida, para que você saiba que ainda pode acessar seus dados. Certifique-se de que o backup no armazenamento é seguro e recuperável antes de excluir os discos de dados da VM.

Monitoramento

Para monitorar o Backup Automatizado no SQL Server 2014, há duas opções principais. Como o Backup Automatizado usa o recurso de Backup gerenciado do SQL Server, as mesmas técnicas de monitoramentos se aplicam a ambos.

Primeiro, você poderá sondar o status chamando msdb.smart_admin.sp_get_backup_diagnostics. Ou consultar a função msdb.smart_admin.fn_get_health_status com valor de tabela.

Observação

O esquema para o Backup Gerenciado no SQL Server 2014 é msdb.smart_admin. No SQL Server 2016 isso alterou para msdb.managed_backup e os tópicos de referência utilizam este esquema mais recente. Mas para o SQL Server 2014, você deve continuar a usar o esquema smart_admin para todos os Objetos de Backup gerenciados.

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

  1. Chame o msdb.smart_admin.sp_set_parameter procedimento armazenado para atribuir um endereço de email para parâmetro SSMBackup2WANotificationEmailIds.
  2. Habilitar SendGrid para enviar os emails da VM do Azure.
  3. Use o nome de usuário e o servidor SMTP 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. Configurar o SQL Server Agent para usar o Database Mail.
  5. Verifique se a porta SMTP é permitida por meio do firewall da VM local e o grupo de segurança de rede para a VM.

Próximas etapas

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

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

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

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