Share via


Gerenciar o tamanho do arquivo de log de transações

Em alguns casos, pode ser útil reduzir ou expandir fisicamente o arquivo de log físico do log de transações de um banco de dados do SQL Server. Este tópico contém informações sobre como monitorar o tamanho de um log de transações do SQL Server, reduzir o log de transações, adicionar ou aumentar 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.

Neste tópico:

  • Monitorar o uso do espaço de log

  • Reduzir o tamanho do arquivo de log

  • Adicionar ou aumentar um arquivo de log

  • Otimizando o tamanho do log de transações de tempdb

  • 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, consulte sys.database_files (Transact-SQL).

Observação importanteImportante

Recomendamos que seja evitada a sobrecarga do disco de log.

[Início]

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çãoObservaçã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 outros fatores que podem atrasar o truncamento do 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

ObservaçãoObservaçã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 propriedade autoshrink, consulte Exibir ou alterar as propriedades de um banco de dados – use a propriedade Reduzir Automaticamente da página Opções – ou Opções ALTER DATABASE SET (Transact-SQL) – use a opção AUTO_SHRINK.

[Início]

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, consulte ALTER DATABASE (Transact-SQL).

[Início]

Otimizar o tamanho do log de transações de tempdb

A reinicialização de uma instância de servidor redimensiona o log de transações do banco de dados tempdb a seu tamanho original, antes do crescimento automático prévio. 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, consulte Banco de dados tempdb.

[Início]

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.

[Início]

Consulte também

Referência

BACKUP (Transact-SQL)

Conceitos

Solução de problemas em um log de transação completa (SQL Server Erro 9002)