Backup incremental do SQL Server “Quick”?

3

Estou trabalhando em um banco de dados muito grande (mais de 250 shows) com mais de 225 milhões de registros. É difícil trabalhar com o banco de dados simplesmente pelo seu tamanho. Este banco de dados é somente leitura.

Estamos procurando hardware mais rápido, mas de qualquer forma, estou tentando encontrar a maneira mais eficiente de trabalhar com o banco de dados. Esse banco de dados deve ser atualizado todas as noites a partir de um banco de dados mestre e o tempo de inatividade deve ser mantido no mínimo. O banco de dados mestre é mantido por terceiros.

Estou tentando encontrar a melhor maneira de atualizar o banco de dados, mas não estou tendo muita sorte. Analisei os backups de log de transações e diferenciais, mas para aplicá-los, um backup completo deve ser restaurado primeiro. Isso derrota completamente o propósito de um backup diferencial no meu caso, já que eu poderia ter um backup completo feito no banco de dados mestre e simplesmente restaurar o backup completo todas as noites, pois seria mais rápido do que restaurar um backup completo e aplicar os backups diferenciais a cada noite.

Eu esperava ter uma solução em que eu pudesse ter um backup completo feito uma vez (ou talvez uma vez por mês) e, a partir de então, simplesmente aplicássemos alguns tipos de backups incrementais baseados no backup completo original criado em cada de outros. Isso manteria o tempo de inatividade em um mínimo, já que uma vez feito o primeiro backup completo, eu aplicaria os backups incrementais somente à noite. Eu simplesmente reconstruir o índice após cada backup "incremental". Eu não fui bem sucedido em encontrar qualquer solução como essa.

Agora estou mergulhando e pesquisando bastante sobre backups e desempenho de bancos de dados, lendo constantemente o MSDN - no entanto, parece que essa solução não é uma opção. Eu pensei que gostaria de pedir como último recurso - certamente há alguns aqui gerenciando grandes bancos de dados onde seria impraticável fazer uma restauração todas as noites.

Alguma sugestão? Também estou aberto a sugestões / links para páginas sobre desempenho, já que nunca trabalhei com um banco de dados desse tamanho.

    
por KTF 25.01.2010 / 16:32

4 respostas

3

Você está descrevendo envio de log , mas deseja usar backups 'diferenciais' em vez de backups de log, que é o problema com sua abordagem. Com o envio de logs, você restaura o banco de dados uma vez, depois aplica backups de log à medida que eles são criados no site principal, e você nunca precisará refazer a restauração de backup completo inicial. Apenas continue aplicando o log enviado em intervalos de algumas horas e você terá sua cópia somente leitura disponível.

    
por 26.01.2010 / 09:41
2

Talvez esse terceiro possa configurar algum tipo de replicação para mover as alterações durante a noite ?

    
por 25.01.2010 / 16:50
2

Se você tiver permissão para acessar o ambiente que hospeda o banco de dados de produção & os bancos de dados mestre e somente de leitura podem ser a mesma instância de banco de dados que executa a edição Enterprise do SQL2005 / SQL2008, você pode usar os instantâneos do banco de dados. Isso lhe dará uma cópia do banco de dados instantânea no momento, somente leitura.

link

Se você não tiver permissão para acessar o ambiente de Produção, poderá perguntar se eles estão dispostos a configurar um banco de dados espelhado em seu ambiente - isso também permitirá a execução de um instantâneo, mas você precisará do software Enterprise Edition e licenças.

link

Se eles não estiverem usando o Enterprise ou se precisarem de dados próximos ao vivo, a replicação transacional será outra opção.

link

Se a restauração estiver demorando muito, considere a opção de comprar software de compactação de disco de backup. Isso normalmente acelera os backups / restaurações por um fator, dependendo do tipo de dados armazenados.

    
por 26.01.2010 / 16:42
1

Remus respondeu primeiro, mas eis como o cenário de envio de logs funcionaria:

  1. o terceiro envia um backup completo do banco de dados em 1/1
  2. Você restaura o banco de dados no norecovery com o modo de espera, isso define o banco de dados como somente leitura (apenas para dbos)
  3. O terceiro envia um backup do log de transações (ou vários) no 1/2 e você as aplica ao banco de dados, atualizando as alterações. Depois que o backup for aplicado, o banco de dados estará no modo de espera novamente, somente leitura
  4. Repetir processo diariamente
por 26.01.2010 / 16:13