Compreendendo o desempenho de recuperação no SQL Server

O desempenho de recuperação focaliza principalmente em recuperação de estrondo e não em recuperação depois da restauração de um backup. Porém, otimizações são possíveis para uma recuperação depois de uma restauração de um backup.

O tempo da recuperação é determinado por quanto trabalho foi realizado desde o último ponto de verificação, e por quanto trabalho foi realizado por todas as transações ativas na hora da perda de dados. O SQL Server usa uma opção de configuração chamada de recovery interval para definir o número máximo aproximado de minutos por banco de dados que o SQL Server precisa para recuperar os bancos de dados. Esta configuração de recovery interval controla a freqüência do ponto de verificação. Para um sistema de processamento de transações online (usando transações curtas) (OLTP), o recovery interval é o fator primário que determina o tempo da recuperação.

Depois da instalação, o SQL Server define o recovery interval para zero. Contanto que a configuração do recovery interval esteja na configuração padrão e as transações de longa execução não estejam presentes, a recuperação para cada banco de dados deveria levar aproximadamente 1 minuto ou menos. Ao recuperar dados restaurados, se as transações de longa execução estiverem ativas na hora da perda de dados, a hora de recuperação será controlada pelo tempo que é levado para reverter os efeitos destas transações. Porém, em SQL Server 2005 e versões posteriores, o banco de dados estará disponível durante a fase de desfazer uma recuperação de estrondo ou um failover de espelhamento de banco de dados, um recurso conhecido como recuperação rápida.

Se rotineiramente a recuperação levar bem mais que 1 minuto para um banco de dados, a configuração de recovery interval tiver um valor de zero e não existirem transações longas para reverter, considere contatar seu provedor de suporte primário para resolver o problema do desempenho de recuperação.

A recuperação informa progresso baseado nos arquivos de log virtuais para um banco de dados. A recuperação analisa e verifica o log no começo da recuperação, desde o último ponto de verificação. Baseado na fase de análise, a recuperação estima quanto log será lido durante a recuperação. A quantia de leitura de log é usada para informar o progresso da recuperação.

Se a configuração de recovery interval for alterada do valor padrão, a recuperação de banco de dados levará muito mais tempo para completar. Por exemplo, se o recovery interval fosse alterado para 10, a recuperação levaria aproximadamente 10 vezes mais tempo para completar que se recovery interval permanecesse na configuração padrão de zero.

Ao cultivar o log, use incrementos maiores em lugar de incrementos menores para assegurar uma hora de inicialização mais curta para o SQL Server. Quanto menores forem os incrementos de log que você tem, mais longo será o tempo que o SQL Server precisará para inicializá-los.

Ao recuperar depois de uma operação de restauração, deixe o servidor terminar o processo de reversão caso uma transação de longa execução estiver terminada. O término do processo de servidor durante a reversão de uma transação de longa execução resulta em tempo de recuperação longa. Se você estiver preocupado com a duração do processo de reversão, peça a seu administrador de sistema para confirmar se aquela atividade está acontecendo no servidor.

Se você tiver uma transação de longa execução e um estrondo acontecer durante esta transação, o SQL Server começará o processo de recuperação. Neste caso, a velocidade de recuperação será aumentada porque o banco de dados estará disponível durante a fase de desfazer.

Para modos de reduzir o tempo de recuperação ao restaurar dados de backups no modelo de recuperação completa, consulte Reduzindo o tempo de recuperação ao restaurar um banco de dados.