Configurar o envio de logs do SQL Server nas VMs do Azure

Aplica-se a:SQL Server na VM do Azure

Este artigo ensina você a configurar o envio de logs entre dois bancos de dados SQL Server em VMs (Máquinas Virtuais) do Azure.

Visão geral

O envio de logs permite o envio automático de backups do log de transações de um banco de dados primário em um servidor primário para um ou mais bancos de dados secundários em outro servidor secundário. Os backups de logs de transação são aplicados individualmente aos bancos de dados secundários. Um terceiro servidor opcional, conhecido como servidor monitor, registra o histórico e o status das operações de backup e restauração e, opcionalmente, emite alertas se essas operações não forem executadas como foram agendadas.

O envio de logs é usado principalmente como uma solução de recuperação de desastres e pode ser combinado com outras opções de alta disponibilidade e recuperação de desastres, incluindo grupos de disponibilidade Always On.

Pré-requisitos

Para configurar o envio de logs para o SQL Server em VMs do Azure, é preciso cumprir os seguintes pré-requisitos:

  • Pelo menos duas máquinas virtuais do Azure ingressadas no domínio com o SQL Server no mesmo grupo de recursos que uma conta de armazenamento do Azure para backups de log de transações. O servidor secundário deve estar na mesma versão ou superior do SQL Server que o SQL Server primário.

  • O banco de dados primário deve usar o modelo de recuperação bulk-logged. O envio de logs deixa de funcionar se o banco de dados primário for alternado para um modelo de recuperação simples.

  • A conta que configura o envio de logs deve ser membro da função de servidor fixa sysadmin.

Criar um Compartilhamento de Arquivos do Azure

Os backups de log de transações do servidor primário são armazenados em um arquivo compartilhado. Antes de configurar o envio de logs, você deve criar um Compartilhamento de Arquivos do Azure dentro de uma conta de armazenamento do Azure que possa ser acessada pelos servidores primário e secundário.

Para criar seu compartilhamento de arquivos do Azure no portal do Azure, siga estas etapas:

  1. Vá para o grupo de recursos no portal do Azure e selecione a conta de armazenamento que você pretende usar para os backup de log de transações.

  2. Em Armazenamento de Dados, selecione Compartilhamentos de Arquivos e escolha +Compartilhamento de arquivos para criar um novo compartilhamento de arquivos.

    Screenshot of the File share creation option in the Azure portal.

  3. Na guia Básico, forneça o nome do compartilhamento de arquivos, como log-shipping. Você pode manter a Camada no padrão de Otimizada para transação.

  4. (Opcional) Na guia Backup, use a caixa de seleção para habilitar backups do compartilhamento de arquivos no Backup do Azure.

  5. Selecione Examinar + criar para examinar as configurações de compartilhamento de arquivos e selecione Criar para criar seu novo compartilhamento de arquivos.

Criar diretórios de backup

Depois que o compartilhamento de arquivos for criado, você deverá criar os dois diretórios a seguir:

  • Um diretório para o primário gravar os backups de logs
  • Um diretório para o secundário copiar e restaurar o backup de logs

Para criar os diretórios, siga estas etapas:

  1. Depois que o Azure criar o compartilhamento de arquivos, o portal o retornará à página Visão geral do novo arquivo SMB.

  2. Em Procurar, selecione + Adicionar diretório. Informe o nome do novo diretório, como log-backups. Selecione OK.

    Screenshot of the add directory creation option in the Azure portal.

  3. Repita a etapa anterior para adicionar um segundo diretório, como restore-backups. Selecione OK.

Conectar-se a VMs para compartilhamento de arquivos

Depois que os diretórios forem criados, conecte as máquinas virtuais ao compartilhamento de arquivos.

Para determinar os detalhes da conexão, selecione Conectar na página Procurar ou Visão geral do compartilhamento de arquivos para abrir a janela Conectar.

Screenshot of the Connect option for the file share in the Azure portal.

A janela Conectar oferece um script para permitir que um recurso acesse o compartilhamento de arquivos. Opcionalmente, altere a Letra da unidade para montar o compartilhamento de arquivos na máquina virtual. Este guia usa uma chave de conta de armazenamento para uma máquina virtual do Windows.

Selecione Mostrar script para exibir o script, copiá-lo e executá-lo em cada VM do SQL Server em que você planeja configurar o envio de logs.

Depois de executar o script Connect, você pode usar o seguinte cmdlet do PowerShell para verificar a conectividade com a porta 445:

Test-NetConnection -ComputerName yourstorageaccount.file.core.windows.net -Port 445

Se o teste de conexão for bem-sucedido, você verá uma saída de TcpTestSucceeded : True.

Conceder ao SQL Server acesso ao compartilhamento de arquivos

Depois que as VMs do SQL Server puderem se conectar com sucesso ao compartilhamento de arquivos, conceda à conta de serviço do SQL Server permissão para acessar o compartilhamento de arquivos criando uma credencial no SQL Server usando a URL, o nome de usuário e a senha do script Conectar.

Para criar a credencial, habilite xp_cmdshell e use-o para criar a credencial antes de desabilitar o xp_cmdshell novamente.

Para conceder à conta de serviço do SQL Server acesso ao compartilhamento de arquivos, siga estas etapas em cada instância do SQL Server que você planeja usar para envio de logs:

  1. Conecte-se à VM do SQL Server com uma conta que faça parte da função sysadmin.

  2. Abra o SSMS (SQL Server Management Studio) e conecte-se à sua instância do SQL Server.

  3. Abra uma nova janela de consulta e execute o seguinte código Transact-SQL que contém os detalhes da chave de armazenamento obtidos do portal do Azure:

    EXEC sp_configure 'show advanced options', 1;
    RECONFIGURE;
    exec sp_configure 'xp_cmdshell', 1;
    RECONFIGURE;
    GO
    EXEC xp_cmdshell 'cmdkey /add:"yourstorageaccount.file.core.windows.net" /user:"localhost\yourstorageaccount" /pass:"<yourpasskey>"';
    GO
    EXEC sp_configure 'xp_cmdshell', 0;
    RECONFIGURE;
    GO
    

    Depois de executar o comando, o SSMS confirma que sua credencial foi adicionada com sucesso:

    Screenshot of the confirmation the credential was successfully created in SSMS.

Configurar o envio de logs

Depois que as instâncias do SQL Server puderem acessar o compartilhamento de arquivos, use o SQL Server Management Studio (SSMS) para configurar o envio de logs.

Para configurar o envio de logs, siga estas etapas:

  1. Conecte-se à instância primária do SQL Server.

  2. Clique com o botão direito do mouse no banco de dados que deve ser usado como banco de dados primário na configuração de envio de logs e depois selecione Propriedades.

  3. Em Selecionar uma página, selecione Envio do Log de Transações.

  4. Marque a caixa ao lado de Habilite isto como banco de dados primário em uma configuração de envio de logs.

  5. Em Backups de log de transações, selecione Configurações de backup.

  6. Na caixa Caminho de rede para a pasta de backup, digite o caminho de rede para o compartilhamento e diretório que você criou para a pasta de backup de log de transações.

    Por exemplo: \\yourstorageaccount.file.core.windows.net\log-shipping\log-backups

  7. Configure os parâmetros Excluir arquivos com mais de e Alertar se nenhum backup ocorrer em de acordo com suas necessidades de negócios.

    1. Observe a agenda de backup listada na caixa Agenda em Trabalho de backup. Se quiser personalizar a agenda para sua instalação, clique em Agenda e, em seguida, ajuste a agenda do agente do SQL Server, conforme necessário.

    2. SQL Server dá suporte à compactação de backup. Ao criar uma configuração de envio de logs, é possível controlar o comportamento de compactação de backup dos backups de log escolhendo uma das opções a seguir: Usar a configuração de servidor padrão, Compactar backup ou Não compactar o backup. Para obter mais informações, consulte Log Shipping Transaction Log Backup Settings.

    3. Selecione OK para salvar as configurações.

  8. Em Instâncias e bancos de dados do servidor secundário, clique em Adicionar.

  9. Clique em Conectar e conecte-se à instância do SQL Server que deseja usar como servidor secundário.

    1. Na caixa Banco de Dados Secundário , escolha um banco de dados da lista ou digite o nome do banco de dados que deve ser criado.

    2. Na guia Inicializar banco de dados secundário , escolha a opção que deseja usar para inicializar o banco de dados secundário.

    Observação

    Se você optar para que o SSMS inicialize o banco de dados secundário por meio de um backup de banco de dados, os arquivos de dados e de log do banco de dados secundário serão colocados no mesmo local que os arquivos de dados e de log do banco de dados master. É provável que esse local seja diferente do local dos arquivos de dados e de log do banco de dados primário.

  10. Na guia Copiar Arquivos, na caixa Pasta de destino para arquivos copiados, digite o caminho da pasta onde deseja copiar os backups de logs de transações, como o diretório de restauração de backups criado para o compartilhamento de arquivos:

    \\yourstorageaccount.file.core.windows.net\log-shipping\restore-backups

    1. Observe a agenda de cópias listada na caixa Agenda em Copiar trabalho. Se quiser personalizar a agenda para sua instalação, selecione Agenda e, em seguida, ajuste a Agenda do agente do SQL Server, conforme necessário. Essa agenda deve aproximar-se da agenda de backup.
  11. Na guia Restaurar em Estado de banco de dados ao restaurar backups, escolha a opção Nenhum modo de recuperação ou Modo de espera .

    Importante

    Modo de espera é apenas uma opção quando a versão do servidor primário e secundário são as mesmas. Quando a versão principal do servidor secundário for maior do que a do primário, apenas Nenhum modo de recuperação será permitido.

    1. Caso tenha escolhido a opção Modo de espera, escolha se deseja desconectar os usuários do banco de dados secundário enquanto a operação de restauração está em andamento.

    2. Caso queira adiar o processo de restauração no servidor secundário, escolha um tempo de atraso em Atrasar restauração de backups pelo menos.

    3. Escolha um limite de alerta em Alertar se nenhuma restauração ocorrer em.

    4. Observe a agenda de restauração listada na caixa Agenda em Restaurar trabalho. Se quiser personalizar a agenda para sua instalação, selecione Agenda e, em seguida, ajuste a Agenda do agente do SQL Server, conforme necessário. Essa agenda deve aproximar-se da agenda de backup.

    5. Selecione OK para salvar as configurações.

  12. (Opcional) Em Instância do servidor monitor, selecione a caixa de seleção Usar uma instância de servidor monitor e, em seguida, selecione Configurações.

    Importante

    Para monitorar essa configuração de envio de logs é necessário adicionar o servidor monitor neste momento. Para adicionar o servidor monitor posteriormente, é necessário remover essa configuração de envio de logs e, em seguida, substituí-la pela configuração nova que inclua um servidor monitor.

    1. Use Conectar e conecte-se à instância do SQL Server que deseja usar como servidor monitor.

    2. Em Conexões de monitor, escolha o método de conexão para ser usado pelo backup, copie e restaure os trabalhos para fazer a conexão com o servidor monitor.

    3. Em Retenção de histórico, escolha o período de tempo em que o registro deve ser retido no histórico de envio de logs.

    4. Selecione OK para salvar as configurações.

  13. Na caixa de diálogo Propriedades do Banco de Dados, clique em OK para iniciar o processo de configuração.