Sobre o envio de logs (SQL Server)

Aplica-se a:SQL Server

SQL Server permite o envio automático de backups do log de transações de um banco de dados primário em uma instância do servidor primário para um ou mais banco de dados secundário em outras instâncias de servidor secundário . Os backups de logs de transação são aplicados individualmente aos bancos de dados secundários. Uma terceira instância de servidor opcional, conhecida 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.

Benefícios

  • Fornece uma solução de recuperação de desastres para um único banco de dados primário e um ou mais bancos de dados secundários, cada um em uma instância separada do SQL Server.

  • Dá suporte a acesso somente leitura limitado a bancos de dados secundários (durante o intervalo entre trabalhos de restauração).

  • Permite um atraso especificado pelo usuário entre o momento em que o servidor primário faz backup do log do banco de dados primário e quando os servidores secundários devem restaurar (aplicar) o backup do log. Um atraso mais longo pode ser útil, por exemplo, se dados forem alterados acidentalmente no banco de dados primário. Se a alteração acidental for notada rapidamente, um atraso pode permitir que você recupere dados ainda inalterados de um banco de dados secundário, antes que a alteração seja refletida lá.

Termos e definições

  • servidor primário: a instância do SQL Server que é seu servidor de produção.

  • banco de dados primário: o banco de dados no servidor primário cujo backup você quer fazer e enviar para outro servidor. Toda a administração da configuração de envio de logs pelo SQL Server Management Studio é realizada a partir do banco de dados primário.

  • servidor secundário: a instância do SQL Server onde você deseja manter uma cópia de espera passiva de seu banco de dados primário.

  • banco de dados secundário: a cópia de espera passiva do banco de dados primário. O banco de dados secundário pode estar no estado RECOVERING ou no estado STANDBY, o que deixa o banco de dados disponível para acesso limitado de somente leitura.

  • servidor monitor: uma instância opcional do SQL Server que rastreia todos os detalhes do envio de log, incluindo:

    • A data do último backup do log de transações do banco de dados primário.
    • A data da última vez em que os arquivos de backup foram copiados e restaurados nos servidores secundários.
    • Informações sobre qualquer alerta de falha de backup.

    Importante

    Uma vez configurado o servidor monitor, ele não pode ser alterado sem antes remover o envio de log.

  • trabalho de backup: um trabalho do SQL Server Agent que executa a operação de backup, registra o histórico no servidor local e no servidor monitor e exclui os arquivos de backup antigos e as informações do histórico. Quando o envio de logs está habilitado, a categoria de trabalho "Backup de Envio de Logs" é criada na instância do servidor primário.

  • trabalho de cópia: um trabalho do SQL Server Agent que copia os arquivos de backup do servidor primário para um destino configurável no servidor secundário e registra o histórico no servidor secundário e no servidor monitor. Quando o envio de logs estiver habilitado em um banco de dados, a categoria de trabalho “Cópia de Envio de Log" será criada em cada servidor secundário em uma configuração de envio de logs.

  • trabalho de restauração: um trabalho do SQL Server Agent que restaura os arquivos de backup copiados nos bancos de dados secundários. Ele registra o histórico no servidor local e no servidor monitor e exclui arquivos e informações de histórico antigos. Quando o envio de logs estiver habilitado em um banco de dados, a categoria de trabalho “Restauração de Envio de Log" será criada na instância do servidor secundário.

  • trabalho de alerta: um trabalho do SQL Server Agent que emite alertas para os bancos de dados primário e secundário quando uma operação de backup e restauração não é concluída com êxito dentro de um limite especificado. Quando o envio de logs estiver habilitado em um banco de dados, a categoria de trabalho “Alerta de Envio de Log" será criada na instância do servidor monitor.

    Dica

    Para cada alerta, você precisa especificar um número de alerta. Além disso, configure o alerta para notificar um operador quando um alerta for gerado.

Visão geral do envio de logs

O envio de logs engloba três operações:

  1. Backup do log de transações da instância do servidor primário.
  2. Cópia do arquivo do log de transações para a instância do servidor secundário.
  3. Restauração do backup de log na instância do servidor secundário.

O log pode ser enviado a várias instâncias de servidor secundário. Nesses casos, as operações 2 e 3 são repetidas em cada instância de servidor secundário.

Uma configuração de envio de logs não realiza automaticamente failover do servidor primário ao secundário. Se o banco de dados primário ficar indisponível, os bancos de dados secundários poderão ser colocados online manualmente.

Você pode usar um banco de dados secundário para gerar relatórios.

Além disso, é possível configurar alertas para a configuração de envio de log.

Uma configuração de envio de logs comum

A figura a seguir mostra a configuração do envio de logs com a instância do servidor primário, três instâncias de servidor secundário e uma instância de servidor monitor. A figura ilustra as etapas executadas pelos trabalhos de backup, cópia e restauração, como segue:

  1. A instância do servidor primário executa o trabalho de backup do log de transações do banco de dados primário. Essa instância do servidor coloca o backup do log em um arquivo de backup de log primário, enviado para a pasta de backup. Nesta figura, a pasta de backup está em um diretório compartilhado, o compartilhamento de backup.

  2. Cada uma das três instâncias de servidor secundário executa seu próprio trabalho de cópia do arquivo de backup de log primário para a sua própria pasta de destino local.

  3. Cada instância de servidor secundário executa seu próprio trabalho de restauração do arquivo de backup de log a partir da pasta de destino local no banco de dados secundário local.

As instâncias de servidor primário e secundário enviam seus próprios históricos e status para a instância do servidor monitor.

Diagram of configuration showing backup, copy, and restore jobs.

Interoperabilidade

O envio de logs pode ser usado com os seguintes recursos ou componentes do SQL Server:

Observação

Grupos de disponibilidade AlwaysOn e o espelhamento de banco de dados são mutuamente exclusivos. Um banco de dados que é configurado para um desses recursos não pode ser configurado para o outro.

Cuidado

Problema conhecido: em bancos de dados com tabelas otimizadas para memória, executar um backup de log de transações sem recuperação e, posteriormente, executar uma restauração de log de transações com recuperação pode resultar em um processo de restauração de banco de dados sem resposta. Esse problema também pode afetar a funcionalidade de envio de logs. Para contorná-lo, a instância do SQL Server pode ser reiniciada antes de iniciar o processo de restauração.