none
Apagar e limitar o tamanho do LOG do SQL Server 2000 RRS feed

  • Pergunta

  • Pessoal, bom dia!

    Nâo tenho muito conhecimento em SQL e por isso preciso de uma ajuda.

    O meu banco tem 2Gb e o meu Log tem 20Gb...

    Mas o principal é que o meu HD naõ é muito grande, então, preciso saber como apagar o mesmo e limitar o tamanho do Log para uns 4Gb (Acredito que este seja um bom tamanho, não?).

    Eu já executei o Shirink colocando 10%, mas não aconteceu nada. E achei nas propriedades do banco a opção de limitar o tamanho, mas tenho medo de executar algo errado.

    É preciso estar com algum serviço parado?

    Qual é o processo correto?

    Por favor, preciso de ajuda com uma certa urgência, pois esse Log aumenta cerca de 1Gb a cada semana e o meu HD só tem mais 5Gb livres... Não tenho verba na empresa para trocar o HD agora...

    Grata desde já!!

    Adriana
    segunda-feira, 13 de abril de 2009 13:28

Respostas

  • Adriana,


    A tarefa de Shrink serve para reorganizar as páginas de dados do banco ou do arquivo, dessa forma, se ele não estiver fragmentado não haverá grandes ganhos.


    Segue o comando para diminuir o tamanho físico do arquivio de log.

    Não é necessário paralisar nenhum serviço.




    --Diminuir o tamanho do log

    CHECKPOINT
    go
    backup log teste with truncate_only -- onde teste é o nome do banco de dados
    go
    DBCC SHRINKFILE (teste_log, 100) -- teste_log é o nome fisico do arquivo de log e 100 é o tamanho em MB



    De Lima - MCTS SQL Server
    • Marcado como Resposta Adriana_SP quarta-feira, 22 de abril de 2009 12:56
    quarta-feira, 15 de abril de 2009 13:13
  • Adriana,

    Fiz um teste aqui e o comando funcionou corretamente. O mdf no C: e o ldf no G:
    Apenas me equivoquei quando disse na resposta anterior nome físico do arquivo onde deve ser nome lógico. Desculpe!!! Talvez seja por isso que tenha ocorrido o erro.


    Tente o comando a seguir:


    use teste -- teste é o nome do database
    go


    -- O comando abaixo serve para visualizar o nome do arquivo e também para ver o tamanho atual
    exec sp_helpfile
    go



    dbcc shrinkfile(log_file_name, 100)
    go




    Att,
    De Lima - MCTS SQL Server
    • Marcado como Resposta Adriana_SP segunda-feira, 4 de maio de 2009 13:14
    quarta-feira, 22 de abril de 2009 14:25

Todas as Respostas

  • Adriana,

     A primeira coisa que você precisa avaliar é o recovery model que será utilizado.  Outra coisa, é regularmente fazer o backup do log, para que ele não cresça dessa forma.  Outra coisa é realmente limitar nas configurações do database, mas que o limite não será aplicado agora pq está com 20gb já.  Faça um backup do log, depois tente dar um shrinkfile para diminuir esse valor para os 2gb iniciais e posteriormente limite o valor máximo do tamanho do arquivo.

     

    Abraços

    Gilberto Neto


    Gilberto Neto Blog: http://gilberto-neto.spaces.live.com/default.aspx
    • Sugerido como Resposta Alex Rosa segunda-feira, 13 de abril de 2009 22:34
    segunda-feira, 13 de abril de 2009 13:40
  • Adriana,


    A tarefa de Shrink serve para reorganizar as páginas de dados do banco ou do arquivo, dessa forma, se ele não estiver fragmentado não haverá grandes ganhos.


    Segue o comando para diminuir o tamanho físico do arquivio de log.

    Não é necessário paralisar nenhum serviço.




    --Diminuir o tamanho do log

    CHECKPOINT
    go
    backup log teste with truncate_only -- onde teste é o nome do banco de dados
    go
    DBCC SHRINKFILE (teste_log, 100) -- teste_log é o nome fisico do arquivo de log e 100 é o tamanho em MB



    De Lima - MCTS SQL Server
    • Marcado como Resposta Adriana_SP quarta-feira, 22 de abril de 2009 12:56
    quarta-feira, 15 de abril de 2009 13:13
  • Bom dia a todos.

    A resposta já foi dada pelo Gilberto, no link http://www.sqlskills.com/BLOGS/PAUL/ , tem um survey a respeito do assunto do post.



    - asc - cardoso.alisson@gmail.com
    quarta-feira, 15 de abril de 2009 14:55
  • Lima,

    Deu certo, obrigada!!

    Mas não consegui executar isso em uma das minhas bases, acredito que seja porque os arquivos estão em unidades diferentes do C:...

    Acusa esta mensagem de erro no Query Analyser.

    Server: Msg 8985, Level 16, State 1, Line 1
    Could not locate file 'BDTESTE_Log' in sysfiles.
    DBCC execution completed. If DBCC printed error messages, contact your system administrator.


    Vc saberia como fazer neste caso??

    Fico muito grata!!!
    quarta-feira, 22 de abril de 2009 12:59
  • Adriana,

    Fiz um teste aqui e o comando funcionou corretamente. O mdf no C: e o ldf no G:
    Apenas me equivoquei quando disse na resposta anterior nome físico do arquivo onde deve ser nome lógico. Desculpe!!! Talvez seja por isso que tenha ocorrido o erro.


    Tente o comando a seguir:


    use teste -- teste é o nome do database
    go


    -- O comando abaixo serve para visualizar o nome do arquivo e também para ver o tamanho atual
    exec sp_helpfile
    go



    dbcc shrinkfile(log_file_name, 100)
    go




    Att,
    De Lima - MCTS SQL Server
    • Marcado como Resposta Adriana_SP segunda-feira, 4 de maio de 2009 13:14
    quarta-feira, 22 de abril de 2009 14:25
  • Tem razão.

    Assim funcionou!! :-)

    Obrigada pela ajuda!

    Adriana

    segunda-feira, 4 de maio de 2009 13:15