none
Crescimento backup log e diferencial RRS feed

  • Pergunta

  • Pessoal, estou executando backups de log e diferencial. Os de logs executo a cada 4 horas, porém ele faz um backup 00:00 aproximadamente 5,5KB, outro 04:00 2,3KB e o de 08:00 21,828,367KB. Achei estranho, pois venho observando que o arquivo de backup de log só cresce tanto no horário de 08:00. Outro detalhe é o backup do arquivo diferencial, é normal ser 21GB pra uma base de 30GB??
    quinta-feira, 6 de setembro de 2012 14:06

Respostas

  • Jerferson,

    O Backup diferencial é realizado sempre com base no último backup full!!!

    Agora a observação do Roberson tem sentido, será que não esta sendo realizado algum processo de manipulação de dados no horário que este backup de log esta sendo feito?


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]

    quinta-feira, 6 de setembro de 2012 18:43
    Moderador
  • Você pode montar seu Trace pelo Profiler, salvar a definição deste Trace num arquivo qualquer (txt, por exemplo) e depois criar um Job com o conteúdo desta arquivo.

    E este Job você agenda para iniciar no dia e horário que quiser. E na própria definição do Trace você pode informar o dia/horário de término do monitoramento.

    Veja mais em:

    1) http://www.mcdbabrasil.com.br/modules.php?name=Forums&file=viewtopic&t=2960

    2) http://vyaskn.tripod.com/server_side_tracing_in_sql_server.htm

    Observação: você já marcou mesmo a Resposta?


    Roberson Ferreira - Database Developer
    Acesse: www.robersonferreira.com.br
    Email: contato@robersonferreira.com.br

    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    terça-feira, 25 de setembro de 2012 19:07
  • Ótimo, Jerfeson. Uma boa medida.

    Claro que, se essa verificação de integridade é feita aos domingos, por exemplo, se você tiver um problema de integridade na segunda-feira, todos os seus backups "contemplarão" este problema de integridade.

    Mas se esta verificação é muito custosa e você entende que fazê-la uma vez por semana está de bom tamanho, show.

    Atente-se para usar algumas opções que podem lhe ajudar a garantir a integridade dos backups. Tais como: "Verify backup when finished" e "Perform checksum before writing to media".

    Veja o custo/benefício destas opções para saber se podem ser úteis a você.


    Roberson Ferreira - Database Developer
    Acesse: www.robersonferreira.com.br
    Email: contato@robersonferreira.com.br

    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    quarta-feira, 3 de outubro de 2012 12:21

Todas as Respostas

  • Em relação ao Backup de Log, será que não acontece algum tipo de importação entre 4h e 8h. Você já monitorou o SQL pra ver o que acontece neste horário?

    Outra coisa, em relação ao Diferencial: quando foi seu último backup Full?


    Roberson Ferreira - Database Developer
    Acesse: www.robersonferreira.com.br
    Email: contato@robersonferreira.com.br

    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    quinta-feira, 6 de setembro de 2012 14:52
  • Jerferson,

    O Backup diferencial é realizado sempre com base no último backup full!!!

    Agora a observação do Roberson tem sentido, será que não esta sendo realizado algum processo de manipulação de dados no horário que este backup de log esta sendo feito?


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]

    quinta-feira, 6 de setembro de 2012 18:43
    Moderador
  • Deve ter muito tempo que você não efetua um Backup Full.

    Se você fizer um Full hoje e um Diferencial amanhã, provavelmente seu Diferencial estará bem pequeno, a menos que neste intervalo de 1 dia tenha acontecido muita coisa no banco.


    Roberson Ferreira - Database Developer
    Acesse: www.robersonferreira.com.br
    Email: contato@robersonferreira.com.br

    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    quinta-feira, 6 de setembro de 2012 18:50
  • Jerferson,

    Você realmente precisa de um backup de log? Se você esta realizando backups diferenciais de tempos em tempos acredito o backup de log acaba sendo desnecessário.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]

    quinta-feira, 6 de setembro de 2012 19:00
    Moderador
  • E se realmente existir algum rotina pesada de importação antes do Backup das 8h, verifique se não é interessante setar o Recovery Model para Bulk-Logged.

    Roberson Ferreira - Database Developer
    Acesse: www.robersonferreira.com.br
    Email: contato@robersonferreira.com.br

    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    quinta-feira, 6 de setembro de 2012 19:10
  • Roberson,

    Legal a sua observação, além do mudar o Recovery Model para Bulk-Logged assim não teremos o log registrando.

    Outra possibilidade seria desativar os índices das tabelas, mas isso poderá dar mais trabalho.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]

    quarta-feira, 12 de setembro de 2012 18:08
    Moderador
  • Jerfeson, pode dar sequencia a esta Thread por favor?

    Encerrando-a ou continuando-a.


    Roberson Ferreira - Database Developer
    Acesse: www.robersonferreira.com.br
    Email: contato@robersonferreira.com.br

    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    terça-feira, 18 de setembro de 2012 19:10
  • Desculpa pessoal, estava acompanhando o outro tópico aberto e acabei de passando com esse. Respondendo o questionamento de Junior, vejo interessante o backup de log por ser um ambiente hospitalar, em que existe atendimento 24 horas. Sendo que o horário de pico é mais durante o horário administrativo até às 18:00, mas infelizmente não posso descartar o movimento que ocorre na madrugada. Estou implementando uma política sugerida por Roberson pra avaliar depois com restores. Atualmente estou usando a seguinte estratégia: FULL 00:00 + DIFF 08:00, 12:00 e 18:00 + LOG 1 em 1 hora.  Outro detalhe, fiz testes usando Bulk-Logged e não conseguir visualizar tanta melhora no crescimento.

    Vou implementar uma nova política pra avaliar e postarei aqui os resultados.

    Agradecido pela atenção!!

    terça-feira, 18 de setembro de 2012 21:52
  • Ajustado os backups e desta vez funcionando redondo a questão do DIFF está com 21GB não mudou em nada. O log segue uma sequência de arquivos de tamanho menores e quando chega 17:27 o arquivo de log cresce pra 21GB isso todos os dias.....
    terça-feira, 25 de setembro de 2012 01:33
  • O arquivo de Log está com qual tamanho às 17h?

    O que acontece às 17:27h???


    Roberson Ferreira - Database Developer
    Acesse: www.robersonferreira.com.br
    Email: contato@robersonferreira.com.br

    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    terça-feira, 25 de setembro de 2012 02:00
  • Postei a imagem pra entender melhor:

    http://imageshack.us/photo/my-images/713/logm.jpg/

    http://imageshack.us/a/img713/1672/logm.jpg

    terça-feira, 25 de setembro de 2012 13:00
  • Então, Jeferson. Há uma discrepância enorme entre o Log das 04:00h e o das 05:27h.

    Certamente acontece alguma coisa bem diferente neste meio tempo.

    Você já monitorou este período pra verificar?

    Lembrando que, mediante a imagem postada, o problema ocorre de madrugada, e não às 17h.


    Roberson Ferreira - Database Developer
    Acesse: www.robersonferreira.com.br
    Email: contato@robersonferreira.com.br

    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    terça-feira, 25 de setembro de 2012 13:25
  • Desculpa pelo horário. O que acontece é que os Logs segue uma sequência de tamanho de arquivo menores e nesse horário especifico ele cresce. Irei rodar profiler nesse instante pra tentar verificar o que acontece nesse horário de 04:00 as 05:30 e posto um retorno aqui.
    terça-feira, 25 de setembro de 2012 17:40
  • OK. Monitore e amanhã nos posicione.

    Obs.: Não esqueça de marcar as respostas úteis, para que possa facilitar pesquisas futuras.


    Roberson Ferreira - Database Developer
    Acesse: www.robersonferreira.com.br
    Email: contato@robersonferreira.com.br

    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    terça-feira, 25 de setembro de 2012 17:43
  • Roberson, irei configurar profiler integrado com System Monitor de performace do Windows 2003 Server. O SQL 2000 Server dar a opção de agendarmos a execução de de start e stop do profile? Executando esse script abaixo num job criado....
    Exemplo:

    /****************************************************/
    /* Created by: SQL Profiler                         */
    /* Date: 09/25/2012  03:52:55 PM         */
    /****************************************************/

    -- Create a Queue
    declare @rc int
    declare @TraceID int
    declare @maxfilesize bigint
    declare @DateTime datetime

    set @DateTime = '2012-09-26 05:30:00.000'
    set @maxfilesize = 5

    -- Please replace the text InsertFileNameHere, with an appropriate
    -- filename prefixed by a path, e.g., c:\MyFolder\MyTrace. The .trc extension
    -- will be appended to the filename automatically. If you are writing from
    -- remote server to local drive, please use UNC path and make sure server has
    -- write access to your network share

    exec @rc = sp_trace_create @TraceID output, 0, N'InsertFileNameHere', @maxfilesize, @Datetime
    if (@rc != 0) goto error

    -- Client side File and Table cannot be scripted

    -- Set the events
    declare @on bit
    set @on = 1
    exec sp_trace_setevent @TraceID, 10, 1, @on
    exec sp_trace_setevent @TraceID, 10, 6, @on
    exec sp_trace_setevent @TraceID, 10, 10, @on
    exec sp_trace_setevent @TraceID, 10, 12, @on
    exec sp_trace_setevent @TraceID, 10, 13, @on
    exec sp_trace_setevent @TraceID, 10, 14, @on
    exec sp_trace_setevent @TraceID, 10, 16, @on
    exec sp_trace_setevent @TraceID, 10, 17, @on
    exec sp_trace_setevent @TraceID, 10, 18, @on
    exec sp_trace_setevent @TraceID, 12, 1, @on
    exec sp_trace_setevent @TraceID, 12, 6, @on
    exec sp_trace_setevent @TraceID, 12, 10, @on
    exec sp_trace_setevent @TraceID, 12, 12, @on
    exec sp_trace_setevent @TraceID, 12, 13, @on
    exec sp_trace_setevent @TraceID, 12, 14, @on
    exec sp_trace_setevent @TraceID, 12, 16, @on
    exec sp_trace_setevent @TraceID, 12, 17, @on
    exec sp_trace_setevent @TraceID, 12, 18, @on
    exec sp_trace_setevent @TraceID, 14, 1, @on
    exec sp_trace_setevent @TraceID, 14, 6, @on
    exec sp_trace_setevent @TraceID, 14, 10, @on
    exec sp_trace_setevent @TraceID, 14, 12, @on
    exec sp_trace_setevent @TraceID, 14, 13, @on
    exec sp_trace_setevent @TraceID, 14, 14, @on
    exec sp_trace_setevent @TraceID, 14, 16, @on
    exec sp_trace_setevent @TraceID, 14, 17, @on
    exec sp_trace_setevent @TraceID, 14, 18, @on
    exec sp_trace_setevent @TraceID, 15, 1, @on
    exec sp_trace_setevent @TraceID, 15, 6, @on
    exec sp_trace_setevent @TraceID, 15, 10, @on
    exec sp_trace_setevent @TraceID, 15, 12, @on
    exec sp_trace_setevent @TraceID, 15, 13, @on
    exec sp_trace_setevent @TraceID, 15, 14, @on
    exec sp_trace_setevent @TraceID, 15, 16, @on
    exec sp_trace_setevent @TraceID, 15, 17, @on
    exec sp_trace_setevent @TraceID, 15, 18, @on
    exec sp_trace_setevent @TraceID, 17, 1, @on
    exec sp_trace_setevent @TraceID, 17, 6, @on
    exec sp_trace_setevent @TraceID, 17, 10, @on
    exec sp_trace_setevent @TraceID, 17, 12, @on
    exec sp_trace_setevent @TraceID, 17, 13, @on
    exec sp_trace_setevent @TraceID, 17, 14, @on
    exec sp_trace_setevent @TraceID, 17, 16, @on
    exec sp_trace_setevent @TraceID, 17, 17, @on
    exec sp_trace_setevent @TraceID, 17, 18, @on

    -- Set the Filters
    declare @intfilter int
    declare @bigintfilter bigint

    exec sp_trace_setfilter @TraceID, 10, 0, 7, N'SQL Profiler'

    -- Set the trace status to start
    exec sp_trace_setstatus @TraceID, 1

    -- display trace id for future references
    select TraceID=@TraceID
    goto finish

    error:
    select ErrorCode=@rc

    finish:
    go

    terça-feira, 25 de setembro de 2012 18:54
  • Você pode montar seu Trace pelo Profiler, salvar a definição deste Trace num arquivo qualquer (txt, por exemplo) e depois criar um Job com o conteúdo desta arquivo.

    E este Job você agenda para iniciar no dia e horário que quiser. E na própria definição do Trace você pode informar o dia/horário de término do monitoramento.

    Veja mais em:

    1) http://www.mcdbabrasil.com.br/modules.php?name=Forums&file=viewtopic&t=2960

    2) http://vyaskn.tripod.com/server_side_tracing_in_sql_server.htm

    Observação: você já marcou mesmo a Resposta?


    Roberson Ferreira - Database Developer
    Acesse: www.robersonferreira.com.br
    Email: contato@robersonferreira.com.br

    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    terça-feira, 25 de setembro de 2012 19:07
  • Pessoal, agendei o uso do profile pra roda de 04:00 às 05:30 e percebir uma presença constante do SP msdb.dbo.sp_sqlagent_get_perf_counters, onde o mesmo faz execuções em diversos momentos. Pesquisei sobre e entendi que a stored está relacionado com as execução de jobs agendados. Corrijam se estiver errado na minha compreensão.

    Outro detalhe também percebido é que existem somente consultas de selects, no qual uma delas consome 31milisegundos de CPU e faz 6171 de leituras lógicas.

    Irei colocar novamente pra monitorar pelo motivo tentar entender o que está acontecendo com backup de log das 05:27.

    quinta-feira, 27 de setembro de 2012 15:15
  • Pessoal, hoje tive uma resultado mais claro do rastreamento que agendei no profile do que estava sendo executado entre 04:00 e 05:30. Vi que nesse meio período o SQL Server executa o plano de manutenção do job de otimização e verificação de integridade do banco tipo: reorganização dos índices e o check database integrity com inclusão de índices.

    select count(*) from dbo.sysindexes where id = object_id(N'[dbo].[table]') and (status & 0x0020) = 0 and indid > 0 and indid < 255

    select count(*) from dbo.sysindexes where id = object_id(N'[dbo].[table') and indid = 1

    dbcc dbreindex(N'[dbo].[table]', N'', 90, sorted_data_reorg)

    São essas consultas executadas. Estou executando esse plano de manutenção diariamente e já penso na possibilidade de alterar pra ser executado 1 vez na semana. É uma pratica interessante?

    sexta-feira, 28 de setembro de 2012 14:42
  • Pessoal, resolvido o problema de crescimento dos backups DIFF e Logs. O problema do Log estava relacionado com procedimentos de verificação de integridade de otimização que estavam agendados pra executar todos os dias, inclusive esses procedimentos rodavam depois da realização do backup FULL e em consequência a isso geravam também o crescimento do DIFF pelo fato de realizarem atualizações nas páginas da Base de Dados. Passei a executar as rotinas 1 vez por semana e agendei pra executar antes do backup FULL.

    quarta-feira, 3 de outubro de 2012 12:11
  • Ótimo, Jerfeson. Uma boa medida.

    Claro que, se essa verificação de integridade é feita aos domingos, por exemplo, se você tiver um problema de integridade na segunda-feira, todos os seus backups "contemplarão" este problema de integridade.

    Mas se esta verificação é muito custosa e você entende que fazê-la uma vez por semana está de bom tamanho, show.

    Atente-se para usar algumas opções que podem lhe ajudar a garantir a integridade dos backups. Tais como: "Verify backup when finished" e "Perform checksum before writing to media".

    Veja o custo/benefício destas opções para saber se podem ser úteis a você.


    Roberson Ferreira - Database Developer
    Acesse: www.robersonferreira.com.br
    Email: contato@robersonferreira.com.br

    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    quarta-feira, 3 de outubro de 2012 12:21
  • De fato Roberson a execução de verificação diária estava sendo custoso pelo fato do backup geral dos arquivos da empresa estar sendo feito utilizando a camada física. Os arquivos estão sendo salvos em HD Externos e utilizar a rede pra transferir os mesmos. Levei em consideração o custo de tempo que estava tendo pra realizar o backup geral do ambiente da empresa que inclui também os backups FULL, DIFF e LOGs. Habilitei a opção de PAGE_TORN_DETECTION pra me ajudar a identificar algum corrupção de página na BASE e solucionar em tempo hábil.

    Quando criei os backups habilitei a opção "Verify the integrity of the backup upon completion", tanto pra LOG, quanto FULL, porém não identifiquei ainda essa opção pra o DIFF. Acredito também que as opções que se referiu no post acima são pra versão superiores ao SQL 2000 Server.


    quarta-feira, 3 de outubro de 2012 14:46
  • Verdade. São para versões superiores.

    OK. Acredito que seu cenário esteja bem configurado. Qualquer necessidade, estamos aí.


    Roberson Ferreira - Database Developer
    Acesse: www.robersonferreira.com.br
    Email: contato@robersonferreira.com.br

    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    quarta-feira, 3 de outubro de 2012 16:34
  • Roberson, quero agradecer a você e os demais colegas pelo apoio.

    Abraços. Até a próxima!


    quarta-feira, 3 de outubro de 2012 22:49