Quem é o responsável por garantir os dados da minha database?

Ola pessoal,

Iniciando o aprofundamento dos estudos sobre os componentes do SQL Server, vou ser breve em mostrar quem é o responsável por garantir a integridade da minha database. O que muitas vezes vemos errorlog do SQL Server sao essas frases:

Recovery completed for database master (database ID 1) in 2 second(s) (analysis 691 ms, redo 318 ms, undo 602 ms.) This is an informational message only. No user action is required.

ou

1 transactions rolled forward in database ‘AdventureWorksDW’ (6). This is an informational message only. No user action is required.

ou

10 transactions rolled back in database ‘AdventureWorksDW’ (6). This is an informational message only. No user action is required.

Ai eu te pergunto quem realiza essas operaçoes? E voce me responde que isso é de responsabilidade das operacoes UNDO e REDO.

Por parte isso esta certo, mas ainda assim por traz desses dois nomes temos um processo por traz disso tudo chamado de WRITE-AHEAD LOGGING.

Toda essa magica de sincronização acontece graças a esse agente que é garantido que cada mudança ocorrida é enviada primeiramente para o transaction log antes que digamos que esteja como commitada, e que os registros do log são sempre escritos no disco antes que as paginas de dados onde as mudanças foram atualmente feitas sejam escritas.

Vale lembrar que a escrita nas paginas de dados muitas vezes ocorrem de forma assíncrona, pois todas as mudanças podem ser recuperadas do arquivo de log se necessário. É importante lembrar também que o componente de gerenciamento do transaction log gerencia também a operacao de logging, recoverying, e gerenciamento do buffer.
Temos ainda um tipo de wait para ele que se chama WRITELOG. Em um outro post em um outro dia vamos falar um pouco dele.

Espero que tenham gostado desse post, tentei ser o mais simples possivel. A medida que os estudos forem avançando, vou avançando o conteudo dos posts.. so…. stay tuned !!

Att,
Marcos Freccia
[MCTS|MCITP|MCT SQL Server 2008]

 

Advertisements

About Marcos Freccia

MVP em SQL Server (Data Plataform) , especialista em SQL Server, e atualmente trabalhando com Microsoft Azure!

Posted on January 12, 2012, in Administração, MCM, SQL Server Internals and tagged , , , . Bookmark the permalink. Leave a comment.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: