Sobre o Backup do SQL Server nas VMs do Azure
O Backup do Azure oferece uma solução especializada baseada em fluxo para fazer backup do SQL Server em execução em VMs do Azure. Essa solução se alinha com os benefícios do Backup do Azure de backup sem infraestrutura, retenção de longo prazo e gerenciamento central. Além disso, ela fornece as seguintes vantagens especificamente para o SQL Server:
- Backups com reconhecimento de carga de trabalho que dão suporte a todos os tipos de backup: completo, diferencial e log
- RPO (objetivo de ponto de recuperação) de 15 minutos com backups de log frequentes
- Recuperação pontual de até um segundo
- Backup e restauração no nível do banco de dados individual
Para ver os cenários de backup e restauração aos quais damos suporte hoje, confira a matriz de suporte.
Processo de backup
Essa solução aproveita as APIs nativas do SQL para fazer backups dos bancos de dados SQL.
Depois que você especificar a VM do SQL Server que você deseja proteger e na qual consultar os bancos de dados, o serviço de Backup do Azure instalará uma extensão de backup de carga de trabalho na VM pelo nome da extensão
AzureBackupWindowsWorkload
.Essa extensão consiste em um coordenador e um plugin do SQL. Ao passo que o coordenador é responsável por disparar fluxos de trabalho para várias operações, como configurar o backup, backup e restauração, o plugin é responsável por fluxo de dados real.
Para poder descobrir bancos de dados nesta VM, o Backup do Azure cria a conta
NT SERVICE\AzureWLBackupPluginSvc
. Essa conta é usada para backup e restauração e exige permissões de sysadmin do SQL. A contaNT SERVICE\AzureWLBackupPluginSvc
é uma conta de serviço virtual e, portanto, não exige nenhum gerenciamento de senha. O Backup do Azure usa a contaNT AUTHORITY\SYSTEM
para descoberta/consulta de banco de dados. Portanto, essa conta precisa ser um logon público no SQL. Caso não tenha criado a VM do SQL Server no Azure Marketplace, você poderá receber o erro UserErrorSQLNoSysadminMembership. Se isso ocorrer, siga estas instruções.Depois que o gatilho configurar a proteção nos bancos de dados selecionados, o serviço de backup configura o coordenador com as agendas de backup e outros detalhes da política, que aumenta os caches localmente na VM.
No horário agendado, o coordenador se comunica com o plugin e ele começa a transmissão dos dados de backup do SQL Server usando o VDI.
O plug-in envia os dados diretamente para o cofre dos Serviços de Recuperação, eliminando a necessidade de uma localização de preparo. Os dados são criptografados e armazenados pelo serviço de Backup do Microsoft Azure em contas de armazenamento.
Quando a transferência de dados for concluída, o coordenador confirma com o serviço de backup.
Antes de começar
Antes de começar, verifique os seguintes requisitos:
- Garanta que você tenha uma Instância do SQL Server em execução no Azure. Você pode criar uma Instância do SQL Server rapidamente no marketplace.
- Examine as considerações sobre recursos e o suporte de cenários.
- Examine as perguntas comuns sobre esse cenário.
Definir permissões da VM
Ao executar a descoberta em um SQL Server, o Backup do Azure faz o seguinte:
- Adiciona a extensão AzureBackupWindowsWorkload.
- Cria uma conta NT SERVICE\AzureWLBackupPluginSvc para descobrir bancos de dados na máquina virtual. Essa conta é usada para backup e restauração e exige permissões de sysadmin do SQL.
- Descobre os bancos de dados que estão em execução em uma VM, o Backup do Azure usa a conta NT AUTHORITY\SYSTEM. Essa conta deve estar conectada publicamente no SQL.
Se você não criou a VM do SQL Server no Azure Marketplace ou se está usando o SQL 2008 ou 2008 R2, talvez receba o erro UserErrorSQLNoSysadminMembership.
Para conceder permissões no caso do SQL 2008 e do 2008 R2 em execução no Windows 2008 R2, acesse aqui.
Para todas as outras versões, corrija as permissões com as seguintes etapas:
Use uma conta com permissões de sysadmin do SQL Server para entrar no SSMS (SQL Server Management Studio). A menos que você precise de permissões de acesso especiais, a autenticação do Windows deverá funcionar.
No SQL Server, abra a pasta Segurança/Logons.
Clique com o botão direito do mouse na pasta Logons e selecione Novo Logon. Em Logon – Novo, selecione Pesquisar.
A conta de serviço virtual do Windows NT SERVICE\AzureWLBackupPluginSvc foi criada durante a fase de descoberta do SQL e do registro da máquina virtual. Insira o nome da conta, conforme mostrado em Inserir o nome do objeto a ser selecionado. Selecione Verificar Nomes para resolver o nome. Selecione OK.
Em Funções de Servidor, verifique se a função sysadmin está selecionada. Selecione OK. As permissões necessárias agora devem existir.
Agora, associe o banco de dados ao cofre dos Serviços de Recuperação. No portal do Azure, na lista Servidores Protegidos, clique com o botão direito do mouse no servidor que está em um estado de erro >Redescobrir BDs.
Verifique o progresso na área Notificações. Quando os bancos de dados selecionados são descobertos, é exibida uma mensagem de êxito.
Observação
Se o SQL Server tiver várias instâncias do SQL Server instaladas, você precisará adicionar a permissão sysadmin para a conta NT Service\AzureWLBackupPluginSvc em todas as instâncias do SQL.
Conceder permissões de sysadmin do SQL para SQL 2008 e SQL 2008 R2
Adicione logins do NT AUTHORITY\SYSTEM e do NT Service\AzureWLBackupPluginSvc à instância do SQL Server:
Vá até a instância do SQL Server no Pesquisador de Objetos.
Navegue até Segurança -> Logons
Clique com o botão direito do mouse nos logons e selecione Novo Logon…
Vá até a guia Geral e insira NT AUTHORITY\SYSTEM como o nome de logon.
Vá até Funções de Servidor e escolha as funções public e sysadmin.
Vá até Status. Conceda a permissão para conectar ao mecanismo de banco de dados e faça logon como Habilitado.
Selecione OK.
Repita a mesma sequência de etapas (de 1 a 7 acima) para adicionar o logon de NT Service\AzureWLBackupPluginSvc à instância do SQL Server. Se o logon já existe, verifique se tem a função de servidor sysadmin e, em Status, se tem a permissão de concessão para se conectar ao mecanismo de banco de dados e faça logon como Habilitado.
Após conceder permissão, Redescobrir DBs no portal: Cofre -> Gerenciar -> Infraestrutura de backup -> Carga de trabalho na VM do Azure:
Como alternativa, é possível automatizar o fornecimento de permissões executando os seguintes comandos do PowerShell no modo de administrador. Por padrão, o nome da instância é definido como MSSQLSERVER. Se necessário, altere o argumento do nome da instância no script.
param(
[Parameter(Mandatory=$false)]
[string] $InstanceName = "MSSQLSERVER"
)
if ($InstanceName -eq "MSSQLSERVER")
{
$fullInstance = $env:COMPUTERNAME # In case it is the default SQL Server Instance
}
else
{
$fullInstance = $env:COMPUTERNAME + "\" + $InstanceName # In case of named instance
}
try
{
sqlcmd.exe -S $fullInstance -Q "sp_addsrvrolemember 'NT Service\AzureWLBackupPluginSvc', 'sysadmin'" # Adds login with sysadmin permission if already not available
}
catch
{
Write-Host "An error occurred:"
Write-Host $_.Exception|format-list -force
}
try
{
sqlcmd.exe -S $fullInstance -Q "sp_addsrvrolemember 'NT AUTHORITY\SYSTEM', 'sysadmin'" # Adds login with sysadmin permission if already not available
}
catch
{
Write-Host "An error occurred:"
Write-Host $_.Exception|format-list -force
}
Configurar backups simultâneos
Agora você pode configurar backups para salvar os pontos de recuperação e os logs do SQL Server em um cofre dos Serviços de Recuperação e armazenamento local simultaneamente.
Para configurar backups simultâneos, siga essas etapas:
Vá para o local
C:\Program Files\Azure Workload Backup\bin\plugins
e crie o arquivo PluginConfigSettings.json, se ele não estiver presente.Adicione as entidades de valor de chave separadas por vírgulas, com as chaves
EnableLocalDiskBackupForBackupTypes
eLocalDiskBackupFolderPath
ao arquivo JSON.Em
EnableLocalDiskBackupForBackupTypes
, liste os tipos de backup que você deseja armazenar localmente.Por exemplo, se você quiser armazenar os backups Completo e Log, mencione
["Full", "Log"]
. Para armazenar apenas os backups de log, mencione["Log"]
.Em
LocalDiskBackupFolderPath
, mencione o caminho para a pasta local. Certifique-se de usar a barra comum dupla ao mencionar o caminho no arquivo JSON.Por exemplo, se o caminho preferido para o backup local for
E:\LocalBackup
, mencione o caminho em JSON comoE:\\LocalBackup
.O JSON final deve ser como:
{ "EnableLocalDiskBackupForBackupTypes": ["Log"], "LocalDiskBackupFolderPath": "E:\\LocalBackup", }
Se houver outras entradas pré-preenchidas no arquivo JSON, adicione as duas entradas acima na parte inferior do arquivo JSON antes do colchete de encerramento.
Para que as alterações entrem em vigor imediatamente em vez de uma hora regular, acesse TaskManager>Serviços, clique com o botão direito do mouse em AzureWLbackupPluginSvc e selecione Interromper.
Cuidado
Essa ação cancelará todos os trabalhos de backup em andamento.
A convenção de nomenclatura do arquivo de backup armazenado e a estrutura de pastas para ele será
{LocalDiskBackupFolderPath}\{SQLInstanceName}\{DatabaseName}
.Por exemplo, se você tiver um banco de dados
Contoso
na instância SQLMSSQLSERVER
, os arquivos estarão localizados emE:\LocalBackup\MSSQLSERVER\Contoso
.O nome do arquivo é
VDI device set guid
, que é usado para a operação de backup.Verifique se o local de destino em
LocalDiskBackupFolderPath
tem permissões de leitura e gravação paraNT Service\AzureWLBackupPluginSvc
.Observação
Para obter uma pasta nos discos de VM local, clique com o botão direito do mouse na pasta e configure as permissões necessárias para
NT Service\AzureWLBackupPluginSvc
na guia Segurança.Se você estiver usando uma rede ou compartilhamento de SMB, configure as permissões executando os cmdlets do PowerShell abaixo de um console do usuário que já tem permissão para acessar o compartilhamento:
$cred = Get-Credential New-SmbGlobalMapping -RemotePath <FileSharePath> -Credential $cred -LocalPath <LocalDrive>: -FullAccess @("<Comma Separated list of accounts>") -Persistent $true
Exemplo:
$cred = Get-Credential New-SmbGlobalMapping -RemotePath \\i00601p1imsa01.file.core.windows.net\rsvshare -Credential $cred -LocalPath Y: -FullAccess @("NT AUTHORITY\SYSTEM","NT Service\AzureWLBackupPluginSvc") -Persistent $true
Próximas etapas
- Saiba mais sobre como realizar backup de bancos de dados do SQL Server.
- Saiba mais sobre como restaurar bancos de dados do SQL Server copiados em backup.
- Saiba mais sobre como gerenciar bancos de dados do SQL Server copiados em backup.