Gerenciar o tamanho do arquivo de log de transações
Em alguns casos, pode ser útil reduzir fisicamente ou expandir o arquivo de log físico do log de transações de um banco de dados SQL Server. Este tópico contém informações sobre como monitorar o tamanho de um log de transações SQL Server, reduzir o log de transações, adicionar ou ampliar um arquivo de log de transações, otimizar a taxa de crescimento do log de transações tempdb e controlar o crescimento de um arquivo de log de transações.
Monitorar o uso do espaço de log
Você pode monitorar o uso do espaço de log usando DBCC SQLPERF (LOGSPACE). Esse comando retorna informações sobre a quantidade de espaço de log usada atualmente e indica quando o log de transações precisa ser truncado. Para obter mais informações, consulte DBCC SQLPERF (Transact-SQL). Para obter informações sobre o tamanho atual de um arquivo de log, seu tamanho máximo e a opção de crescimento automático para o arquivo, você também pode usar as colunas size, max_size e growth para esse arquivo de log em sys.database_files. Para obter mais informações, confira sys.database_files (Transact-SQL).
Importante
Recomendamos que seja evitada a sobrecarga do disco de log.
Reduzir o tamanho do arquivo de log
Para reduzir o tamanho físico de um arquivo de log físico, você deve reduzir o arquivo de log. Isso será útil se você souber que um arquivo de log de transações contém espaço não utilizado que você não precisará. A redução de um arquivo de log poderá ocorrer apenas enquanto o banco de dados estiver online e, pelo menos, enquanto um arquivo de log virtual estiver livre. Em alguns casos, talvez não seja possível reduzir o log antes do próximo truncamento de log.
Observação
Fatores como uma transação demorada que mantêm arquivos de log virtuais ativos por um período extenso podem restringir a redução de log ou até mesmo impedir que o log seja reduzido. Para obter informações sobre fatores que podem atrasar o truncamento de log, consulte O Log de Transações (SQL Server).
A redução de um arquivo de log remove um mais arquivos de log virtuais que não retêm nenhuma parte do log lógico (ou seja, arquivos de log virtuais inativos). Quando um arquivo de log de transações é reduzido, um número suficiente de arquivos de log virtuais inativos é removido do final do arquivo de log para reduzir o log aproximadamente ao tamanho do destino.
Para reduzir um arquivo de log (sem reduzir os arquivos do banco de dados)
Para monitorar eventos de redução de arquivo de log
To monitor log space
sys.database_files (Transact-SQL) (Confira as colunas size, max_size e growth do arquivo ou arquivos de log.)
Observação
A redução de arquivos de log e do banco de dados pode ser configurada para ocorrer automaticamente. Contudo, não é recomendável a redução automática, e a propriedade de banco de dados autoshrink
é definida como FALSE por padrão. Se autoshrink
for configurada como TRUE, a redução automática reduzirá o tamanho de um arquivo apenas quando mais de 25 por cento de seu espaço estiver inutilizado. O arquivo é reduzido de forma que 25% de seu tamanho seja de espaço não utilizado ou ele tenha o tamanho original, o que for maior. Para obter informações sobre como alterar a configuração da autoshrink
propriedade, consulte Exibir ou alterar as propriedades de um banco de dados, use a propriedade Auto Shrink na página Opções ou ALTER DATABASE SET Options (Transact-SQL)-use a opção AUTO_SHRINK.
Adicionar ou aumentar um arquivo de log
Se desejar, você também pode obter mais espaço aumentando o arquivo de log existente (se houver espaço no disco) ou adicionando um arquivo de log ao banco de dados, geralmente em um disco diferente.
Para adicionar um arquivo de log ao banco de dados, use a cláusula ADD LOG FILE da instrução ALTER DATABASE. Adicionar um arquivo de log permite o crescimento do log.
Para aumentar o arquivo de log, use a cláusula MODIFY FILE da instrução ALTER DATABASE, especificando a sintaxe SIZE e MAXSIZE. Para obter mais informações, veja ALTER DATABASE (Transact-SQL).
Otimizar o tamanho do log de transações de tempdb
Reinicializar uma instância de servidor redimensiona o log de transações do banco de dados tempdb ao seu tamanho original, antes do crescimento automático. Isso pode reduzir o desempenho do log de transações do tempdb . Você pode evitar essa sobrecarga aumentando o tamanho do log de transações do tempdb depois de iniciar ou reinicializar a instância de servidor. Para obter mais informações, confira tempdb Database.
Controlar o crescimento de um arquivo de log de transações
Você pode usar a instrução ALTER DATABASE (Transact-SQL) para gerenciar o crescimento de um arquivo de log de transações. Observe o seguinte:
Para alterar o tamanho do arquivo atual em unidades KB, MB, GB e TB, use a opção SIZE.
Para alterar o incremento de crescimento, use a opção FILEGROWTH. Um valor 0 indica que o crescimento automático está definido como off e nenhum espaço adicional é permitido. Um pequeno crescimento automático em um arquivo de log também pode prejudicar o desempenho. O incremento de crescimento do arquivo em um arquivo de log deve ser suficientemente grande para evitar a expansão frequente. O incremento de crescimento padrão de 10 por cento, em geral, é satisfatório.
Para obter informações sobre como alterar a propriedade de crescimento de arquivo em um arquivo de log, consulte ALTER DATABASE (Transact-SQL).
Para controlar ao máximo o tamanho de um arquivo de log em unidades KB, MB, GB e TB, ou para definir o crescimento como UNLIMITED, use a opção MAXSIZE.
Consulte Também
BACKUP (Transact-SQL)
Solução de problemas em um log de transação completa (SQL Server Erro 9002)