Como excluir índices de backups no SQL Server 2008

18

Nossos backups completos noturnos (e periódicos diferenciais) estão se tornando bastante grandes, devido principalmente à quantidade de índices em nossas tabelas; aproximadamente metade do tamanho do backup é composto por índices.

Estamos usando o modelo de recuperação Simples para nossos backups.

Existe alguma maneira, usando FileGroups ou algum outro método de particionamento de arquivos, para excluir os índices dos backups?

Seria bom se isso pudesse ser estendido para catálogos de texto completo também.

    
por Jarrod Dixon 30.04.2009 / 08:49

4 respostas

14

Se você alternar para o modo de recuperação total, poderá fazer isso com grupos de arquivos, mas é realmente muito desajeitado. Você deixa os dados no grupo de arquivos primário e coloca os índices em um grupo de arquivos separado (não padrão, essa é a chave).

Depois, você escalonou seus backups para fazer backups de grupos de arquivos do primário todas as noites e backups de log de transações a cada X minutos.

Quando ocorre um desastre, você restaura o grupo de arquivos primário sozinho. Os dados estão subitamente online, mas os índices não estão. No entanto, para voltar à normalidade, você precisará exportar esses dados para um novo banco de dados limpo e adicionar índices a partir dele. Você não pode colocar o banco de dados completamente online sem restaurar todos os grupos de arquivos, e você não pode dizer "Eu não preciso mais desse outro grupo de arquivos de qualquer maneira".

Para saber mais sobre como isso funciona, confira meu tutorial em vídeo sobre restaurações de grupos de arquivos.

    
por 30.04.2009 / 14:06
5

Honestamente, você realmente não quer fazer isso, mesmo se superar os outros problemas que outros levantam aqui.

Quando você restaura o backup em uma emergência, não quer esperar pela reconstrução dos índices e sofrerá um desempenho abominável até que você o faça.

Não consigo pensar em uma situação em que você deseje restaurar um backup sem índices, portanto, em todos os casos, você realmente desejará fazer o backup deles ao mesmo tempo.

Você provavelmente precisará procurar outras soluções para esse problema ...

-Adam

    
por 30.04.2009 / 19:16
3

Parece que isso não é suportado. A partir desta informações do relatório de erros :

There's been a lot of interest in this one, so I'll go into a bit more detail as to what is happening behind the scenes, and what it would mean to implement this functionality. Some types of index pages are segregated into separate allocation units, while others are mixed in with the data pages. Where we currently only look at the allocation bitmap to see if an extent is allocated, now we would have to go in and interpret what is stored in each allocation unit. Further, we would now not be able to just do a linear scan of the data files copying data, we'd be skipping around in the file. All of this interpretation of the data structures would drastically slow down backup. Restore gets even more interesting, because there are a lots of structures that would have to ba fixed up to account for the holes in the backup. Otherwise you'd have allocation maps pointing to pages which weren't backed up, and so have garbage in them, etc. etc. So, implementing this would mean that we'd save less data, take longer doing it, and take much longer restoring it. The other facet to consider is that this would take a large amount of engineering effort to get it all right. While that's not your problem on the surface, consider that it means that other features you may want to see wouldn't get built.

    
por 30.04.2009 / 10:44
1

pode ser uma ideia maluca, mas aqui vai.

  1. elimine os índices não agrupados que ocupam muito espaço
  2. faça um backup
  3. crie novamente os índices que você descartou

É claro que você só pode fazer isso se o banco de dados permitir algum tempo de inatividade no decorrer do dia.

Além disso, não elimine os índices agrupados, pois o SQL Server perderá muito tempo convertendo-os em um heap.

A compra desse espaço extra em disco parece ser uma solução ainda mais fácil?

Já pensou em fazer backups compactados ? este é um novo recurso de 2008, pode ser uma opção para você.

    
por 04.05.2009 / 05:49