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!

Anúncios
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 um comentário

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