Sobre a Cópia de Segurança do SQL Server em 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. Esta solução está alinhada com os benefícios do Backup do Azure de backup de infraestrutura zero, retenção de longo prazo e gerenciamento central. Além disso, ele fornece as seguintes vantagens especificamente para o SQL Server:
- Backups com reconhecimento de carga de trabalho que suportam todos os tipos de backup - completos, diferenciais e de log
- RPO (Recovery Point Objetive, objetivo de ponto de recuperação) de 15 minutos com backups de log frequentes
- Recuperação point-in-time até um segundo
- Backup e restauração em nível de banco de dados individual
Para visualizar os cenários de backup e restauração aos quais damos suporte atualmente, consulte a matriz de suporte.
Processo de cópia de segurança
Essa solução aproveita as APIs nativas do SQL para fazer backups de seus bancos de dados SQL.
Depois de especificar a VM do SQL Server que você deseja proteger e consultar os bancos de dados nela, o serviço de Backup do Azure instalará uma extensão de backup de carga de trabalho na VM pela extensão de nome
AzureBackupWindowsWorkload
.Esta extensão consiste em um coordenador e um plug-in SQL. Enquanto o coordenador é responsável por acionar fluxos de trabalho para várias operações, como configurar backup, backup e restauração, o plugin é responsável pelo fluxo de dados real.
Para poder descobrir bancos de dados nessa VM, o Backup do Azure cria a conta
NT SERVICE\AzureWLBackupPluginSvc
. Essa conta é usada para backup e restauração e requer permissões de administrador de sistema SQL. ANT SERVICE\AzureWLBackupPluginSvc
conta é uma Conta de Serviço Virtual e, portanto, não requer nenhum gerenciamento de senha. O Backup do Azure usa aNT AUTHORITY\SYSTEM
conta para descoberta/consulta de banco de dados, portanto, essa conta precisa ser um logon público no SQL. Se não criou a VM do SQL Server a partir do Azure Marketplace, pode receber um erro UserErrorSQLNoSysadminMembership. Se ocorrer essa situação, siga estas instruções.Depois de acionar a proteção de configuraçã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 a extensão armazena em cache localmente na VM.
No horário agendado, o coordenador se comunica com o plug-in e começa a transmitir os dados de backup do servidor SQL usando VDI.
O plug-in envia os dados diretamente para o cofre dos Serviços de Recuperação, eliminando assim a necessidade de um local de preparação. Os dados são criptografados e armazenados pelo serviço de Backup do Azure em contas de armazenamento.
Quando a transferência de dados é concluída, o coordenador confirma a confirmação com o serviço de backup.
Antes de começar
Antes de começar, verifique os seguintes requisitos:
- Verifique se você tem uma instância do SQL Server em execução no Azure. Você pode criar rapidamente uma instância do SQL Server no mercado.
- Analise as considerações de recursos e o suporte ao cenário.
- Analise as perguntas comuns sobre esse cenário.
Definir permissões da VM
Quando você executa 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 requer permissões de administrador de sistema SQL.
- Descobre bancos de dados que estão sendo executados em uma VM, o Backup do Azure usa a conta NT AUTHORITY\SYSTEM. Essa conta deve ser uma entrada pública no SQL.
Se você não criou a VM do SQL Server no Azure Marketplace ou se estiver no SQL 2008 ou 2008 R2, poderá receber um erro UserErrorSQLNoSysadminMembership .
Para conceder permissões no caso do SQL 2008 e 2008 R2 em execução no Windows 2008 R2, consulte aqui.
Para todas as outras versões, corrija as permissões com as seguintes etapas:
Use uma conta com permissões sysadmin do SQL Server para entrar no SQL Server Management Studio (SSMS). A menos que você precise de permissões especiais, a autenticação do Windows deve funcionar.
No SQL Server, abra a pasta Security/Logons .
Clique com o botão direito do mouse na pasta Logins e selecione Novo login. Em Login - Novo, selecione Pesquisar.
A conta de serviço virtual do Windows NT SERVICE\AzureWLBackupPluginSvc foi criada durante a fase de registro da máquina virtual e descoberta SQL. Digite o nome da conta, conforme mostrado em Digite 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 DBs.
Verifique o progresso na área Notificações . Quando os bancos de dados selecionados são encontrados, uma mensagem de êxito é exibida.
Nota
Se o SQL Server tiver várias instâncias do SQL Server instaladas, você deverá adicionar permissão sysadmin para a conta NT Service\AzureWLBackupPluginSvc a todas as instâncias SQL.
Conceder permissões de sysadmin do SQL para SQL 2008 e SQL 2008 R2
Adicione logons NT AUTHORITY\SYSTEM e NT Service\AzureWLBackupPluginSvc à instância do SQL Server:
Vá para a Instância do SQL Server no Pesquisador de objetos.
Navegue até Segurança -> Logins
Clique com o botão direito do mouse nos logins e selecione Novo login...
Vá para a guia Geral e digite NT AUTHORITY\SYSTEM como o nome de login.
Vá para Funções de Servidor e escolha funções públicas e sysadmin .
Vá para Status. Conceda a permissão para se conectar ao mecanismo de banco de dados e faça login como habilitado.
Selecione OK.
Repita a mesma sequência de etapas (1 a 7 acima) para adicionar o logon NT Service\AzureWLBackupPluginSvc à instância do SQL Server. Se o login já existir, verifique se ele tem a função de servidor sysadmin e, em Status, tem Conceder a Permissão para se conectar ao mecanismo de banco de dados e Fazer login como Habilitado.
Depois de conceder permissão, redescubra DBs no portal: Vault -> Manage -> Backup Infrastructure -> Workload in Azure VM:
Como alternativa, você pode automatizar a concessão de permissões executando os seguintes comandos do PowerShell no modo de administração. O nome da instância é definido como MSSQLSERVER por padrão. Altere o argumento do nome da instância no script, se necessário.
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 de armazenamento local e Serviços de Recuperação simultaneamente.
Para configurar backups simultâneos, siga estas etapas:
Vá para o
C:\Program Files\Azure Workload Backup\bin\plugins
local e, em seguida, crie o arquivo PluginConfigSettings.json, se ele não estiver presente.Adicione as entidades de valor de chave separadas por vírgula, com 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 dupla ao mencionar o caminho no arquivo JSON.Por exemplo, se o caminho preferencial para backup local for
E:\LocalBackup
, mencione o caminho em JSON comoE:\\LocalBackup
.O JSON final deve aparecer 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 imediatamente antes do colchete de fechamento.
Para que as alterações entrem em vigor imediatamente, em vez de uma hora normal, vá para Serviços do TaskManager>, clique com o botão direito do mouse em AzureWLbackupPluginSvc e selecione Parar.
Atenção
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ânciaMSSQLSERVER
SQL, os arquivos estarão localizados emE:\LocalBackup\MSSQLSERVER\Contoso
.O nome do arquivo é o
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
.Nota
Para uma pasta nos discos VM locais, 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 um compartilhamento de rede ou SMB, configure as permissões executando os cmdlets do PowerShell abaixo a partir de um console do usuário que já tenha 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óximos passos
- Saiba mais sobre como fazer backup de bancos de dados do SQL Server.
- Saiba mais sobre como restaurar bancos de dados do SQL Server de backup.
- Saiba mais sobre como gerenciar bancos de dados SQL Server de backup.