Introdução a logs de transações
Todo banco de dados do SQL Server 2005 tem um log de transações que registra todas as transações e modificações feitas no banco de dados a cada transação. O log de transações é um componente crítico do banco de dados e, se houver uma falha do sistema, será necessário que o log de transações retorne seu banco de dados a um estado consistente. O log de transações nunca deve ser excluído ou movido a menos que você compreenda plenamente as conseqüências disso.
Operações com suporte pelo log de transações
O log de transações dá suporte às seguintes operações:
Recuperação de transações individuais.
Recuperação de todas as transações incompletas quando SQL Server é iniciado.
Rolando um banco de dados restaurado, arquivo, grupo de arquivo ou página até ao ponto de falha.
Dando suporte à replicação transacional.
Dando suporte a soluções do servidor em espera.
Recuperação de transações individuais
Se um aplicativo emitir uma instrução ROLLBACK, ou se o Mecanismo de Banco de Dados detectar um erro como a perda de comunicação com um cliente, o registro de log será usado para reverter as modificações feitas por uma transação incompleta.
Recuperação de todas as transações incompletas durante a inicialização do SQL Server.
Se um servidor que está executando o SQL Server falhar, os bancos de dados poderão ser deixados em um estado onde algumas modificações nunca foram gravadas a partir do cache de buffer para os arquivos de dados, e poderá haver algumas modificações de transações incompletas nos arquivos de dados. Quando uma instância do SQL Server é iniciada, ele executa uma recuperação de cada banco de dados. Toda modificação registrada no log que não foi gravada nos arquivos de dados é efetuado roll forward. Toda transação incompleta encontrada no log de transações é revertida para assegurar que a integridade do banco de dados seja preservada.
Rolando um banco de dados restaurado, arquivo, grupo de arquivos ou página até ao ponto de falha.
Depois de uma perda de hardware ou falha de disco que afeta os arquivos de banco de dados, você pode restaurar o banco de dados ao ponto de falha. Você primeiro restaura o último backup de banco de dados e o último backup de banco de dados diferencial e, depois, restaura a seqüência subseqüente dos backups de log de transações ao ponto de falha. Ao restaurar cada backup de log, o Mecanismo de Banco de Dados reaplica todas as modificações registradas no log para efetuar roll forward todas as transações. Quando o último backup de log é restaurado, o Mecanismo de Banco de Dados usa as informações de log para reverter todas as transações que não estavam completas naquele ponto.
Dando suporte à Replicação transacional.
O Log Reader Agent monitora o log de transações de cada banco de dados configurado para replicação transacional e copia as transações marcadas para replicação do log de transações no banco de dados de distribuição. Para obter mais informações, consulte Como a replicação transacional funciona.
Dando suporte a soluções do servidor em espera.
As soluções do servidor em espera, espelhamento de banco de dados e envio de logs dependem muito do log de transações. Em um cenário de envio de logs, o servidor primário envia o log de transações ativo do banco de dados primário a um ou mais destinos. Cada servidor secundário restaura o log a seu banco de dados secundário local. Para obter mais informações, consulte Visão geral do envio de log.
Em um cenário de espelhamento de banco de dados, em cada atualização de um banco de dados – o banco de dados principal – é imediatamente reproduzido em uma cópia separada, cópia do banco de dados completo, o banco de dados espelho. A instância do servidor principal envia imediatamente cada registro de log para a instância do servidor espelho, a qual aplica os registros de log de entrada ao banco de dados espelho, rolando adiante continuamente. Para obter mais informações, consulte Visão geral do espelhamento de banco de dados.
Características de log de transações
A seguir estão as características do log de transações Mecanismo de Banco de Dados do SQL Server:
O log de transações é implementado como um arquivo separado ou conjunto de arquivos no banco de dados. O cache de log é gerenciado separadamente do cache de buffer para páginas de dados que resulta em código simples, rápido e forte dentro do Mecanismo de Banco de Dados.
O formato de registros de log e páginas não está restrito ao formato de páginas de dados.
O log de transações pode ser implementado em vários arquivos. Os arquivos podem ser definidos para expandir automaticamente definindo-se o valor FILEGROWTH como log. Isso reduz a possibilidade de realizar a execução fora de espaço no log de transações, e ao mesmo tempo reduz a sobrecarga administrativa. Para obter mais informações, consulte ALTER DATABASE (Transact-SQL).
O mecanismo para reutilizar o espaço dentro dos arquivos de log é rápido e tem efeito mínimo em taxa de transferência de transações.
Consulte também