From what I understand, (correct me if I'm wrong...) the log is actively stored in memory and copied to a file on the drive as often as possible.
As transações são sempre protegidas para o disco no log de transações antes de serem consideradas confirmadas no banco de dados. O cache de buffer, por outro lado, vive na memória e reflete o estado atual do banco de dados após as transações terem sido confirmadas e endurecidas no log de transações. O cache de buffer é liberado para o disco durante um ponto de verificação.
Como ele mora na RAM, uma falha no sistema pode fazer com que as informações armazenadas no cache de buffer (e ainda não descarregadas no disco) sejam perdidas. Como tudo o que estava no cache de buffer foi armazenado no log de transações, o SQL é capaz de recuperar todas as transações que foram confirmadas, mas que ainda não foram liberadas para os arquivos de dados no momento da falha.