Fabiano Neves's profileFabiano Neves Amorim - S...PhotosBlogListsMore Tools Help

Blog


    July 06

    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...

    Comments (4)

    Please wait...
    Sorry, the comment you entered is too long. Please shorten it.
    You didn't enter anything. Please try again.
    Sorry, we can't add your comment right now. Please try again later.
    To add a comment, you need permission from your parent. Ask for permission
    Your parent has turned off comments.
    Sorry, we can't delete your comment right now. Please try again later.
    You've exceeded the maximum number of comments that can be left in one day. Please try again in 24 hours.
    Your account has had the ability to leave comments disabled because our systems indicate that you may be spamming other users. If you believe that your account has been disabled in error please contact Windows Live support.
    Complete the security check below to finish leaving your comment.
    The characters you type in the security check must match the characters in the picture or audio.

    To add a comment, sign in with your Windows Live ID (if you use Hotmail, Messenger, or Xbox LIVE, you have a Windows Live ID). Sign in


    Don't have a Windows Live ID? Sign up

    Gustavowrote:
    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,
    July 13
    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
    July 13
    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.aspx
    Abraço, espero que meu blog esteja te ajudando...
    July 13
    Edilsonwrote:
    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.. Parabens
    Já 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 !
    July 6

    Trackbacks

    The trackback URL for this entry is:
    http://fabianosqlserver.spaces.live.com/blog/cns!52EFF7477E74CAA6!1560.trak
    Weblogs that reference this entry
    • None