Erro MSSQLSERVER 823MSSQLSERVER error 823

Aplica-se a:Applies to: simSQL ServerSQL Server (todas as versões compatíveis) yesSQL ServerSQL Server (all supported versions) Aplica-se a:Applies to: simSQL ServerSQL Server (todas as versões compatíveis) yesSQL ServerSQL Server (all supported versions)

DetalhesDetails

AtributoAttribute ValorValue
Nome do ProdutoProduct Name SQL ServerSQL Server
ID do eventoEvent ID 823823
Origem do EventoEvent Source MSSQLSERVERMSSQLSERVER
ComponenteComponent SQLEngineSQLEngine
Nome simbólicoSymbolic Name B_HARDERRB_HARDERR
Texto da mensagemMessage Text O sistema operacional retornou o erro %ls para o SQL Server durante um %S_MSG no deslocamento %#016I64x do arquivo '%ls'.The operating system returned error %ls to SQL Server during a %S_MSG at offset %#016I64x in file '%ls'. Additional messages in the SQL Server error log and system event log may provide more detail.Additional messages in the SQL Server error log and system event log may provide more detail. Essa é uma condição de erro grave em nível de sistema que ameaça a integridade do banco de dados e deve ser corrigida imediatamente.This is a severe system-level error condition that threatens database integrity and must be corrected immediately. Faça uma verificação completa da consistência do banco de dados (DBCC CHECKDB).Complete a full database consistency check (DBCC CHECKDB). Esse erro pode ter sido causado por vários fatores. Para obter mais informações, consulte os Manuais Online do SQL Server.This error can be caused by many factors; for more information, see SQL Server Books Online.

ExplicaçãoExplanation

O SQL Server usa APIs do Windows (por exemplo, ReadFile, WriteFile, ReadFileScatter, WriteFileGather) para executar operações de E/S de arquivo.SQL Server uses Windows APIs (for example, ReadFile, WriteFile, ReadFileScatter, WriteFileGather) to perform file I/O operations. Depois de executar essas operações de E/S, o SQL Server verifica se há quaisquer condições de erro associadas a essas chamadas à API.After performing these I/O operations, SQL Server checks for any error conditions associated with these API calls. Se as chamadas à API falharem com um erro do sistema operacional, o SQL Server relatará o Erro 823.If the API calls fail with an Operating System error, then SQL Server reports Error 823.

A mensagem de erro 823 contém as seguintes informações:The 823 error message contains the following information:

  • O arquivo de banco de dados no qual a operação de E/S foi executadaThe database file against which the I/O operation was performed
  • O deslocamento dentro do arquivo em que ocorreu a tentativa de realização da operação de E/S.The offset within the file where the I/O operation was attempted. Esse é o deslocamento de bytes físicos do início do arquivo.This is the physical byte offset from the start of the file. Dividir esse número por 8192 fornecerá o número da página lógica afetada pelo erro.Dividing this number by 8192 will give you the logical page number that is affected by the error.
  • Se a operação de E/S é uma solicitação de leitura ou gravaçãoWhether the I/O operation is a read or write request
  • O código de erro do sistema operacional e a descrição do erro entre parêntesesThe Operating System error code and error description in parentheses

Erro do sistema operacional: Uma chamada à API do Windows de leitura ou gravação não foi bem-sucedida e o SQL Server encontra um erro do sistema operacional relacionado à chamada à API do Windows.Operating system error: A read or write Windows API call is not successful, and SQL Server encounters an operating system error that is related to the Windows API call. A seguinte mensagem é um exemplo de um erro 823:The following message is an example of an 823 error:

Error: 823, Severity: 24, State: 2.
2010-03-06 22:41:19.55 spid58 The operating system returned error 1117 (The request could not be performed because of an I/O device error.) to SQL Server during a read at offset 0x0000002d460000 in file 'e:\program files\Microsoft SQL Server\mssql\data\mydb.MDF'. Additional messages in the SQL Server error log and system event log may provide more detail. This is a severe, system-level error condition that threatens database integrity and must be corrected immediately. It is recommended to complete a full database consistency check (DBCC CHECKDB). This error can be caused by many factors; for more information, see SQL Server Books Online.

Você pode ou não ver erros da instrução DBCC CHECKDB no banco de dados associado ao arquivo na mensagem de erro.You may or may not see errors from the DBCC CHECKDB statement on the database that is associated with the file in the error message. Você pode executar a instrução DBCC CHECKDB quando vir um erro 823.You can run the DBCC CHECKDB statement when you see an 823 error. Se a instrução DBCC CHECKDB não relatar erros, você provavelmente terá um problema de sistema intermitente ou um problema de disco.If the DBCC CHECKDB statement does not report any errors, you probably have an intermittent system problem or a disk problem.

Informações de diagnóstico adicionais para erros 823 podem ser gravadas no arquivo de log de erros do SQL Server quando você usa o sinalizador de rastreamento 818.Additional diagnostic information for 823 errors may be written to the SQL Server error log file when you use trace flag 818. Para obter mais informações, confira KB 826433: Diagnóstico do SQL Server adicionado para detectar problemas de E/S não reportadosFor more information, see KB 826433: Additional SQL Server diagnostics added to detect unreported I/O problems

CausaCause

A mensagem de erro 823 geralmente indica que há um problema com o sistema de armazenamento subjacente, o hardware ou um driver que está no caminho da solicitação de E/S.The 823 error message usually indicates that there is a problem with underlying storage system or the hardware or a driver that is in the path of the I/O request. Você poderá encontrar esse erro quando houver inconsistências no sistema de arquivos ou se o arquivo de banco de dados estiver danificado.You can encounter this error when there are inconsistencies in the file system or if the database file is damaged. No caso de uma leitura de arquivo, o SQL Server já terá tentado novamente a solicitação de leitura quatro vezes antes de retornar o 823.In the case of a file read, SQL Server will have already retried the read request four times before it returns 823. Se a operação de repetição tiver êxito, a consulta não falhará, mas a mensagem 825 será gravada no ERRORLOG e no Log de eventos.If the retry operation succeeds, the query will not fail but message 825 will be written into the ERRORLOG and Event Log.

Ação do usuárioUser Action

  • Examine a tabela suspect_pages no MSDB para outras páginas que estão encontrando esse problema (no mesmo banco de dados ou em bancos de dados diferentes).Review the suspect_pages table in MSDB for other pages that are encountering this problem (in the same database or different databases).
  • Verifique a consistência dos bancos de dados localizados no mesmo volume (como o relatado na mensagem 823) usando o comando DBCC CHECKDB.Check the consistency of databases located on the same volume (as the one reported in the 823 message) using DBCC CHECKDB command. Se você encontrar inconsistências do comando DBCC CHECKDB, use as diretrizes de Como solucionar problemas de consistência do banco de dados relatados pelo DBCC CHECKDB.If you find inconsistencies from the DBCC CHECKDB command, use the guidance from How to troubleshoot database consistency errors reported by DBCC CHECKB.
  • Examine os logs de eventos do Windows para verificar se há erros ou mensagens relatadas pelo sistema operacional, um dispositivo de armazenamento ou um driver de dispositivo.Review the Windows Event logs for any errors or messages reported from the Operating System or a Storage Device or a Device Driver. Se eles estiverem relacionados a esse erro de alguma maneira, resolva esses erros primeiro.If they are related to this error in some manner, address those errors first. Por exemplo, além da mensagem 823, você também pode observar um evento como "O driver detectou um erro de controlador em \Device\Harddisk4\DR4" relatado pela origem do disco no log de eventos.For example, apart from the 823 message, you may also notice an event like "The driver detected a controller error on \Device\Harddisk4\DR4" reported by the Disk source in the Event Log. Nesse caso, você precisará avaliar se esse arquivo está presente neste dispositivo e corrigir os erros de disco primeiro.In that case, you have to evaluate if this file is present on this device and then first correct those disk errors.
  • Use o utilitário SQLIOSim para descobrir se esses erros 823 podem ser reproduzidos fora das solicitações regulares de E/S do SQL Server.Use the SQLIOSim utility to find out if these 823 errors can be reproduced outside of regular SQL Server I/O requests. O utilitário SQLIOSim é fornecido com o SQL Server 2008 e versões posteriores para que não haja necessidade de um download separado.The SQLIOSim utility ships with SQL Server 2008 and later versions so there is no need for a separate download. Normalmente, você pode encontrá-lo na pasta C:\Program Files\Microsoft SQL Server\MSSQLxx.MSSQLSERVER\MSSQL\Binn.You can typically find it in your C:\Program Files\Microsoft SQL Server\MSSQLxx.MSSQLSERVER\MSSQL\Binn folder.
  • Trabalhe com o fabricante do dispositivo ou fornecedor de hardware para garantir queWork with your hardware vendor or device manufacturer to ensure
    • Os dispositivos de hardware e a configuração estejam em conformidade com os requisitos de E/S do SQL ServerThe hardware devices and the configuration conforms to the I/O requirements of SQL Server
    • Os drivers de dispositivo e outros componentes de software de suporte de todos os dispositivos no caminho de E/S estejam atualizadosThe device drivers and other supporting software components of all devices in the I/O path are up to date
  • Se o fabricante do dispositivo ou fornecedor de hardware fornecer a você utilitários de diagnóstico, use-os para avaliar a integridade do sistema de E/SIf the hardware vendor or device manufacturer provided you with any diagnostic utilities, use them to evaluate the health of the I/O system
  • Avalie se há drivers de filtro no caminho dessas solicitações de E/S que encontram problemas.Evaluate if there are filter drivers that exist in the path of these I/O requests that encounter problems.
    • Verifique se há atualizações para esses drivers de filtroCheck if there are any updates to these filter drivers
    • Esses drivers de filtro podem ser removidos ou desabilitados para observar se o problema que resulta no erro 823 desapareceCan these filter drivers be removed or disabled to observe if the problem that results in the 823 error goes away