Inicial > Não categorizado > Transaction Log for tempdb is full…

Transaction Log for tempdb is full…

Essa não foi tão difícil mas pode ser que nem todos sigam a mesma linha de raciocínio que eu, então segue ai o que fiz pra resolver o problema.

Cheguei hoje cedo e um de nossos clientes havia me enviado um e-mail na sexta dizendo que não estavam conseguindo rodar um processo de exportação de dados no servidor de homologação. Segue a mensagem de erro do aplicativo responsável pela carga…

clip_image002

Se você procurar bem, verá que existe uma mensagem bem clara do problema…

Bom, vendo isso, fui dar uma olhada no espaço ocupado pelo Tempdb…

Rodei um sp_helpdb tempdb e obtive o seguinte retorno:

name

fileid

filename

filegroup

size

maxsize

growth

usage

tempdev

1

E:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\tempdb.mdf

PRIMARY

10439680 KB

Unlimited

10%

data only

templog

2

E:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\templog.ldf

NULL

149696 KB

Unlimited

10%

log only

10gb de espaço pro tempdb dependendo do cenário até que é normal… mas e o espaço no disco E: como está?

Rodei a xp_fixeddrives para ver o espaço livre…

drive

MB free

C

2229

E

126

F

13577

Umm, 126 mb livre…

Temos varias formas de resolver o problema.

1. Reiniciar o servidor pro SQL recriar o tempdb

2. Rodar um shrink no TempDB

3. Criar mais um arquivo de Log e de Dados para o TempDB no disco F que tem mais espaço livre.

Como é um servidor de homologação e não sou eu que administro, optei por apenas fazer o shrink no tempdb. Mesmo sabendo que possivelmente este problema volte a ocorrer, por enquanto pra mim só isso resolve…

Se fosse meu servidor, com certeza a disposição dos arquivos de dados estariam bem diferentes…

Falow…

Categorias:Não categorizado
  1. Edilson
    6 de julho de 2009 às 18:02

    Ae Fabiano blz?Acompanho sempre seu blog aqui nos rss, e seu material é espetacular pra quem tá começando (eu por exemplo) pra pegar umas dicas do cotidiano.. ParabensJá acompanhei uma materia que menciona que as temp\’s devem ser alocadas em hd\’s diferentes, fazer uma relação com o número de arquivos físicos da tempdb e processadores fisicos disponiveis, raid e afins. Seria nessa linha uma configuração adequada ou varia de cenário para cenário? Vc deixou uma pergunta no ar que a disponibilidade dos arquivos seriam de formas distintas no seu ver.. Quais seriam elas? Grato !

  2. Fabiano Neves
    13 de julho de 2009 às 8:58

    Opa desculpa a demora pra responder, mas vamos lá…Bom, eu faria isso mesmo que você já mencionou, iria criar mais arquivos físicos para cada Core da CPU e tentar separar em vários discos… tabém gosto de habilitar o traceflag 1118 para evitar uma contenção nas páginas SGAMs.http://blogs.msdn.com/luti/archive/2006/08/10/694638.aspxAbraço, espero que meu blog esteja te ajudando…

  3. Fabiano Neves
    13 de julho de 2009 às 9:01

    Só mais um comentário… o TraceFlag se faz bastante útil quando você encontra comandos de criação de tabelas temporárias sem dados, por ex: select … into #TMP from tabela where 1=0 ou mesmo select top 0 … into #TMP from tabela

  4. Gustavo
    13 de julho de 2009 às 21:20

    Olá Fabiano,Pois é. Eu sofro um bocado com o Tempdb em alguns ambientes. No 2005 para ver quem é que está lotando o Tempdb temos a sys.dm_db_session_space_usage, mas no 2000… Aí complicou. Abs,

  1. 24 de setembro de 2012 às 17:33

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

%d blogueiros gostam disto: