Diagnósticos de SQL Server adicionais ao detectar problemas de E/s não reportados

Traduções de Artigos Traduções de Artigos
Artigo: 826433 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

Sintomas

Se a causa de problemas do sistema operativo, controlador ou hardware perdido escreva condições ou condições de leitura obsoletas, que poderá ver mensagens de erro relacionadas com a integridade de dados, tais como erros 605, 823, 3448. Poderá receber mensagens de erro semelhantes aos seguintes exemplos:
07-2003-24 16:43:04.57 spid63 Getpage: bstat = 0x9, sstat = 0 x 800, cache
07-2003-24 16:43:04.57 spid63 pageno is deve ser: objid is deve ser:
07-2003-24 16:43:04.57 spid63 (1:7040966)/(1:7040966) 2093354622/2039782424
... a 2003-07-24 16:43:04.57 spid63 IAM indica a página é atribuída a este objecto
07-2003-24 16:52:37.67 spid63 erro: 605, gravidade: 21, estado: 1
07-2003-24 16:52:37.67 spid63 tentar obter a página lógica (1:7040966) na base de dados 'pubs' pertence ao objecto 'autores', não para o objecto 'títulos'
07-2003-24 16:52:40.99 spid63 erro: 3448, gravidade: 21, estado: 1
Não foi possível 2003-07-24 16:52:40.99 spid63 anular registo (63361:16876:181), para ID de transacção (0:159696956), na página (1:7040977), base de dados 'pubs' (base de dados ID 12). Informações de página: LSN = (63192:958360:10), tipo = 2. Registar 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 ficheiro 'h:\sql\MSSQL\data\tempdb.mdf'

Resolução

Informações sobre Service Packs

Para resolver este problema, obtenha o service pack mais recente do Microsoft SQL Server 2000. Para obter informações adicionais, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
290211Como obter o SQL Server 2000 service pack mais recente

Criar informações

A Microsoft lançou uma versão do SQL Server que inclui capacidades de registo expandido. Estas funcionalidades foram concebidas para ajudar a resolver mensagens de erro descritas na secção "Sintomas". Se não suspeitar de um sistema operativo ou um problema de releated de hardware, poderá não ter que aplicar esta compilação.

A versão inglesa esta compilação tem os atributos de ficheiro (ou posteriores) listados na seguinte tabela. As datas e horas destes ficheiros são indicadas no formato de universal hora (UTC) coordenada Coordinated. Quando visualiza as informações do ficheiro, é convertido para a hora local. Para determinar a diferença entre a UTC e a hora local, utilize o separador fuso horário na ferramenta Data e hora no painel de controlo.
   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
Nota devido de dependências de ficheiros, a correcção mais recente ou funcionalidade que contém estes ficheiros também poderão conter ficheiros adicionais.

A Microsoft confirmou que em raras e grossas cargas de E/s, algumas plataformas de hardware podem devolver uma obsoletas ler. Se o diagnóstico expandido indica uma possível obsoletas perda de leitura/escrita condição, contacte o fornecedor hardware para seguimento imediato cópia e testar com o utilitário SQLIOStress.

Ponto Da Situação

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

Este problema foi corrigido pela primeira vez no Microsoft SQL Server 2000 Service Pack 4.

Mais Informação

Se receber uma das mensagens de erro mencionadas na secção "Sintomas" e não podem ser descritos por um evento como uma falha da unidade física, em seguida, reveja quaisquer problemas conhecidos com o SQL Server, o sistema operativo, os controladores e o hardware. SQL Server adicionais diagnósticos foram adicionados nesta compilação ajudar a detectar E/s relacionadas com problemas externos. Tente o diagnóstico adicional fornecer informações sobre as duas seguintes condições:
  • Perdidos escrita: Uma chamada com êxito para a API WriteFile , mas o sistema operativo, um controlador ou o controlador de colocação em cache não correctamente limpar os dados ao suporte físico, apesar do SQL Server é informado de que a escrita foi bem sucedida.
  • Ler obsoleto: Uma chamada com êxito para API ReadFile , mas o sistema operativo, um controlador ou o controlador cache devolve incorrectamente uma versão mais antiga dos dados.
Por exemplo, a Microsoft confirmou cenários onde uma chamada de WriteFile API devolve como com êxito, mas uma leitura imediata, com êxito do mesmo bloco de dados devolve dados antigos, incluindo dados provavelmente armazenados num cache de leitura de hardware. Por vezes, este problema ocorre devido a um problema de cache de leitura. Noutros casos, os dados de escrita realmente nunca são escritos no disco físico.

Para activar diagnósticos adicionais para estes tipos de problemas, o SQL Server adicionou o sinalizador de rastreamento 818. Pode especificar o sinalizador de rastreamento 818 como um parâmetro de arranque,-T818, o computador que está a executar o SQL Server, ou pode executar a seguinte instrução:
DBCC TRACEON(818, -1)

Sinalizador de rastreamento 818 permite uma memória intermédia anel de memória utilizada para controlar que operações executadas pelo computador com o SQL Server, não incluindo ordenar e workfile E/s de escrever o último 2.048 com êxito. Quando ocorrem erros, tais como erro 605, 823 ou 3448, o valor de número (LSN) de sequência da memória intermédia entrada registo é comparado com a lista de escrita recente. Se LSN que é obtido durante a operação de leitura for mais antigo do que o especificado durante a operação de escrita, uma nova mensagem de erro é registada no registo de erro do SQL Server. A maior parte das operações de escrita do SQL Server ocorrem como pontos de verificação ou operações de escrita lenta. Uma escrita lenta é uma tarefa de segundo plano utiliza E/s assíncrona. A implementação da memória intermédia anel é simples, tornando assim o desempenho afecta no sistema insignificantes.

A seguinte mensagem indica que o SQL Server não recebeu um erro de chamada de API WriteFile ou a chamada de ReadFile API. No entanto, quando o LSN foi revista, o valor não está correcto:
SQL Server detectou um nível de sistema operativo/hardware não reportado ler ou escrever problema na página (1:75007) da base de dados de 12
LSN devolvido (63361:16876:181), LSN esperado (63361:16876:500)
Contacte o fabricante do hardware e considere desactivar colocação em cache mecanismos para corrigir o problema
Neste ponto, a cache leitura contém uma versão mais antiga da página ou os dados não foram correctamente escritos no disco físico. Em qualquer dos casos (uma perda de escrita ou uma leitura obsoletos), SQL Server indica um problema com o sistema operativo, o controlador ou as camadas de hardware externo.

Se 3448 erro ocorrer quando tentar anular uma transacção que tenha erro 605 ou erro 823, o computador com o SQL Server automaticamente fecha a base de dados e tenta abrir e recuperar a base de dados. A primeira página experiências erro 605 ou erro 823 é considerada uma página incorrecta e o id de página é mantido pelo computador com o SQL Server. Durante a recuperação (antes da fase de refazer) quando o id de página inválida é lido, os detalhes sobre o cabeçalho de página principais são registados no registo de erro do SQL Server. Esta acção é importante porque ajuda a distinguir entre cenários de perda de escrita e leitura obsoletos.

Poderá ver os seguintes comportamentos comuns dois cenários de leitura obsoletos:
  • Se os ficheiros de base de dados estão fechados e, em seguida, abertos, a pasta e mais recentemente escritos dados são devolvidos durante a recuperação.
  • Quando emitir um ponto de verificação e executa a declaração DBCC DROPCLEANBUFFERS (para remover todas as páginas de base de dados da memória) e, em seguida, execute a instrução DBCC CHECKDB na base de dados, os dados mais recentemente escritos são devolvidos.
Os comportamentos mencionados no parágrafo anterior indicam um problema de cache de leitura e são frequentemente são resolvidos desactivando a cache de leitura. As acções descritas no parágrafo anterior, normalmente, forçar a invalidação de cache e o êxito lê ocorridos mostrar que o suporte físico é actualizado correctamente. Este comportamento perdem-se menos ocorre quando a página é reproduzir ainda é a versão anterior dos dados, mesmo depois de uma limpeza forçada dos mecanismos de colocação em cache.

Por vezes, o problema poderá não ser uma cache de hardware específico. Poderá ser um problema com um controlador de filtro. Nesses casos, reveja o software, incluindo utilitários de cópia de segurança e software anti-vírus e, em seguida, verificar se existem problemas com o controlador de filtro.

Microsoft também tem anotados condições que não cumprem os critérios para erro 605 ou erro 823 mas causadas pela actividade de leitura obsoletos ou perdeu-se menos mesma. Em alguns casos, aparece uma página ser actualizado duas vezes, mas com LSN mesmo valor. Este comportamento pode ocorrer se o ID de objecto e o ID de página estão correcta (página já atribuída ao objecto) e uma alteração é efectuada para a página e descarregada para o disco. A obtenção página seguinte devolve uma imagem mais antiga e, em seguida, uma segunda alteração é efectuada. O registo de transacções do SQL Server mostra que a página foi actualizada duas vezes com o mesmo valor LSN. Esta acção torna-se um problema quando tenta restaurar uma sequência de registo de transacções ou com problemas de consistência de dados, como falhas de chaves externas ou entradas de dados em falta. A seguinte mensagem de erro mostra um exemplo desta condição:
Erro: 3456, gravidade: 21, estado: 1 não pode refazer registo (276666:1664:19), ID de transacção (0:825853240), na página (1:1787100), 'autores' (7) da base de dados. Página: LSN = (276658:4501:9), tipo = 1. Registo: OpCode = 4, 2, contexto PrevPageLSN: (275565:3959:31)

Alguns cenários são descritos mais detalhadamente nas listas seguintes:
  • 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 de SQL Server 'Ordenar' efectuam actividades de E/s, principalmente para e da base de dados tempdb . Estas operações de E/s são semelhantes às operações de E/s de memória intermédia; no entanto, foram já concebidos para utilizar a lógica de tentativas de leitura para tentar resolver problemas semelhantes. O diagnóstico adicional explicado neste artigo não se aplicam para estas operações de E/s.

Microsoft tenha indicado que a causa para a ordenação seguinte ler falhas é normalmente uma leitura obsoletos ou uma perda de escrita:
2003-04-01 20:13:31.38 spid122 SQL Server declaração: ficheiro: <p:\sql\ntdbms\storeng\drs\include\record.inl>, linha = 1447 falha na asserção = ' m_SizeRec > 0 && m_SizeRec < = MAXDATAROW '.

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

2003-03-29 09:51:41.13 spid57 erro: 823, gravidade: 24, estado: 7
Detectado erro de E/s spid57 do 2003-03-29 09:51:41.13 (ID de página inválida) durante a leitura no deslocamento 0x000000027d2000 no ficheiro '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 tem tido estes erros de ordenação resolveu frequentemente os problemas, movendo tempdb numa unidade local não colocar em cache ou desactivando os mecanismos de cache de leitura.

Porque uma obsoletas ler ou uma escrita perdidos resultados no armazenamento de dados que não é esperada uma grande variedade de comportamentos poderão ocorrer. Poderá aparecer como dados em falta, mas alguns dos efeitos mais comuns de dados em falta aparecem como danos do índice, tal como erro 644 ou erro 625:
Erro 644 gravidade nível 21 mensagem de texto não foi possível localizar a entrada de índice remissivo para RID ' %. * hs 'base no índice página % S_PGID, ID de índice % d, dados' %. * 'ls.
Erro 625 gravidade nível 21 texto de mensagem não é possível obter linha de página % S_PGID por RID porque slotid (% d) não é válido.
Alguns clientes relataram falta linhas depois que efectuam actividades de contagem de linha. Este problema ocorre devido a uma escrita perdida. Talvez a página era suposto ser ligadas a cadeia de página de índice agrupado. Se fisicamente perdeu a escrita, os dados também serão perdidos.

importante Se detectar um dos comportamentos ou se tem a suspeita de problemas semelhantes em conjunto com desactivar colocação em cache mecanismos, Microsoft recomenda que obtenha a actualização mais recente para o SQL Server e o mais recente Stress Simulator do SQL Server E/s. A Microsoft também recomenda que efectue uma revisão restrita do sistema operativo e respectivas configurações associadas.

Para obter mais informações, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
231619COMO: utilizar o utilitário SQLIOStress para salientar um subsistema de disco como, por exemplo, o SQL Server
SQL Server requer sistemas para suportar ? garantida a entrega de multimédia estável ? conforme descrito no programa do Microsoft SQL Server Always-On armazenamento solução de revisão. FOPara obter mais informações sobre os requisitos de entrada e saídas para o motor de base de dados do SQL Server, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
967576Requisitos de motor de entrada/saída do Microsoft SQL da base de dados do servidor

Propriedades

Artigo: 826433 - Última revisão: 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 2005 Server Enterprise
  • 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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes 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