Erro MSSQL: erro de E / S baseado em consistência - pode ser causado por um problema MSSQL ou OS?

3

Isso é o que eu vi no log de erros do Windows:

SQL Server detected a logical consistency-based I/O error: incorrect checksum (expected: 0x19fedd20; actual: 0x19fed5e3). It occurred during a read of page (1:1764) in database ID 6 at offset 0x00000000dc8000 in file 'D:\mssql\local_repository_pbdiffimport.mdf'. Additional messages in the SQL Server error log or system event log may provide more detail. This is a severe error condition that threatens database integrity and must be corrected immediately. Complete a full database consistency check (DBCC CHECKDB). This error can be caused by many factors; for more information, see SQL Server Books Online.

eu corri

dbcc checkdb

que me disse que eu deveria restaurar com a opção REPAIR_ALLOW_DATA_LOSS, então eu finalmente corri

DBCC CHECKDB (my_db_name, REPAIR_ALLOW_DATA_LOSS) WITH NO_INFOMSGS

Mas isso resultou em cerca de 2.000 linhas sendo perdidas. Eu restaurei um backup, mas agora estou com medo de que isso aconteça novamente, pois já tínhamos um problema de consistência no mesmo banco de dados há cerca de 2 semanas, mas aconteceu em um índice (índices recriados resolveram o problema).

Investigamos os discos - o RAID5 parece ser bom, sem erros, e nenhum dos utilitários de verificação de disco revelou qualquer problema de hardware.

Isso pode ser causado pelo sistema operacional (Windows Server 2003) ou pelo MSSQL (MSSQL Server 2005)?

    
por hansaplast 02.06.2010 / 08:57

3 respostas

5

A consistência pode ser causada por qualquer um dos fatores hardware ou software. Veja os logs do SQL para investigar o que potencialmente causou o problema.

Minhas sugestões:

  • Assegure-se de que a opção Database, Page_Verify, esteja configurada como CHECKSUM. Isso verifica todas as gravações antes que elas aconteçam e é a configuração padrão no SQL Server 2005.
  • Backup diariamente ou várias vezes por dia (dependendo da necessidade)
  • Configurar planos de manutenção para verificar sua consistência diariamente no banco de dados
  • Mantenha seu Windows Server e Sql Server atualizados com patches, também o 3rd Software.
  • Leia " Dicas importantes para a manutenção eficaz do banco de dados ", pois explica a maioria dos meus sugestões em maiores detalhes.

Eu recomendo muito este artigo porque ele foi escrito para ajudar SysAdmins que não sabem gerenciar um servidor de banco de dados.

    
por 02.06.2010 / 16:23
3

Você provavelmente tem eventos de hardware informados no log de eventos do sistema, você deve investigá-los.

Execute o SQLIOSIM para enfatizar o disco por +24 horas. Se o SQLIOSIM reportar erro, você precisará entrar em contato com seu fornecedor de hardware para investigar. Pode ser do disco, da matriz RAID, dos drivers. O sistema operacional e o SQL são os culpados menos prováveis.

Consulte Como usar o utilitário SQLIOSim para simular a atividade do SQL Server em um subsistema de disco .

    
por 02.06.2010 / 20:39
2

Definitivamente, não é um problema do SQL Server (bem, muito, muito improvável). TAMBÉM não é provável que seja um problema do sistema operacional - simplesmente porque as gravações ruins são muito óbvias para sobreviver como um erro.

Isso aponta seriamente na direção do hardware. RAM (você usa ECC?) É um possível culpado, assim como quaisquer outros tipos de problemas relacionados (controlador RAID? Discos?)

    
por 02.06.2010 / 21:52