
Nessa postagem vamos conhecer como funciona o processo de recuperação da feature Accelerated Database Recovery (ADR) em um banco de dados SQL.
O processo de recuperação de um banco de dados sem utilizar o ADR é baseado em um modelo de recuperação chamado ARIES que consiste em três fases conforme podemos ver no desenho abaixo:
Analysis: Nessa fase o SQL faz uma verificação antecipada do log de transação das databases desde o início do último ponto de verificação que ocorreu com sucesso, dessa forma ele consegue determinar o estado de cada transação no momento em que ocorrer uma falha no SQL Server.
Redo: Nessa fase o SQL executa uma verificação antecipada do log da transação não confirmada mais antiga até o final, ou seja, ele faz uma validação de qual era a última transação que estava ocorrendo e não foi comitada para tomar a decisão de colocar aquela database no estado que ela estava no exato momento em que ocorreu a falha, assim ele refaz todas operações confirmadas.
Undo: Nessa fase o SQL percorre o log em um sentido reverso, ele identifica cada transação que estava ativa no momento da falha, porém não comitada e faz um rollback dessas operações.
Portanto, baseado nesse modelo o tempo que a Engine do SQL leva para que ele se recupere de uma reinicialização inesperada é proporcional ao tamanho da transação ativa mais longa no sistema no momento em que ocorreu a falha, ele realiza o rollback de todas transações que não foram comitadas. Esse processo de recuperação pode levar muito tempo se existirem transações de longa duração no momento da falha.
Agora, falando sobre o processo de recuperação usando o ADR.
O ADR aborda as fases acima porém remodelando totalmente o processo de recuperação, para isso temos as mesmas 3 fases de Analysis, Redo e Undo, porém com melhorias:
Analysis: O processo utilizado é o mesmo, porém com a adição da recriação do stream de log do sistema (SLOG) e também realiza uma cópia de registros de log para operações sem controle de versão.
Redo: O processo de redo é dividido em duas subfases:
Subfase 1: Refaz o SLOG que é baseado na transação não confirmada mais antiga até o último ponto de verificação, portanto o Redo acaba sendo mais rápido pois ele precisa apenas processar alguns registros do SLOG.
Subfase 2: O processo de redo do log de transações começa do último ponto de verificação e não mais da transação não comitada mais antiga.
Undo: O processo de Undo com o ADR é concluído quase que instantaneamente utilizando o SLOG para que seja possível desfazer operações sem controle de versão.
Como podemos ver, o ADR é uma funcionalidade poderosa do SQL Server que pode ajudar as organizações a melhorar a confiabilidade do banco de dados, reduzir o tempo de inatividade e simplificar a manutenção do banco de dados. Ao habilitar o ADR e seguir as melhores práticas de backup e recuperação de dados, as organizações podem proteger seus dados críticos e garantir a continuidade dos negócios.
Sendo assim, finalizamos a postagem sobre como funciona o processo de recuperação da feature Accelerated Database Recovery (ADR) em um banco de dados SQL.
Espero que tenham gostado!
Aguardem que vem mais conteúdo pela frente!


