none
Backup não sendo compactado

    Pergunta

  • Bom dia amigos,

    Estou vendo já a alguns dias que o backup não vem sendo compactado.

    Utilizamos aqui o SQL Server 2008 R2

    Realizamos o backup diferencial de hora em hora por causa da quantidade de dados entrantes durante o dia, e um full as 20:00

    Quando vamos analisar o backup, os backups diferenciais estão com quase o mesmo tamanho do full, o que já é estranho por dois motivos, o diferencial deveria ser progressivo em seu tamanho, e outra coisa é o proprio tamanho pois chega quase ao mesmo tamanho do full.

    Alguem tem alguma ideia do que seja ou um caminho para que eu possa investigar ?

    Todo o processo é feito automaticamente pelo proprio SQL SERVER


    Fabio Aragao

    terça-feira, 19 de dezembro de 2017 13:39

Todas as Respostas

  • Teria de ver como você está fazendo esse backup. Temo como colocar o código ai para vermos:
    terça-feira, 19 de dezembro de 2017 18:32
  • Boa tarde Carlos, Obrigado por responder...

    Eu fiz pelo plano de manutenção mesmo.. nenhum codigo na mão nem nada..


    Fabio Aragao

    quarta-feira, 20 de dezembro de 2017 19:04
  • Fabio,

    Mas você marcou a opção de backup compactado? Por padrão via Maintenance Plan o backup não é realizado de forma compactada.


    Pedro Antonio Galvao Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    quinta-feira, 21 de dezembro de 2017 16:21
    Moderador
  • Ola Junior, obrigado por responder...

    Marquei sim,.


    Fabio Aragao

    quinta-feira, 21 de dezembro de 2017 16:43
  • Fabio,

    Clique no botão Exibir T-SQL e verifique se por acaso a opção Format esta sendo utilizada.


    Pedro Antonio Galvao Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    quinta-feira, 21 de dezembro de 2017 17:01
    Moderador
  • Segue o texto:

    EXECUTE master.dbo.xp_create_subdir N'F:\Backup_Banco_Dados\Golden'
    GO
    BACKUP DATABASE [Golden] TO  DISK = N'F:\Backup_Banco_Dados\Golden\Golden_backup_2017_12_21_150415_0323046.bak' WITH  DIFFERENTIAL ,  RETAINDAYS = 15, NOFORMAT, NOINIT,  NAME = N'Golden_backup_2017_12_21_150415_0323046', SKIP, REWIND, NOUNLOAD, COMPRESSION,  STATS = 10
    GO
    declare @backupSetId as int
    select @backupSetId = position from msdb..backupset where database_name=N'Golden' and backup_set_id=(select max(backup_set_id) from msdb..backupset where database_name=N'Golden' )
    if @backupSetId is null begin raiserror(N'Falha na verificação. Informações de backup do banco de dados ''Golden'' não encontradas.', 16, 1) end
    RESTORE VERIFYONLY FROM  DISK = N'F:\Backup_Banco_Dados\Golden\Golden_backup_2017_12_21_150415_0323046.bak' WITH  FILE = @backupSetId,  NOUNLOAD,  NOREWIND


    Fabio Aragao

    quinta-feira, 21 de dezembro de 2017 17:05
  • Olá,

    Quanto tempo faz que voce fez o Ultimo Backup FULL? Faço essa pergunta, pois em muitos casos... De fato esse é um comportamento esperado.

    O Backup Diferencial nada mais é do que "Toda a Diferença" desde o ultimo Backup FULL, ou seja: Este tipo de Backup contem todos os dados desde o ultimo Backup FULL.

    Agora imagine se Ultimo Backup FULL foi feito a 3 meses? Dependendo da quantidade de alterações que voce possui na sua Base, é bem possível que o Backup Diferencial fique maior que o FULL, entendeu?

    Para resolver isso, faça um Backup FULL que o Diferencial irá diminuir drasticamente.

    A disposição,

    Marcos Roberto de Lima
    MCT-MCTS-MCITP-MCP

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    quinta-feira, 21 de dezembro de 2017 18:12
  • Boa tarde Marcos, obrigado por responder..

    Fazemos o backup full todos os dias as 20:00


    Fabio Aragao

    quinta-feira, 21 de dezembro de 2017 18:23
  • Vejam um exemplo do mesmo de outubro

    Fizemos um backup as 20:00 full e um incremental as 20:05 no dia 14/10

    domingo 15/10 não houve backup pois foi domingo e a empresa nao abre...

    no dia 16/10 o primeiro incremental já começa com 50Mb e a empresa nem está aberta ainda...


    Fabio Aragao

    quinta-feira, 21 de dezembro de 2017 18:35
  • Olá,

    Então, não é porque a empresa não abre que o SQL está parado, certo? Verifique se não existem JOBS e ou outras tarefas que o Banco pode estar executando durante o Domingo. Além disso, perceba que no dia 17 a situação do Backup é a esperada.

    Muito provavelmente, o seu SQL está configurado para executar algum tipo de Manutenção no Banco no Domingo, motivo pelo qual o Log deste Banco deve ter crescido e ocasionado o crescimento do Backup.

    A disposição,

    Marcos Roberto de Lima
    MCT-MCTS-MCITP-MCP

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    quinta-feira, 21 de dezembro de 2017 18:57
  • Fabio,

    Pegando o gancho do Marcos, verifique também se não existe algum procedimento de ShrinkFile ou ShrinkDatabase que possa estar sendo realizado aos domingos.

    Além disso, no bloco de código que você compartilhou realmente não existe a instrução para compressão de backup.


    Pedro Antonio Galvao Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    quarta-feira, 27 de dezembro de 2017 20:28
    Moderador
  • Bom dia Pedro, obrigado por responder.

    Não temos nenhuma ação de shrink nos backups.

    Toda a configuração dos backups foram feitas pelo plano de manutenção, depois disso nada é mexido..


    Fabio Aragao

    quinta-feira, 28 de dezembro de 2017 11:35
  • Fabio,

    Perfeito, então o que acontece aos finais de semana na empresa? A infra é mantida ligada? Por acaso os serviços do SQL Server são interrompidos?

    Você já verificou no log de eventos do Windows se existe alguma coisa catalogada neste período?


    Pedro Antonio Galvao Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    sexta-feira, 29 de dezembro de 2017 18:56
    Moderador
  • Olá Pedro, obrigado por responder..

    Sim, a infra fica ligada.. porém a empresa funciona de segunda a sábado.

    os backups são realizados de segunda a sábado

    Os serviços do SQL não são interrompidos.


    Fabio Aragao

    terça-feira, 2 de janeiro de 2018 18:01
  • Fabio,

    Existe algum job programado para se executado aos domingos, além do que é executado pelo plano de execução?


    Pedro Antonio Galvao Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    sábado, 6 de janeiro de 2018 20:41
    Moderador
  • Fabio,

    Existe algum job programado para se executado aos domingos, além do que é executado pelo plano de execução?


    Pedro Antonio Galvao Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    Bom dia Pedro, obrigado por responder..

    Não temos nada rodando no domingo.


    Fabio Aragao

    segunda-feira, 8 de janeiro de 2018 13:12
  • Fabio,

    Ok, que coisa de louco isso, sinceramente não consigo entender o que posar estar ocorrendo.

    Você chegou a verificar o Event Viewer do Windows ou até mesmo o log de eventos do SQL Server?


    Pedro Antonio Galvao Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    terça-feira, 9 de janeiro de 2018 17:33
    Moderador
  • Fabio,

    Ok, que coisa de louco isso, sinceramente não consigo entender o que posar estar ocorrendo.

    Você chegou a verificar o Event Viewer do Windows ou até mesmo o log de eventos do SQL Server?


    Pedro Antonio Galvao Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    Ola Junior, já verifiquei e não vi nenhum problema pertinente que possa justificar este problema..

    Alguma dica para uma verificação mais apurada ?


    Fabio Aragao

    terça-feira, 9 de janeiro de 2018 17:56
  • Fabio,

    Quais aplicações normalmente estão em uso neste período de horário em seu ambiente?


    Pedro Antonio Galvao Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    quinta-feira, 11 de janeiro de 2018 21:29
    Moderador
  • Fabio,

    Quais aplicações normalmente estão em uso neste período de horário em seu ambiente?


    Pedro Antonio Galvao Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    Em nosso horario comercial, funciona um sistema feito em VB6

    De hora em hora fazemos o backup diferencial do banco de dados usado pela aplicação

    de 3 em 3 horas fazemos o backup dos bancos de sistema do SQL Server

    o ultimo backup a ser feito é um diferencial do banco de dados utilizado pela aplicação. fazemos um full as 20:00, e um diferencial as 20:10

    As 6 da manha iniciamos novamente os backups diferenciais do banco de dados utilizado pelo sistema

    Dai pra frente nada mais é feito


    Fabio Aragao

    sexta-feira, 12 de janeiro de 2018 11:38
  • Fabio,

    O seu último backup full é feito ás 20 e depois ás 20:10 o diferencial!!!

    Nossa um intervalo de 10, qual é o tamanho total da base de dados?

    Faça um teste, tente executar o backup através de um script utilizando o comando Backup Database em conjunto com a opção Compress e verifique se o backup é executado de forma compactada.


    Pedro Antonio Galvao Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    sexta-feira, 12 de janeiro de 2018 23:14
    Moderador
  • Nenhum Sistema/Usuário acessa a base de domingo, é isto?

    Poste o resultado desta query:

    USE [base]
    GO
    
    DBCC TRACEON(2537)
    GO
    
    SELECT COUNT([Transaction Name]) AS cnt, [Transaction Name]  FROM sys.fn_dblog(NULL, NULL) 
    	WHERE [Operation] = 'LOP_BEGIN_XACT' AND [Begin Time] BETWEEN '2018/01/14 00:01:00' AND '2018/01/15 05:00:00'
    	GROUP BY [Transaction Name] ORDER BY cnt DESC
    GO

    segunda-feira, 15 de janeiro de 2018 03:26
  • Fabio,

    O seu último backup full é feito ás 20 e depois ás 20:10 o diferencial!!!

    Nossa um intervalo de 10, qual é o tamanho total da base de dados?

    Faça um teste, tente executar o backup através de um script utilizando o comando Backup Database em conjunto com a opção Compress e verifique se o backup é executado de forma compactada.


    Pedro Antonio Galvao Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    Bom dia Junior, obrigado por responder e continuar ajudando..

    Poderia ajudar mais um pouco e mandar o script ?

    Eu nao tenho conhecimento suficiente para fazer isso sozinho


    Fabio Aragao

    segunda-feira, 15 de janeiro de 2018 14:01
  • Nenhum Sistema/Usuário acessa a base de domingo, é isto?

    Poste o resultado desta query:

    USE [base]
    GO
    
    DBCC TRACEON(2537)
    GO
    
    SELECT COUNT([Transaction Name]) AS cnt, [Transaction Name]  FROM sys.fn_dblog(NULL, NULL) 
    	WHERE [Operation] = 'LOP_BEGIN_XACT' AND [Begin Time] BETWEEN '2018/01/14 00:01:00' AND '2018/01/15 05:00:00'
    	GROUP BY [Transaction Name] ORDER BY cnt DESC
    GO

    Bom dia Andre, obrigado por responder..

    Na primeira linha tenho que colocar o banco principal ou qual é o banco que tenho que colocar ?

    Obrigado pela ajuda


    Fabio Aragao

    segunda-feira, 15 de janeiro de 2018 14:02
  • O banco que apresenta o problema, exemplo: Golden.

    Esta query é para identificarmos um possível ofensor, mas tem que ser executada de segunda pela manhã, pois o log pode ser sobrescrito.

    Rode ela e poste os resultados por via das dúvidas.

    terça-feira, 16 de janeiro de 2018 03:23
  • Fabio,

    Dependendo da versão e configuração a compactação não é habilitada por padrão, então este exemplo poderá lhe ajudar a testar a compactação e também a configurar de forma definitiva a ativação da compactação.

    --Verificando a configuração atual do Backup compression default
    SP_Configure
    
    --Habilitando backup compression default
    Exec SP_CONFIGURE 'backup compression default',1
    
    --Desabilitando backup compression default
    Exec SP_CONFIGURE 'backup compression default',0
    
    --Realizando Backup
    Backup Database Teste To Disk = 'C:\Teste.bak' 
    
    --Realizando Backup Compactado
    Backup Database Teste To Disk = 'C:\Teste-Compactado.bak' 
     With Compression
    
    --Recuperando informações do Backup
    RESTORE LABELONLY FROM DISK = 'C:\TESTE.BAK'
    
    --Recuperando informações do Backup
    RESTORE LABELONLY FROM DISK = 'C:\TESTE-COMPACTADO.BAK'
    
    --Recuperando informações do Backup
    SELECT * FROM msdb..backupfile
    WHERE BACKUP_SET_ID=6


    Pedro Antonio Galvao Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    terça-feira, 16 de janeiro de 2018 16:58
    Moderador