Recuperação de erros de Memória no SQL Server 2012

Pessoal, no SQL Server 2012 temos uma nova feature bem legal que até então foi muito pouco divulgada, trata-se da recuperação (automática!) de erros de memória.

Antes de falar da feature em sim, temos que entender que existem dois tipos de erro de memória, o soft e o hard. O erro do tipo soft normalmente é causado por alguma falha na transmissão ou armazenamento de um dado, sem ter nenhuma causa grave. Já o erro do tipo hard é causado por uma falha em algum componente físico do computador e costuma ser mais crítico.

Alguns erros de memória já são corrigidos automaticamente por recursos como o ECC, mas outros precisam ser tratados pelas aplicações que estão utilizando aquele dado.

Caso seu hardware suporte um recurso chamado “memory scrubbing“, ele enviará uma notificação para a aplicação, no caso o SQL Server 2012, e este tentará tratar o erro.

Pelo menos por enquanto, o SQL Server só consegue recuperar o erro de memória se a página afetada seja uma página “clean”, ou melhor, não seja uma dirty page, e a recuperação é feita lendo os dados novamente do disco. Nos outros casos o SQL Server receberá a notificação e irá apenas registrá-la.

Para saber se seu ambiente suporta o recurso de recuperação de erros de memória e se algum erro foi detectado/corrigido você pode consultar o error log do SQL Server.

Caso seu ambiente seja compatível com o recurso você verá a mensagem:

Machine supports memory error recovery. SQL memory protection is enabled to recover from memory corruption.

Já quando um erro for detectado e corrigido a mensagem será:

SQL Server has detected hardware memory corruption in database ‘%ls’, file ID: %u, page ID; %u, memory address: 0x%x and has successfully recovered the page.“.

Por fim, se um erro for detectado e não puder ser recuperado, a mensagem será:

Uncorrectable hardware memory corruption detected. Your system may become unstable. Please check the Windows event log for more details.

Outras formas de monitorar esses erros são através de XEvents e também de uma nova procedure para monitoramento do ambiente do SQL Server 2012, mas isso fica para um outro post!

Esse post foi publicado em Artigos, Virtual PASS BR. Bookmark o link permanente.

3 respostas para Recuperação de erros de Memória no SQL Server 2012

  1. Pingback: Melhorias no SQL Server 2012 « Alex Souza

  2. Pingback: Funcionamento da Memória no SQL Server « Alex Souza

  3. Pingback: Recuperação de erros de Memória no SQL Server 2012 – Parte 2 | Vladimir M. B. Magalhães – Learn and Share

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s