Diagnóstico de SQL Server adicional ao detectar problemas de E/s unreported

Traduções deste artigo Traduções deste artigo
ID do artigo: 826433 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Neste artigo

Sintomas

Se perdido causa de problemas do sistema operacional, driver ou hardware escrever condições ou condições de leitura obsoletas, que você poderá ver mensagens de erro relacionadas à integridade de dados como erros 605, 823, 3448. Você pode receber mensagens de erro semelhantes aos exemplos a seguir:
07-2003-24 16:43:04.57 spid63 Getpage: bstat = 0 x 9, sstat = 0 x 800, cache
07-2003-24 16:43:04.57 spid63 pageno é/deve ser: objid é/deve ser:
07-2003-24 16:43:04.57 spid63 (1:7040966)/(1:7040966) 2093354622/2039782424
07-2003-24 16:43:04.57 spid63... IAM indica essa página é alocada para este objeto
07-2003-24 16:52:37.67 spid63 erro: 605, gravidade: 21, estado: 1
07-2003-24 16:52:37.67 spid63 tenta buscar página lógica (1:7040966) no banco de dados 'pubs' pertence ao objeto 'autores', não para títulos' objeto'
07-2003-24 16:52:40.99 spid63 erro: 3448, gravidade: 21, estado: 1
2003-07-24 16:52:40.99 spid63 não pode desfazer o registro de log (63361:16876:181), para ID de transação (0:159696956), na página (1:7040977), banco de dados 'pubs' (banco de dados ID 12). Página informações: LSN = (63192:958360:10), tipo = 2. Registrar informações: OpCode = 2, contexto 1
07-2003-09 14:31:35.92 spid66 erro: 823, gravidade: 24, estado: 2
07-2003-09 14:31:35.92 spid66 erro de E/s (ID de página inválida) detectado durante a leitura no deslocamento 0x00000016774000 no arquivo 'h:\sql\MSSQL\data\tempdb.mdf'

Resolução

Informações sobre o service pack

Para resolver esse problema, obtenha o service pack mais recente para o Microsoft SQL Server 2000. Para obter informações adicionais, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
290211Como obter o SQL Server 2000 service pack mais recente

Criar informações

A Microsoft lançou uma versão do SQL Server que apresenta recursos de rastreamento estendidos. Esses recursos são projetados para ajudá-lo a solucionar mensagens de erro descritas na seção "Sintomas". Se você não suspeitar de um sistema operacional ou um problema de hardware de releated, talvez você não precise aplicar esta compilação.

A versão em inglês dessa compilação apresenta os atributos de arquivo (ou posteriores) listados na tabela a seguir. As datas e horas desses arquivos são listadas na acordo hora universal coordenada (UTC). Quando você exibe as informações do arquivo, ele é convertido para a hora local. Para encontrar a diferença entre o UTC e a hora local, use a guia fuso horário na ferramenta Data e hora no painel de controle.
   Date         Time   Version         Size             File name
   -------------------------------------------------------------------------
   31-May-2003  18:45  2000.80.818.0      78,400 bytes  Console.exe      
   25-Jun-2003  01:01  2000.80.818.0      33,340 bytes  Dbmslpcn.dll     
   25-Apr-2003  02:12                    786,432 bytes  Distmdl.ldf
   25-Apr-2003  02:12                  2,359,296 bytes  Distmdl.mdf
   30-Jan-2003  01:55                        180 bytes  Drop_repl_hotfix.sql
   23-Jun-2003  22:40  2000.80.837.0   1,557,052 bytes  Dtsui.dll        
   23-Jun-2003  22:40  2000.80.837.0     639,552 bytes  Dtswiz.dll       
   24-Apr-2003  02:51                    747,927 bytes  Instdist.sql
   03-May-2003  01:56                      1,581 bytes  Inst_repl_hotfix.sql
   08-Feb-2003  06:40  2000.80.765.0      90,692 bytes  Msgprox.dll      
   01-Apr-2003  02:07                      1,873 bytes  Odsole.sql
   05-Apr-2003  01:46  2000.80.800.0      62,024 bytes  Odsole70.dll     
   07-May-2003  20:41  2000.80.819.0      25,144 bytes  Opends60.dll     
   02-Apr-2003  21:48  2000.80.796.0      57,904 bytes  Osql.exe         
   02-Apr-2003  23:15  2000.80.797.0     279,104 bytes  Pfutil80.dll     
   22-May-2003  22:57                     19,195 bytes  Qfe469571.sql
   11-Jul-2003  17:04                  1,084,147 bytes  Replmerg.sql
   04-Apr-2003  21:53  2000.80.798.0     221,768 bytes  Replprov.dll     
   08-Feb-2003  06:40  2000.80.765.0     307,784 bytes  Replrec.dll      
   11-Jul-2003  16:56                  1,085,925 bytes  Replsys.sql
   01-Jun-2003  01:01  2000.80.818.0     492,096 bytes  Semobj.dll       
   31-May-2003  18:27  2000.80.818.0     172,032 bytes  Semobj.rll
   29-May-2003  00:29                    115,944 bytes  Sp3_serv_uni.sql
   01-Jun-2003  01:01  2000.80.818.0   4,215,360 bytes  Sqldmo.dll       
   07-Apr-2003  17:44                     25,172 bytes  Sqldumper.exe    
   19-Mar-2003  18:20  2000.80.789.0      28,672 bytes  Sqlevn70.rll
   02-Jul-2003  00:18  2000.80.834.0     180,736 bytes  Sqlmap70.dll     
   08-Feb-2003  06:40  2000.80.765.0      57,920 bytes  Sqlrepss.dll     
   01-Aug-2003  00:50  2000.80.847.0   7,594,065 bytes  Sqlservr.exe     
   25-Jul-2003  21:44  2000.80.845.0     590,396 bytes  Sqlsort.dll      
   08-Feb-2003  06:40  2000.80.765.0      45,644 bytes  Sqlvdi.dll       
   25-Jun-2003  01:01  2000.80.818.0      33,340 bytes  Ssmslpcn.dll     
   01-Jun-2003  01:01  2000.80.818.0      82,492 bytes  Ssnetlib.dll     
   01-Jun-2003  01:01  2000.80.818.0      25,148 bytes  Ssnmpn70.dll     
   01-Jun-2003  01:01  2000.80.818.0     158,240 bytes  Svrnetcn.dll     
   31-May-2003  18:59  2000.80.818.0      76,416 bytes  Svrnetcn.exe     
   30-Apr-2003  23:52  2000.80.816.0      45,132 bytes  Ums.dll          
   02-Jul-2003  00:19  2000.80.834.0      98,816 bytes  Xpweb70.dll
Observação devido de dependências de arquivo, o hotfix mais recente ou recurso que contém esses arquivos também podem conter arquivos adicionais.

A Microsoft confirmou que sob cargas de E/s pesadas e raras, algumas plataformas de hardware podem retornar uma obsoletas ler. Se o diagnóstico estendido indica uma possível obsoletas perdidos/leitura escreva condição, contate seu fornecedor de hardware para acompanhamento imediato backup e testar com o utilitário SQLIOStress.

Situação

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na seção "Aplica-se a".

Esse problema foi corrigido primeiro no Microsoft SQL Server 2000 Service Pack 4.

Mais Informações

Se você receber uma das mensagens de erro mencionadas na seção "Sintomas" e não pode ser explicadas por um evento como uma falha de unidade física, em seguida, examine problemas conhecidos com o SQL Server, o sistema operacional, os drivers e o hardware. SQL Server adicionais diagnóstico foram adicionado nesta compilação ajudar a detectar E/s externos problemas relacionados. Tente o diagnóstico adicional fornecer informações sobre as duas condições a seguir:
  • Perdido gravação: Uma chamada bem-sucedida para a API WriteFile , mas o sistema operacional, um driver ou o controlador de armazenamento em cache não corretamente liberar os dados para a mídia física, embora o SQL Server é informado de que a gravação foi bem-sucedida.
  • Obsoleta leitura: Uma chamada bem-sucedida para a API ReadFile , mas o sistema operacional, um driver ou o controlador de armazenamento em cache retorna incorretamente uma versão mais antiga dos dados.
Por exemplo, a Microsoft confirmou cenários em que uma chamada WriteFile API retorna como bem-sucedida, mas uma leitura de imediata, bem-sucedida do mesmo bloco de dados retorna dados mais antigos, incluindo dados que provavelmente são armazenados em um hardware ler cache. Às vezes, esse problema ocorre devido a um problema de leitura de cache. Em outros casos, os dados de gravação, na verdade, nunca são gravados para o disco físico.

Para ativar diagnóstico adicional para esses tipos de problemas, o SQL Server adicionou sinalizador de rastreamento 818. Você pode especificar o sinalizador de rastreamento 818 como um parâmetro de inicialização,-T818, para o computador que esteja executando o SQL Server, ou você pode executar a seguinte instrução:
DBCC TRACEON(818, -1)

Sinalizador de rastreamento 818 permite que um buffer de memória que é usado para o último 2.048 bem-sucedida escrever as operações executadas pelo computador executando o SQL Server, não incluindo workfile E/s e classificação de controle. Quando ocorrem erros, como erro 605, 823 ou 3448, valor de número (LSN) do buffer de entrada de log seqüência é comparado com a lista de gravação recente. Se o LSN recuperado durante a operação de leitura for mais antigo do que especificado durante a operação de gravação, uma nova mensagem de erro é registrada no log de erro do SQL Server. A maioria das operações de gravação do SQL Server ocorrem como pontos de verificação ou como gravações lentas. Uma gravação lenta é uma tarefa em segundo plano que usa a E/s assíncrona. A implementação do buffer de anel é leve, tornando assim o desempenho que afetam o sistema insignificante.

A seguinte mensagem indica que o SQL Server não recebeu um erro da chamada da API WriteFile ou ReadFile API chamada. No entanto, quando o LSN foi revisado, o valor não está correto:
SQL Server detectou um nível de sistema operacional/hardware unreported ler ou gravar problema na página (1:75007) do banco de dados 12
LSN retornado (63361:16876:181), LSN esperado (63361:16876:500)
Contate o fornecedor do hardware e considere desabilitar mecanismos de cache para corrigir o problema
Neste ponto, o cache de leitura contém uma versão mais antiga da página ou os dados não foram gravados corretamente o disco físico. Em ambos os casos (uma gravação perdidas ou uma leitura desatualizados), SQL Server informa um problema externo com o sistema operacional, o driver ou as camadas de hardware.

Se erro 3448 ocorrer ao tentar reverter uma transação que tenha 605 erro ou erros 823, o computador que está executando o SQL Server automaticamente fecha o banco de dados e tenta abrir e recuperar o banco de dados. A primeira página experiências 605 erro ou erros 823 é considerada uma página defeituosa, e a identificação de página é mantida pelo computador executando o SQL Server. Durante a recuperação (antes da fase de refazer) quando a identificação de página inválida é lido, os detalhes sobre o cabeçalho da página principais são registrados no log de erro do SQL Server. Esta ação é importante porque ela ajuda a distinguir entre cenários perdidas gravar e ler desatualizados.

Você pode ver os seguintes dois comportamentos comuns em cenários de leitura desatualizados:
  • Se os arquivos de banco de dados são fechados e, em seguida, abertos, o correto e mais recentemente gravados dados serão retornados durante a recuperação.
  • Quando você emitir um ponto de verificação e execute a instrução DBCC DROPCLEANBUFFERS (para remover todas as páginas de banco de dados da memória) e execute a instrução DBCC CHECKDB no banco de dados, os dados mais recentemente escritos são retornados.
Os comportamentos mencionados no parágrafo anterior indicam um problema de cache de leitura e eles são solucionados com freqüência, desativando o cache de leitura. As ações que são descritas no parágrafo anterior normalmente forçar uma invalidação de cache e as leituras bem-sucedidas ocorrerem mostrar que a mídia física é atualizada corretamente. O comportamento perdidas gravar ocorre quando a página que está lendo ainda é a versão mais antiga dos dados, mesmo após uma liberação forçada dos mecanismos de cache.

Às vezes, o problema não pode ser específico para um cache de hardware. Talvez seja um problema com um driver de filtro. Nesses casos, examine seu software, incluindo utilitários de backup e o software antivírus e, em seguida, verificar se há problemas com o driver de filtro.

Microsoft também foi observado condições que não atendem aos critérios para 605 erro ou erros 823 mas são causadas pela atividade de leitura desatualizados ou perdidas gravação mesma. Em alguns casos, uma página parece ser atualizada duas vezes, mas com o LSN mesmo valor. Esse comportamento pode ocorrer se a Identificação de objeto e a Identificação de página são correta (página já alocada para o objeto), e uma alteração é feita na página e liberada para o disco. A recuperação página próxima retorna uma imagem mais antiga, e em seguida, uma segunda alteração é feita. O log de transação do SQL Server mostra que a página foi atualizada duas vezes com o mesmo valor LSN. Esta ação se torna um problema ao tentar restaurar uma seqüência de log de transação ou com problemas de consistência de dados, como falhas de chaves externas ou entradas de dados ausente. A seguinte mensagem de erro ilustra um exemplo dessa condição:
Erro: 3456, gravidade: 21, estado: 1 não pode refazer o registro de log (276666:1664:19), para identificação de transação (0:825853240), na página (1:1787100), 'autores' (7) do banco de dados. Página: LSN = (276658:4501:9), tipo = 1. Log: OpCode = 4, 2, contexto PrevPageLSN: (275565:3959:31)

Alguns cenários são descritos mais detalhadamente nas seguintes listas:
  • LSN Sequence		Action
    1			Checkpoint
    2			Begin Transaction
    3			Table created or truncated
    4			Inserts (Pages allocated)
    5			Newly allocated page written to disk by Lazy Writer
    6			Select from table ? Scans IAM chain, newly allocated page read back from disk (LRU | HASHED = 0x9 in getpage message), encounters Error 605 - Invalid Object ID
    7			Rollback of transaction initiated
    
  • LSN Sequence		Action
    1			Checkpoint
    2			Begin Transaction
    3			Page Modification
    4			Page written to disk by Lazy Writer
    5			Page read in for another modification (stale image returned)
    6			Page Modified for a second time but because of stale image does not see first modification 
    7			Rollback ? Fails ? Transaction Log shows two different log records with the same PREV LSN for the page
    
Operadores do SQL Server 'classificação' executam atividades de E/s, principalmente para e do banco de dados tempdb . Essas operações de E/s são semelhantes às operações de E/s de buffer; no entanto, eles já foram criados para usar lógica de tentativa de leitura para tentar resolver problemas semelhantes. O diagnóstico adicional explicado neste artigo não se aplicam para essas operações de E/s.

Microsoft tenha observado que a causa raiz para a seguinte classificação ler falhas é geralmente uma leitura desatualizados ou uma gravação perdidas:
2003-04-01 20:13:31.38 spid122 SQL Server declaração: arquivo: <p:\sql\ntdbms\storeng\drs\include\record.inl>, linha = 1447 falha declaração = ' m_SizeRec > 0 && m_SizeRec < = MAXDATAROW '.

2003-03-29 09:51:41.12 spid57 classificar ler falha (ID de página inválida). PageID = (0x1:0x13e9), dbid = 2, arquivo = e:\program Files\Microsoft SQL Server\mssql\data\tempdb.mdf. Tentando novamente.

2003-03-29 09:51:41.13 spid57 erro: 823, gravidade: 24, estado: 7
Erro de E/s (ID de página inválida) do 2003-03-29 09:51:41.13 spid57 detectado durante a leitura no deslocamento 0x000000027d2000 no arquivo 'e:\program Files\Microsoft SQL Server\mssql\data\tempdb.mdf'

* 00931097 Module(sqlservr+00531097) (utassert_fail + 000002E3)
* 005B1DA8 Module(sqlservr+001B1DA8) (RecBase::Resize + 00000091)
* 00407EE7 Module(sqlservr+00007EE7) (RecBase::LocateColumn + 00000012)
* 00852520 Module(sqlservr+00452520) (mergerow + 000000A4)
* 008522B3 Module(sqlservr+004522B3) (merge_getnext + 00000285)
* 0085207D Module(sqlservr+0045207D) (mergenext + 0000000D)
* 004FC5FB Module(sqlservr+000FC5FB) (getsorted + 00000021)

Os clientes que tiveram esses erros de classificação com freqüência resolveu os problemas, movendo tempdb para uma unidade local não-cache ou desabilitando os mecanismos de cache de leitura.

Porque ler um desatualizados ou uma gravação perdidas resultados no armazenamento de dados que não é esperado, uma grande variedade de comportamentos podem ocorrer. Ele pode aparecer como dados ausentes, mas alguns dos efeitos mais comuns de dados ausentes aparecem como corrupções de índice, como erro 644 ou 625 de erro:
Erro 644 gravidade nível 21 mensagem de texto não foi possível localizar a entrada de índice para RID ' %. * hs 'no índice de página % S_PGID, identificação do índice % 1!, banco de dados' %. * ls'.
Erro 625 gravidade nível 21 texto da mensagem não é possível recuperar a linha de página % S_PGID por RID porque slotid (% d) não é válido.
Alguns clientes informaram ausente linhas depois que eles executarem atividades de contagem de linha. Esse problema ocorre devido a uma gravação perdida. Talvez a página deveria ser vinculados a cadeia de página de índice de cluster. Se a gravação foi fisicamente perdida, os dados também serão perdidos.

importante Se você experimentar qualquer um dos comportamentos ou se você suspeita de problemas semelhantes em conjunto com desabilitar mecanismos de cache, Microsoft recomenda que você obtenha a atualização mais recente do SQL Server e o Stress Simulator mais recente do SQL Server E/s. A Microsoft também encoraja que você executar uma revisão estrita do seu sistema operacional e suas configurações associadas.

Para obter mais informações, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
231619COMO: usar o utilitário SQLIOStress para enfatizar um subsistema de disco como o SQL Server
SQL Server requer sistemas para oferecer suporte a ? entrega de mídia estável garantida ? conforme descrito no programa do Microsoft SQL Server Always-On armazenamento Solution revisão. FOPara obter mais informações sobre os requisitos de entrada e saídas para o mecanismo de banco de dados do SQL Server, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
967576Requisitos do Microsoft SQL Server Database Engine entrada/saída

Propriedades

ID do artigo: 826433 - Última revisão: terça-feira, 5 de maio de 2009 - Revisão: 7.0
A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Express
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2000 Service Pack 3
Palavras-chave: 
kbmt kbhotfixserver kbqfe kbbug kbhardware kbfilter kbdriver kbdatabase kbsysadmin kbinfo KB826433 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 826433

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com