Usuário com melhor resposta
como diminuir o arquivo de LOG de transações no SQL Server 2005 ? após executar o Shrink o log volta a aumentar

Pergunta
-
Prezados bom dia.
Possuo um banco onde o arquivo de dados está com 13 GB e o arquivo de LOG já atingiu 400 GB. Está configurado o Recovery Model = FULL e backu up FULL diariamente. Agora, mesmo que eu utilize o SHRINK, o arquivo de LOG não diminui. ALguêm pode me ajudar ?
Respostas
-
Nossa Luiz F. Nogueira,
De certa forma é um prazer te explicar isso, mas preocupante, mas isso é normal, muitas pessoas apresentam dúvida sobre isso, acontece o seguinte:
Temos 3 tipos de Recovery Model(Modo de recuperação), no banco de dados que você consegue mudar nas opções do banco de dados, esses 3 modos são:
FULL, BULK-LOGGED e SIMPLE.
FULL e BULK-LOGGED = Eles apresentam algumas diferenças, mais não vou aprofundar sobre isso agora, o que aconteçe é que quando possuímos o banco de dados em modo de recuperação FULL, todas as transações que são realizadas no banco de dados são gravadas no arquivo de LOG do banco de dados, o que faz com que o LOG começe a ficar cheio. Nesses modos de recuperação o que faz o LOG diminuir é somente um BACKUP DE LOG da base de dados, o que é diferente de realizar um backup de DADOS. Provavelmente o que está acontecendo é que toda a estrutura interna do arquivo de LOG esteja preenchida.
SIMPLE = Essem é diferente, sempre que a transação é realizada, ele automaticamente realizada o TRUNCATE do LOG, por isso não existe backup de log quando temos o modo de recuperação no SIMPLE.
Para resolver seu problema faça o seguinte:
BACKUP DE LOG do Banco de Dados.
Sintaxe: BACKUP LOG [NomeBancoDeDados]
TO DISK = '[LOCAL]\[NOMEBACKUP].TRN'
Shrink File Arquivo de LOG
Sintaxe: DBCC SHRINKFILE (<FileName>, <TargetSize>)
<FileName> = Nome do Arquivo de LOG
<TargetSize> = KB
Att,
Luan.Moreno MCP || MCTS SQL Server 2005 Blog: http://luanmorenodba.wordpress.com Twitter: @luansql Classifique as respostas. O seu feedback é imprescindível- Editado Luan.Moreno A.k.a SQL.SoulMVP quarta-feira, 19 de janeiro de 2011 13:49 Alteração Dados
- Sugerido como Resposta Luan.Moreno A.k.a SQL.SoulMVP quarta-feira, 19 de janeiro de 2011 17:25
- Marcado como Resposta Luiz F Nogueira quarta-feira, 19 de janeiro de 2011 17:43
Todas as Respostas
-
Luiz,
Existem alguns tópicos que podem te ajudar:
[]'s
-
Luiz F Nogueira, bom dia!
Primeiramente, com que frequência, você realiza o backup de LOG. Provavelmente seu arquivo de LOG esteja cheio principalmente por duas razões.
1. - Não está sendo realizado BACKUP DE LOG, então o arquivo de log não é "esvaziado". Assim faça backup de LOG
2. - Possuem transações abertas na qual ainda não foram fechadas, isso faz com que os VLF's (Virtual Log Files), fiquem ocupados, fazendo com que o LOG tenha que crescer.
Att,
Luan.Moreno MCP || MCTS SQL Server 2005 Blog: http://luanmorenodba.wordpress.com Twitter: @luansql Classifique as respostas. O seu feedback é imprescindível -
Luan , nunca foi realizado Backup de LOG. Somente é realizado 1 backup FULL por dia.
Uma dúvida que surgiu agora: O backup FULL não realiza o backup do LOG ? somente realizando o backup FULL o LOG não deveria diminuir ?
Obrigado pela atenção até aqui.
Luiz Fernando Nogueira -
Nossa Luiz F. Nogueira,
De certa forma é um prazer te explicar isso, mas preocupante, mas isso é normal, muitas pessoas apresentam dúvida sobre isso, acontece o seguinte:
Temos 3 tipos de Recovery Model(Modo de recuperação), no banco de dados que você consegue mudar nas opções do banco de dados, esses 3 modos são:
FULL, BULK-LOGGED e SIMPLE.
FULL e BULK-LOGGED = Eles apresentam algumas diferenças, mais não vou aprofundar sobre isso agora, o que aconteçe é que quando possuímos o banco de dados em modo de recuperação FULL, todas as transações que são realizadas no banco de dados são gravadas no arquivo de LOG do banco de dados, o que faz com que o LOG começe a ficar cheio. Nesses modos de recuperação o que faz o LOG diminuir é somente um BACKUP DE LOG da base de dados, o que é diferente de realizar um backup de DADOS. Provavelmente o que está acontecendo é que toda a estrutura interna do arquivo de LOG esteja preenchida.
SIMPLE = Essem é diferente, sempre que a transação é realizada, ele automaticamente realizada o TRUNCATE do LOG, por isso não existe backup de log quando temos o modo de recuperação no SIMPLE.
Para resolver seu problema faça o seguinte:
BACKUP DE LOG do Banco de Dados.
Sintaxe: BACKUP LOG [NomeBancoDeDados]
TO DISK = '[LOCAL]\[NOMEBACKUP].TRN'
Shrink File Arquivo de LOG
Sintaxe: DBCC SHRINKFILE (<FileName>, <TargetSize>)
<FileName> = Nome do Arquivo de LOG
<TargetSize> = KB
Att,
Luan.Moreno MCP || MCTS SQL Server 2005 Blog: http://luanmorenodba.wordpress.com Twitter: @luansql Classifique as respostas. O seu feedback é imprescindível- Editado Luan.Moreno A.k.a SQL.SoulMVP quarta-feira, 19 de janeiro de 2011 13:49 Alteração Dados
- Sugerido como Resposta Luan.Moreno A.k.a SQL.SoulMVP quarta-feira, 19 de janeiro de 2011 17:25
- Marcado como Resposta Luiz F Nogueira quarta-feira, 19 de janeiro de 2011 17:43