Erro: Ao tentar utilizar uma aplicação com a base de dados em SQL Server 2005, o usuário encontrava o seguinte erro: “The transaction log for database ‘MyBase’ is full. To find out why space in the log cannot be reused, see the log_reuse_wait_desc column in sys.databases ”
Código do erro: 9002
Severity: 17
State: 2
No SQL Server 7.0, no SQL Server 2000 e no SQL Server 2005, marcando a configuração de crescimento automático, arquivos de log podem crescer automaticamente. Apesar do tamanho do LOG estabilizar depois de um período inicial de crescimento, em algumas situações o log pode se tornar muito grande atingindo o espaço em disco disponível. O log pode crescer inesperadamente devido a diversas questões, entre elas:
Transações não comitadas
Transações estremante grandes
Operações como DBCC REINDEX ou CREATE INDEX
Restore a partir de logs de transação
Transações estremante grandes
Operações como DBCC REINDEX ou CREATE INDEX
Restore a partir de logs de transação
Normalmente, você receberá a seguinte mensagem de erro quando o transaction log atingir o espaço em disco disponível e não é possível expandir mais:
The log file for database '%.*ls' is full.
Se você estiver usando o SQL Server 2005 ou 2008, a mensagem é a mesma que mostrada no início do post.
Solução: Como esta base era utilizada apenas para homologação, resolvi rapidamente truncando o log com o comando BACKUP LOG ‘MyBase’ WITH TRUNCATE_ONLY
Apesar desta solução resolver o problema, é necessário entender que truncar o log, quebra o LOG CHAIN, portanto uma vez que isto é feito, não é mais possível efetuar backup dos logs até que se faça um full ou diif backup da base. Case um backup do log seja tentado, a seguinte mensagem poderá ocorrer:
Msg 4214, Level 16, State 1, Line 1
BACKUP LOG cannot be performed because there is no current database backup.
Msg 3013, Level 16, State 1, Line 1
BACKUP LOG is terminating abnormally.
Abraço a todos ...
Nenhum comentário:
Postar um comentário