Backup de banco de dados - pergunta sobre tamanho de arquivo diferencial

1

Para o meu plano de backup para o SQL Server 2005, quero fazer um completo no domingo:

BACKUP DATABASE myDatabase TO DISK = 'D:\Database Backups\myDatabase_full.bak' WITH FORMAT
GO

Então eu quero fazer um diferencial todas as noites no resto da semana:

BACKUP DATABASE myDatabase  TO DISK = 'D:\Database Backups\myDatabase_Diff.bak' WITH DIFFERENTIAL
GO

Minha suposição era de que, se houvesse pouca / nenhuma atividade no banco de dados, o diferencial não aumentaria de tamanho (ou não aumentaria muito).

No entanto, quando executo o backup diferencial acima (com pouca ou nenhuma atividade), vejo o aumento do backup diferencial em megas de cada vez. Por que isso está aumentando assim?

Obrigado

    
por GernBlandston 20.08.2009 / 14:05

5 respostas

4

Algo está mudando seu banco de dados!

Coisas como reconstruções de índice ou defrags causam alterações de página. As alterações revertidas podem ter alterado as páginas, portanto, elas também contam.
Além disso, os backups diferenciais são considerados "difusos" e, por isso, terão dados de log de transações no backup, o que é necessário para consistência.

Paul Randal escreveu um script muito legal há um tempo que vai dizer quantas extensões mudaram desde o último backup completo, então você pode usar isso para calcular o quão grande será o seu diferencial.

Além disso, você deve poder usar esse script para informar quais páginas foram alteradas no seu banco de dados. Isso pode ajudá-lo a resolver seu mistério de dados em mudança.

    
por 21.08.2009 / 06:22
3

Lembre-se de que um diferencial não é o mesmo que um incremental. Por exemplo, se você tiver um banco de dados de 100 MB e fizer 5 MB de alterações, cada backup diferencial terá pelo menos 5 MB. Com o Incremental, se você tiver um banco de dados de 100 MB e fizer 5 MB de alterações na segunda-feira e não houver alterações na terça-feira, terá um backup completo de 100 MB, um incremental de 5 MB para segunda-feira e um backup pequeno de 1 MB para terça-feira.

Para o diferencial, se você tiver um banco de dados de 100 MB e fizer 5, 1, 3 e 5 MB de alterações nos próximos 4 dias, você terá backups diferenciais de 5, 6, 9 e 14 MB.

    
por 20.08.2009 / 15:22
1

Tem total certeza que não há nenhuma atividade nesse banco de dados? Talvez você possa executar o profiler para ver se há algo acontecendo que você não está esperando, e também verificar planos de manutenção ou tarefas agendadas para qualquer coisa que possa estar modificando dados.

Dito isto ... percebo que não tenho uma resposta verdadeira. Os diferenciais diários que eu faço em um banco de dados específico (~ 6GB) sempre aumentam no final de semana, mesmo quando não há, teoricamente, ninguém logado no aplicativo que usa o banco de dados. Não me preocupei em investigar isso, pois sei que há serviços nesse servidor que ocasionalmente leem / gravam para esse banco de dados sob demanda, embora com pouca frequência.

    
por 21.08.2009 / 04:17
1

Um backup diferencial faz o backup de 8 mil páginas que foram "tocadas".

Se todas as suas alterações forem pequenas e estiverem na mesma área, você terá um pequeno backup. O que é improvável.

Um backup diferencial pode não aumentar se você continuar sujando as mesmas páginas (também improváveis)

Algumas coisas que sujarão uma página:

  • As estatísticas são atualizadas (armazenadas nas tabelas do sistema que possuem páginas alocadas)
  • Índices são reconstruídos (muitos dados são misturados)
  • Divisões de páginas de dados (o que significa 4 páginas sujas para 2 pequenas inserções)
  • ... e divisões de páginas de estruturas de índice
por 21.08.2009 / 06:46
0

Eu sou (basicamente um desenvolvedor java) enfrentando o mesmo prob que meu live db é de 7.5 GB e seus backups diff por dia são 1.5 GB. (na verdade, fazemos backups de diff por 1 hora) Quando eu escrevi o roteiro de randy para o meio dia (ou seja, na hora do almoço, que é metade de um dia útil completo), recebi a seguinte saída:

porcentagem total de alterações 125658 17169 13,66

Tenho certeza que este é um aplicativo antigo e pouquíssimo ppl usa isso, mas como isso pode ser possível mostrar 17169 extensões alteradas que está causando: 17169 * 64k = > 1098,816 MB (diferencial de quase 1 GB) para um aplicativo menos usado. Por favor, compartilhe suas idéias sobre isso ... como posso depurar isso ainda mais? Quero dizer, como posso reduzir as extensões para baixo para obter pequenos diferenciais.

    
por 16.11.2009 / 15:35