Gerenciando transações demoradas
Uma causa provável do preenchimento do log é uma transação demorada. Uma transação demorada mantém o log de transações ativo no arquivo de log virtual que contém o primeiro registro de log da transação. O truncamento não pode ocorrer do arquivo de log virtual em diante.
Importante |
---|
Uma transação muito demorada faz com que o log de transações seja preenchido. Para obter informações sobre como responder um log de transações completo, consulte Solucionando problemas em um log de transação completa (Erro 9002). |
Descobrindo transações demoradas
Para procurar transações demoradas, use um dos seguintes:
sys.dm_tran_database_transactions
Essa exibição de gerenciamento dinâmico retorna informações sobre as transações no banco de dados. Para uma transação demorada, as colunas de interesse específico incluem a hora do primeiro registro de log (database_transaction_begin_time); o estado atual da transação (database_transaction_state) e o LSN (Número de Seqüência de Log) do registro de início do log da transações (database_transaction_begin_lsn).
Para obter mais informações, consulte sys.dm_tran_database_transactions (Transact-SQL).
DBCC OPENTRAN
Essa instrução permite identificar a ID do proprietário da transação, de modo que seja possível localizar potencialmente a origem da transação para um término mais ordenado (confirmar, em vez de revertê-la). Para obter mais informações, consulte DBCC OPENTRAN (Transact-SQL).
Observação |
---|
Para obter informações sobre outros fatores que podem atrasar o truncamento de log, consulte Fatores que podem atrasar o truncamento de log. |
Parando uma transação
Talvez seja necessário usar a instrução KILL. Use essa instrução com muito cuidado, porém, especialmente quando houver processos importantes em processamento. Para obter mais informações, consulte KILL (Transact-SQL).