Entrar com a conta da Microsoft
Entre ou crie uma conta.
Olá,
Selecione uma conta diferente.
Você tem várias contas
Escolha a conta com a qual você deseja entrar.

Sumário

No Microsoft SQL Server 2005, você pode reduzir um arquivo de log de transação em um banco de dados para remover páginas não utilizadas. O mecanismo de banco de dados reutiliza o espaço com eficiência. No entanto, quando um arquivo de log de transação cresce inesperadamente, talvez você precise reduzir o arquivo de log de transação manualmente.

Este artigo descreve como usar a instrução DBCC SHRINKFILE para reduzir o arquivo de log de transação manualmente sob o modelo de recuperação total em um banco de dados do SQL Server 2005. O método que você usar para reduzir o arquivo de log de transação no SQL Server 2005 pode ser diferente do método que você usar para reduzir o arquivo de log de transação no SQL Server 2000. Para obter mais informações sobre como reduzir o arquivo de log de transação no SQL Server 2000, clique no número abaixo para ler o artigo na Base de Conhecimento da Microsoft:

272318 reduzindo o log de transação no SQL Server 2000 com DBCC SHRINKFILE

Mais informações

No SQL Server 2005, uma operação de redução (DBCC SHRINKFILE) tenta reduzir imediatamente o arquivo de log de transação especificada para o tamanho solicitado. Para reduzir o arquivo de log de transação manualmente sob o modelo de recuperação total, primeiro faça backup do arquivo de log de transações. Em seguida, use a instrução DBCC SHRINKFILE para reduzir o arquivo de log de transação.

Normalmente, diminuindo o arquivo de log de transação no SQL Server 2005 é mais rápido do que reduzir o arquivo de log de transação no SQL Server 2000. O motivo é que o Gerenciador de logs do SQL Server 2005 cria ou reutiliza os arquivos de log virtuais inativos seguindo a ordem de armazenamento de disco físico. Portanto, a parte inativa do arquivo de log de transação é normalmente no final do arquivo.

Por exemplo, o arquivo de log de transações pode ter 100 arquivos de log virtuais e 2 somente arquivos de log virtuais são usados. SQL Server 2000 podem armazenar o primeiro virtual log arquivo usado no início do arquivo de log de transação e o segundo usado o arquivo de log virtual no meio do arquivo de log de transações. Para reduzir o arquivo de log de transação para apenas 2 arquivos de log virtuais, SQL Server preenche a parte restante do segundo arquivo de log virtual por meio de entradas de log fictício. SQL Server move o início do log lógico para o próximo disponível virtual arquivo de log especificado pelo Gerenciador de log. O Gerenciador de logs pode criar um arquivo de log virtual no meio do arquivo de log de transações antes do último arquivo de log virtual ativa. Nesse caso, você precisa usar várias operações de backup de log e várias operações de redução para diminuir com êxito o arquivo de log de transação 2 arquivos de log virtuais. No pior caso deste exemplo, talvez você precise usar 50 operações de backup de log e 50 encolher operações para reduzir com êxito o arquivo de log de transação para 2 arquivos de log virtuais.

No entanto, no SQL Server 2005, você pode executar uma instrução DBCC SHRINKFILE para reduzir o arquivo de log de transação imediatamente para 2 arquivos de log virtuais. Você pode fazer isso porque o Gerenciador de logs do SQL Server 2005 cria 2 arquivos de log virtuais seguindo a ordem de armazenamento de disco físico. Ambos os arquivos de log virtuais estão no início do arquivo de log de transação.

Quando você tenta reduzir um arquivo de log de transação que tenha pouco espaço livre no SQL Server 2005, você terá que executar uma operação de backup de log adicionais. A operação de backup de log adicional trunca o arquivo de log de transação para um tamanho menor. Esta operação de backup do log é além das três etapas que podem ser executadas para reduzir o arquivo de log de transação no SQL Server 2000. Para obter mais informações, consulte o artigo do Microsoft Knowledge Base mencionado na seção "Resumo". Para reduzir um arquivo de log de transação que tenha pouco espaço livre no SQL Server 2005, siga estas etapas:

  1. Faça backup do arquivo de log de transações para tornar a maioria dos arquivos de log virtuais ativo inativo. Portanto, os arquivos de log virtuais inativos podem ser removidos em uma etapa posterior. Para fazer isso, inicie o SQL Server Management Studio e, em seguida, executar uma instrução Transact-SQL que se parece com a seguinte instrução Transact-SQL.

    BACKUP LOG <DatabaseName> TO DISK = '<BackupFile>'

    Observação: Nesta declaração, < nomedobancodedados > é um espaço reservado para o nome do banco de dados que você está fazendo backup e < BackupFile > é um espaço reservado para o caminho completo do arquivo de backup.

    Por exemplo, execute a seguinte instrução Transact-SQL.

    BACKUP LOG TestDB TO DISK='C:\TestDB1.bak'
  2. Reduza o arquivo de log de transação. Para fazer isso, execute uma instrução Transact-SQL que se parece com a seguinte instrução Transact-SQL.

    DBCC SHRINKFILE (<FileName>, <TargetSize>) WITH NO_INFOMSGS

    Observação: Nesta declaração, < nomedoarquivo > é um espaço reservado para o nome do arquivo de log de transação e < TargetSize > é um espaço reservado para o tamanho de destino que você deseja que o arquivo de log de transação para ser. O tamanho de destino deve ser razoável. Por exemplo, o arquivo de log de transação não podem ser reduzidos para um tamanho menor do que 2 arquivos de log virtuais.

  3. Se a instrução DBCC SHRINKFILE não reduzir o arquivo de log de transação para o tamanho de destino, execute a instrução BACKUP LOG mencionado na etapa 1 para tornar mais os arquivos de log virtuais inativos.

  4. Execute a instrução DBCC SHRINKFILE mencionada na etapa 2. Após essa operação, o arquivo de log de transações deve ser quase o tamanho de destino.

Em resumo, o algoritmo do Gerenciador de log para obter o próximo arquivo de log virtual alterado no SQL Server 2005. Portanto, reduzir o arquivo de log de transação no SQL Server 2005 pode diferir reduzindo o arquivo de log de transação no SQL Server 2000.

  • Se um arquivo de log tem muito espaço livre, diminuindo o arquivo de log de transação no SQL Server 2005 é mais rápido do que reduzir o arquivo de log de transação no SQL Server 2000.

  • Se um arquivo de log não tem nenhum espaço livre, diminuindo o arquivo de log de transação no SQL Server 2005 é a mesma como reduzir o arquivo de log de transação no SQL Server 2000.

  • Se um arquivo de log tiver pouco espaço livre, você terá que executar uma operação de backup de log adicionais no SQL Server 2005 que você precise executar no SQL Server 2000.

Referências

Para obter mais informações sobre como reduzir o log de transações, vá para o site do Microsoft Developer Network (MSDN) reduzindo o Log de transações .


Para obter mais informações sobre a instrução DBCC SHRINKFILE, vá para o site do MSDN de DBCC SHRINKFILE (Transact-SQL) .


Para obter mais informações sobre truncamento de log de transação, vá para o site do MSDN de Truncamento do Log de transação .

Precisa de mais ajuda?

Expanda suas habilidades
Explore o treinamento
Obtenha novos recursos primeiro
Ingressar no Microsoft Insider

Essas informações foram úteis?

Qual é o seu grau de satisfação com a qualidade do idioma?
O que afetou sua experiência?

Obrigado pelos seus comentários!

×