Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este tópico discute possíveis respostas a um log de transações completo e sugere como evitá-lo no futuro. Quando o log de transações fica cheio, o mecanismo de banco de dados do SQL Server emite um erro 9002. O log pode ser preenchido quando o banco de dados está online ou em recuperação. Se o log ficar cheio enquanto o banco de dados estiver online, o banco de dados permanecerá online, mas só poderá ser lido, não atualizado. Se o log for preenchido durante a recuperação, o Mecanismo de Banco de Dados marcará o banco de dados como RECURSO PENDENTE. Em qualquer caso, é necessária a ação do usuário para liberar espaço no log.
Respondendo a um log de transações completo
A resposta apropriada a um log de transações completo depende em parte de qual condição ou condições causou o preenchimento do log. Para descobrir o que está impedindo o truncamento do log em um determinado caso, use as colunas log_reuse_wait e log_reuse_wait_desc da visão de catálogo sys.database. Para obter mais informações, confira sys.databases (Transact-SQL). Para obter descrições de fatores que podem atrasar o truncamento de log, consulte O Log de Transações (SQL Server).
Importante
Se o banco de dados estava em recuperação quando ocorreu o erro 9002, depois de resolver o problema, recupere o banco de dados usando ALTER DATABASE database_name SET ONLINE.
As alternativas para responder a um log de transações completo incluem:
Fazendo backup do log.
Liberando espaço em disco para que o log possa crescer automaticamente.
Movendo o arquivo de log para uma unidade de disco com espaço suficiente.
Aumentando o tamanho de um arquivo de log.
Adicionando um arquivo de log em um disco diferente.
Concluindo ou encerrando uma transação de longa duração.
Essas alternativas são discutidas nas seções a seguir. Escolha uma resposta que se ajuste melhor à sua situação.
Realizando backup do log
No modelo de recuperação completa ou no modelo de recuperação bulk-logged, se o log de transações não tiver sido feito backup recentemente, o backup pode ser o fator que está impedindo o truncamento do log. Se nunca foi feito backup do log, é necessário criar dois backups de log para permitir que o Mecanismo de Banco de Dados trunque o log no ponto do último backup. Truncar o log libera espaço para novos registros de log. Para impedir que o log fique completo novamente, faça backups de log frequentes.
Para criar um backup de log de transações
Importante
Se o banco de dados estiver danificado, consulte Tail-Log Backups (SQL Server).
Liberando espaço em disco
Pode ser possível liberar espaço de disco na unidade de disco que contém o arquivo de log de transações do banco de dados excluindo ou movendo outros arquivos. O espaço de disco liberado permite que o sistema de recuperação aumente o arquivo de log automaticamente.
Movendo o arquivo de log para um disco diferente
Se você não puder liberar espaço suficiente em disco na unidade que atualmente contém o arquivo de log, considere mover o arquivo para outra unidade com espaço suficiente.
Importante
Arquivos de log nunca devem ser colocados em sistemas de arquivos compactados.
Para mover um arquivo de log
Aumentando o tamanho de um arquivo de log
Se houver espaço disponível no disco de log, você pode aumentar o tamanho do arquivo de log. O tamanho máximo para arquivos de log é de dois terabytes (TB) por arquivo de log.
Para aumentar o tamanho do arquivo
Se o crescimento automático estiver desabilitado, o banco de dados estará online e o espaço suficiente estará disponível no disco:
Aumentar manualmente o tamanho do arquivo para produzir um único incremento de crescimento.
Ative o crescimento automático usando a instrução ALTER DATABASE para definir um incremento de crescimento diferente de zero para a opção FILEGROWTH.
Observação
Em ambos os casos, se o limite de tamanho atual tiver sido atingido, aumente o valor MAXSIZE.
Adicionando um arquivo de log em um disco diferente
Adicione um novo arquivo de log ao banco de dados em um disco diferente que tenha espaço suficiente usando ALTER DATABASE <database_name> ADD LOG FILE.
Para adicionar um arquivo de log
Consulte Também
ALTERAR BASE DE DADOS (Transact-SQL)
Gerenciar o tamanho do arquivo de log de transações
Backups de log de transações (SQL Server)
sp_add_log_file_recover_suspect_db (Transact-SQL)