Backup no modelo de recuperação com log de operações em massa

Este tópico é relevante para otimizar operações em massa nos bancos de dados do SQL Server que normalmente usam o modelo de recuperação completa.

O modelo de recuperação bulk-logged é um modelo de recuperação com finalidade especial que só deve ser usado raramente para melhorar o desempenho de certas operações em massa de larga escala, como importações em massa de grandes volumes de dados. Muito da descrição de backup no modelo de recuperação completa também se aplica ao modelo de recuperação bulk-logged. Este tópico só aborda considerações que são exclusivas ao modelo de recuperação bulk-logged.

ObservaçãoObservação

Para obter mais informações sobre quais operações são registradas de forma mínima no modelo de recuperação bulk-logged, consulte Operações que podem ser minimamente registradas em log.

Recomendamos que você não use com freqüência o modelo de recuperação bulk-logged. A prática recomendada é alternar para o modelo de recuperação bulk-logged antes de um conjunto de operações em massa, executar as operações e, depois, retornar imediatamente ao modelo de recuperação completa. Para obter mais informações, consulte Considerações sobre como alternar do modelo de recuperação completa ou bulk-logged.

Como o modelo de recuperação bulk-logged funciona

Comparado ao modelo de recuperação completa, que faz log completo de todas as transações, o modelo de recuperação bulk-logged faz o log de operações em massa de forma mínima, embora faça o log completo de outras transações. O modelo de recuperação bulk-logged protege o sistema contra falha de mídia e, para operações em massa, fornece o melhor desempenho usando o mínimo de espaço em log.

Entretanto, o modelo de recuperação bulk-logged aumenta o risco de perda de dados nessas operações de cópia em massa, porque operações com log em massa impedem a recaptura de alterações em uma base transação por transação. Se um backup de log contiver operações bulk-logged, você não poderá executar uma restauração pontual no backup de log; só poderá restaurar todo o backup de log.

No modelo de recuperação bulk-logged, se um backup de log contiver qualquer operação em massa, o backup de log conterá os registros de log e as páginas de dados alteradas por operações em massa. Isso é necessário para capturar os resultados das operações bulk-logged. As extensões de dados incorporadas podem fazer um backup de log muito grande. Além disso, fazer o backup de log requer acesso aos arquivos de dados que contêm as transações bulk-logged. Se qualquer arquivo de banco de dados afetado estiver inacessível, o log de transações não poderá fazer o backup e todas as operações confirmadas naquele log serão perdidas.

Para rastrear as páginas de dados, uma operação de backup de log dependerá de uma página de bitmap das alterações em massa que contêm um bit para cada extensão. Para cada extensão atualizada por uma operação bulk-logged desde o último backup de log , o bit é definido como 1 no bitmap. As extensões de dados são copiadas no log seguido pelos dados de log. A ilustração a seguir mostra como um backup de log é construído.

O bitmap de alterações em massa identifica as extensões alteradas

Observação importanteImportante

Nos modelos de recuperação completa ou de recuperação bulk-logged, até o primeiro backup completo, pontos de verificação automáticos truncam a parte nova do log de transações, a menos que outros fatores estejam mantendo o registro de log ativo. Depois do primeiro backup completo, o truncamento requer a execução do backup do log de transações. Para obter mais informações sobre fatores que atrasam o truncamento, consulte Fatores que podem atrasar o truncamento de log.

Restrições de backup no modelo de recuperação bulk-logged

No modelo de recuperação bulk-logged, ocorrem as seguintes restrições:

  • Se um grupo de arquivos que contém alterações bulk-logged for transformado em somente leitura antes da execução de um backup de log, todos os backups de log subseqüentes conterão as extensões alteradas pelas operações bulk-logged, contanto que o grupo de arquivos permaneça como somente leitura. Tais backups de log são maiores e levam muito mais tempo para serem concluídos do que no modelo de recuperação completa.

    Para evitar essa situação, antes que você deixe o grupo de arquivos como somente leitura, troque o banco de dados para o modelo de recuperação completa e faça o backup de log. Depois, transforme o grupo de arquivos como somente leitura.

  • Se forem executadas operações em massa desde o último backup de log, haverá alterações em massa no banco de dados. Nesse caso, todos os arquivos deverão estar online ou expirados quando os backups de log forem executados. Isso porque para fazer backup de um log que contém operações bulk-logged, há necessidade de acesso aos arquivos de dados que contêm as transações bulk-logged.

Para obter mais informações sobre restrições de restauração, consulte Restauração no modelo de recuperação bulk-logged.

Definindo um banco de dados como somente leitura depois de transações bulk-logged

No modelo de recuperação bulk-logged, os backups de log operam corretamente quando um banco de dados contém alterações bulk-logged. Porém, se um banco de dados de leitura/gravação for alterado para acesso somente leitura depois de uma operação bulk-logged, os backups de log subseqüentes poderão capturar mais dados do que o necessário. Isso ocorre porque o arquivo de dados não pode ser atualizado para controlar quais extensões de dados foram alteradas por uma operação bulk-logged. Todos os backups de log posteriores contêm as mesmas informações.

Prática recomendada Antes de você alterar o banco de dados para somente leitura, troque o modelo de recuperação completa e faça o backup de log. Depois, deixe o banco de dados como somente leitura. Na prática, fazer backups de log de um banco de dados somente leitura não faz sentido. Em vez disso, depois que o banco de dados ficar como somente leitura, faça um backup de banco de dados completo ou um conjunto completo de backups de arquivo. Para obter mais informações sobre como trocar de modelo de recuperação, consulte Considerações sobre como alternar do modelo de recuperação completa ou bulk-logged.

ObservaçãoObservação

Para obter mais informações sobre como fazer backup de banco de dados somente leitura, consulte Fazendo backup de bancos de dados somente leitura.

Restaurando backups no modelo de recuperação bulk-logged

Para obter informações sobre como restaurar backups de um banco de dados de modelo de recuperação bulk-logged, consulte Restauração no modelo de recuperação bulk-logged.