Partilhar via


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. A NT SERVICE\AzureWLBackupPluginSvc conta é uma Conta de Serviço Virtual e, portanto, não requer nenhum gerenciamento de senha. O Backup do Azure usa a NT 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.

    Arquitetura do Backup SQL

Antes de começar

Antes de começar, verifique os seguintes requisitos:

  1. 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.
  2. Analise as considerações de recursos e o suporte ao cenário.
  3. 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:

  1. 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.

  2. No SQL Server, abra a pasta Security/Logons .

    Abra a pasta Segurança/Logins para ver as contas

  3. Clique com o botão direito do mouse na pasta Logins e selecione Novo login. Em Login - Novo, selecione Pesquisar.

    Na caixa de diálogo Login - Novo, selecione Pesquisar

  4. 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.

    Selecione Verificar nomes para resolver o nome de serviço desconhecido

  5. Em Funções de Servidor, verifique se a função sysadmin está selecionada. Selecione OK. As permissões necessárias agora devem existir.

    Verifique se a função de servidor sysadmin está selecionada

  6. 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 se o servidor tem as permissões apropriadas

  7. Verifique o progresso na área Notificações . Quando os bancos de dados selecionados são encontrados, uma mensagem de êxito é exibida.

    Mensagem de implementação com êxito

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:

  1. Vá para a Instância do SQL Server no Pesquisador de objetos.

  2. Navegue até Segurança -> Logins

  3. Clique com o botão direito do mouse nos logins e selecione Novo login...

    Novo login usando o SSMS

  4. Vá para a guia Geral e digite NT AUTHORITY\SYSTEM como o nome de login.

    Nome de início de sessão para o SSMS

  5. Vá para Funções de Servidor e escolha funções públicas e sysadmin .

    Escolher funções no SSMS

  6. Vá para Status. Conceda a permissão para se conectar ao mecanismo de banco de dados e faça login como habilitado.

    Conceder permissões no SSMS

  7. Selecione OK.

  8. 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.

  9. Depois de conceder permissão, redescubra DBs no portal: Vault -> Manage -> Backup Infrastructure -> Workload in Azure VM:

    Redescobrir DBs no portal do Azure

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:

  1. 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.

  2. Adicione as entidades de valor de chave separadas por vírgula, com chaves EnableLocalDiskBackupForBackupTypes e LocalDiskBackupFolderPath 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 como E:\\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.

  3. 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ância MSSQLSERVERSQL, os arquivos estarão localizados em E:\LocalBackup\MSSQLSERVER\Contoso.

    O nome do arquivo é o VDI device set guid, que é usado para a operação de backup.

  4. Verifique se o local de destino em LocalDiskBackupFolderPath tem permissões de leitura e gravação para NT 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