Visão geral do envio de log

O envio de logs permite o envio automático de backups do log de transações de um banco de dados primário de 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.

Operações de envio de log

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. Para obter mais informações, consulte Usando servidores secundários para processamento de consulta.

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

Banco de dados e servidor primários

O servidor primário de uma configuração de envio de logs é a instância do SQL Server Mecanismo de Banco de Dados do servidor de produção. O banco de dados primário é o banco de dados do 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.

O banco de dados primário deve usar o modelo de recuperação completa ou bulk-logged; se o banco de dados for alterado para o modelo de recuperação simples, o envio de logs deixará de funcionar.

Servidor e bancos de dados secundários

O servidor secundário de uma configuração de envio de logs é o servidor no qual você deseja manter uma cópia de espera passiva do banco de dados primário. Um servidor secundário pode conter cópias de backup de bancos de dados de diversos servidores primários. Por exemplo, um departamento pode ter cinco servidores, cada um executando um sistema de banco de dados de missão crítica. Em vez de ter cinco servidores secundários separados, é possível usar um único servidor secundário. Os backups dos cinco sistemas primários podem ser carregados em um mesmo sistema de backup, reduzindo o número de recursos necessários e gerando economia. É improvável que ocorra falha de mais de um sistema primário ao mesmo tempo. Além disso, para eliminar a possibilidade remota de mais de um sistema primário ficar indisponível ao mesmo tempo, a especificação do servidor secundário deve ser superior à dos primários.

O banco de dados secundário deve ser iniciado pela restauração de um backup completo do banco de dados primário. A restauração pode ser concluída usando-se a opção NORECOVERY ou STANDBY. Ela pode ser feita manualmente ou por meio do SQL Server Management Studio.

Servidor monitor

O servidor monitor opcional 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.

O servidor monitor deve ser um servidor separado dos servidores primário e secundário para evitar a perda de informações vitais e a interrupção do monitoramento em caso de perda do servidor primário ou secundário. Um único servidor monitor pode monitorar várias configurações de envio de log. Nesse caso, todas as configurações de envio de logs que usam o servidor monitor compartilhariam o mesmo trabalho de alerta.

Observação importanteImportante

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

Para obter mais informações, consulte Monitorando envio de logs.

Trabalhos de envio de logs

O envio de logs envolve quatro trabalhos que são realizados por trabalhos dedicados do SQL Server Agent. Esses trabalhos incluem o trabalho de backup, cópia, restauração e alerta.

O usuário controla a frequência com que os backups são executados, copiados para cada servidor secundário e aplicados ao banco de dados secundário. Para reduzir o trabalho necessário para colocar um servidor secundário online, por exemplo, depois da falha de um sistema de produção, é possível copiar e restaurar cada backup do log de transações logo após sua criação. Como alternativa, talvez em um segundo servidor secundário, você pode retardar a aplicação dos backups de log de transações ao banco de dados secundário. Esse atraso proporciona um intervalo no qual você pode detectar e corrigir uma falha do primário, como a exclusão acidental de dados vitais.

Trabalho de backup

É criado um trabalho de backup na instância do servidor primário para cada banco de dados primário. Ele 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. Por padrão, esse trabalho é executado a cada 15 minutos, mas o intervalo é personalizável.

Quando o envio de logs está habilitado, a categoria de trabalho "Backup de Envio de Logs" do SQL Server Agent é criada na instância do servidor primário.

O SQL Server 2008 Enterprise e versões posteriores e oferecem 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. Para obter mais informações, consulte Compactação de backup (SQL Server).

Trabalho de cópia

Um trabalho de cópia é criado em cada instância do servidor secundário em uma configuração de envio de log. Esse trabalho 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. A agenda de trabalho de cópia, que pode ser personalizada, deve ser semelhante à agenda de backup.

Quando o envio de logs for habilitado, a categoria de trabalho “Cópia de Envio de Log" do SQL Server será criada na instância do servidor secundário.

Trabalho de restauração

Um trabalho de restauração é criado na instância do servidor secundário para cada configuração de envio de log. Esse trabalho 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 for habilitado, a categoria de trabalho “Restauração de Envio de Log" do SQL Server será criada na instância do servidor secundário.

Em uma determinada instância do servidor secundário, o trabalho de restauração pode ser agendado com a mesma frequência do trabalho de cópia ou pode ser atrasado. O agendamento de ambos com a mesma frequência mantém o alinhamento máximo possível entre o banco de dados secundário e o primário para criar um banco de dados de espera passiva.

Por outro lado, o atraso dos trabalhos de restauração, talvez em várias horas, pode ser útil no caso de um erro grave do usuário, como uma tabela descartada ou uma linha de tabela excluída indevidamente. Se você souber a hora em que o erro ocorreu, poderá mover o banco de dados secundário até o momento imediatamente anterior ao erro. Em seguida, você pode exportar os dados perdidos e importá-los no banco de dados primário.

Trabalho de alerta

Se houver um servidor monitor em uso, será criado um trabalho de alerta na instância do servidor monitor. Esse trabalho de alerta é compartilhado pelos bancos de dados primário e secundário de todas as configurações de envio de logs usando essa instância do servidor monitor. Qualquer alteração no trabalho de alerta (como reagendamento, desabilitação ou habilitação do trabalho) afetará todos os bancos de dados que usam o servidor monitor. Esse trabalho emitirá alertas (para os quais você deve especificar números de alerta) para os banco de dados primário e secundário quando operações de backup e restauração não forem concluídas com êxito dentro dos limites especificados. Configure esses alertas para que um operador receba as notificações de falha do envio de log. Quando o envio de logs for habilitado, a categoria de trabalho “Alerta de Envio de Log" do SQL Server será criada na instância do servidor monitor.

Se não houver um servidor monitor em uso, os trabalhos de alerta serão criados localmente na instância do servidor primário e em cada instância de servidor secundário. O trabalho de alerta da instância do servidor primário gerará erros se as operações de backup não forem concluídas com êxito dentro do limite especificado. O trabalho de alerta na instância do servidor secundário gerará erros se as operações de cópia e restauração locais não forem concluídas com êxito dentro do limite especificado.

Um configuração comum do envio de logs

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.

Configuração mostrando trabalhos de backup, cópia & restauração

Para habilitar o envio de logs