Você está offline; aguardando reconexão

Diagnóstico do SQL Server adicionado para detectar problemas de e/s não reportados devido a leituras obsoletas ou escritas perdidas

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
Sintomas
Se a causa de problemas de sistema operativo, controlador ou hardware perdida escrever condições ou condições de leitura obsoletas, poderá ver mensagens de erro relacionado com a integridade de dados, tais como erros 605, 823, 3448, 3456. Poderá receber mensagens de erro semelhantes aos seguintes exemplos:

2003-07-24 16:43:04.57 spid63 Getpage: bstat = 0x9, sstat = 0x800, cache
2003-07-24 16:43:04.57 spid63 pageno (is) devem ser: objid (is) devem ser:
2003-07-24 16:43:04.57 spid63 (1:7040966)/(1:7040966) 2093354622/2039782424
2003-07-24 16:43:04.57 spid63... IAM indica que essa página é atribuída a este objecto

Erro de spid63 de 16:52:37.67 de 2003-07-24: 605, gravidade: 21, estado: 1
spid63 de 16:52:37.67 de 2003-07-24 tentativa de obtenção página lógica (1:7040966) na base de dados 'pubs' pertencem ao objecto 'autores', não a objecto 'títulos'...

Erro de spid63 de 16:52:40.99 de 2003-07-24: 3448, gravidade: 21, estado: 1
spid63 de 16:52:40.99 de 2003-07-24 nao conseguiu anular o registo (63361:16876:181), para o 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...

2003-07-09 14:31:35.92 spid66 erro: 823, gravidade: 24, estado: 2
2003-07-09 14:31:35.92 spid66 e/s (ID de página com erros) foi detectado um erro durante a leitura no deslocamento 0x00000016774000 no ficheiro 'h:\sql\MSSQL\data\tempdb.mdf'...

2010-02-06 15:57:24.14 spid17s erro: 3456, gravidade: 21, estado: 1.
2010-02-06 15:57:24.14 spid17s não foi possível refazer registro de log (58997:5252:28), para o ID de transacção (0:109000187), na página (1:480946), base de dados 'Minhabasededados' (base de dados ID 17). Página: LSN = (58997:5234:17), tipo = 3. REG: OpCode = 2, 5, de contexto PrevPageLSN: (58997:5243:17). Restaurar a partir de uma cópia de segurança da base de dados ou reparar a base de dados.
Mais Informação
A Microsoft introduziu capacidades de controlo expandido a partir do SQL Server 2000 Service Pack 4 e estes diagnósticos de tem sido parte do produto no SQL Server 2005 e versões posteriores. Estas funcionalidades foram concebidas para ajudar a detectar e/s relacionadas com problemas externos e resolver problemas relacionados com as mensagens de erro descrita na secção "Sintomas"

Se receber uma das mensagens de erro mencionadas na secção "Sintomas" e não puderem ser explicadas por um evento tal 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. Tente o diagnóstico fornecer informações sobre as duas condições seguintes:
  • Escrita perdida: Uma chamada com êxito para a API WriteFile , mas o sistema operativo, um controlador ou o cachingcontroller não correctamente esvaziar os dados para o thoughSQL mesmo suporte físico o servidor seja informado de que a escrita foi efectuada com êxito.
  • Leitura obsoleta: Uma chamada com êxito para a API de ReadFile , mas o sistema operativo, um controlador ou o cachingcontroller devolve incorrectamente uma versão anterior dos dados.
Por exemplo, a Microsoft confirmou cenários em que uma chamada de WriteFile API devolve como com êxito, mas uma leitura imediata, com êxito ao mesmo bloco de dados devolve dados mais antigos, incluindo dados que provavelmente estão armazenados num cache de leitura de hardware. Por vezes, este problema ocorre devido a um problema de cache de leitura. Nos outros casos, os dados de escrita efectivamente 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 para o computador que esteja 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 em anel de memória que é utilizada para fins de monitorização que operações executadas pelo computador com o SQL Server, não incluindo ordenar e/s de ficheiro de trabalho de escrever o último 2.048 com êxito. Quando ocorrem erros, tais como o erro 605, 823 ou 3448, o valor de número (LSN) de sequência a receber memória intermédia registo é comparado com a lista de escrita recente. Se o LSN que é obtido durante a operação de leitura for mais antigo daquele especificado durante a operação de escrita, uma nova mensagem de erro é registada no registo de erros do SQL Server. A maior parte das operações de escrita do SQL Server ocorrem como pontos de verificação ou como operações de escrita lenta. Uma escrita lenta é uma tarefa de segundo plano que utiliza e/s assíncrona. A implementação da memória intermédia em anel é leve, tornando assim o desempenho afectam no sistema negligenciável.

A seguinte mensagem de erro indica que SQL Server não recebeu um erro da chamada da API WriteFile ou a chamada de ReadFile API. No entanto, quando o LSN foi revisto, o valor não era correcto:

SQL Server detectou um nível de SO/hardware não reportado ler ou escrever o problema na página (1:75007) da base de dados 12
LSN devolvido (63361:16876:181), LSN esperado (63361:16876:500)
Contacte o fabricante de hardware e considerar a desactivação de mecanismos de colocação em cache para corrigir o problema

A partir do SQL Server 2005, a mensagem de erro será relatada como:

SQL Server detectou um erro de e/s com base em consistência lógico: leitura obsoletos. Ocorreu durante um <Read rite="">> da página <PAGEID>> no ID da base de dados <DBID>> no deslocamento <PHYSICAL offset="">> no ficheiro <FILE name="">>. Mensagens adicionais no SQL Server erro registo ou sistema de registo de eventos poderão fornecer mais detalhes. Esta é uma condição de erro grave que ameace a integridade da base de dados e tem de ser corrigida imediatamente. Conclua a verificação de consistência da base de dados (DBCC CHECKDB). Este erro pode ser causado por vários factores; Para mais informações, consulte SQL Server Books Online.</FILE> </PHYSICAL> </DBID> </PAGEID> </Read>

Neste momento, ou a cache de leitura contém uma versão mais antiga da página ou os dados não foram correctamente escritos no disco físico. Em ambos os casos (uma perda de escrita ou leitura obsoletos), o SQL Server comunica um problema com o sistema operativo, o controlador ou as camadas de hardware externo.

Se ocorrer 3448 de erro quando tentar anular uma transacção que tenha erro 605 ou 823 de erro, 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 que experiências erro 605 ou erro 823 é considerada uma página com erros 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 com erros é lido, os principais detalhes sobre o cabeçalho de página são registados no registo de erros do SQL Server. Esta acção é importante porque ajuda a distinguir entre os cenários perdido escrita e leitura obsoletos.

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

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

Microsoft também tomou condições que não satisfaçam os critérios para 605 de erro ou erro 823 mas que são causadas pela mesma actividade leitura obsoletos ou perdido escrever. Em alguns casos, é apresentada uma página a ser actualizada duas vezes, mas com o mesmo LSN valor. Este comportamento poderá ocorrer se o ID de objecto e o ID de página são correcta (a página já atribuída ao objecto) e uma alteração é efectuada para a página e descarregada para o disco. A obtenção da página seguinte devolve uma imagem mais antiga e, em seguida, é efectuada uma alteração de segunda. O registo de transacções do SQL Server mostra que a página tiver sido actualizada duas vezes com o mesmo valor LSN. Esta acção cause problemas quando tentar restaurar uma sequência de registo de transacções ou com problemas de consistência de dados, tais como falhas de chaves externas ou entradas de dados em falta. A mensagem de erro seguinte ilustra um exemplo desta condição:

Erro: 3456, gravidade: 21, estado: 1 não foi possível refazer registro de log (276666:1664:19), para a base de dados do ID de transacção (0:825853240), na página (1:1787100), 'autores' (7). Página: LSN = (276658:4501:9), tipo = 1. REG: OpCode = 4, contexto 2, PrevPageLSN: (275565:3959:31)...

Alguns cenários são descritos mais detalhadamente nas listas seguintes:
  • LSN Sequence		Action1			Checkpoint2			Begin Transaction3			Table created or truncated4			Inserts (Pages allocated)5			Newly allocated page written to disk by Lazy Writer6			Select from table – Scans IAM chain, newly allocated page read back from disk (LRU | HASHED = 0x9 in getpage message), encounters Error 605 - Invalid Object ID7			Rollback of transaction initiated
  • LSN Sequence		Action1			Checkpoint2			Begin Transaction3			Page Modification4			Page written to disk by Lazy Writer5			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 ordenação' SQL Server' 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, já tenham sido projectadas para utilizar a lógica de leitura ' Repetir ' para tentar resolver problemas semelhantes. O diagnóstico adicional explicado neste artigo não se aplicam a estas operações de e/s.

Microsoft fez notar que a causa de raiz para a ordenação seguinte ler falhas é geralmente uma leitura obsoletos ou uma escrita perdido:

2003-04-01 20:13:31.38 spid122 declaração do SQL Server: 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 (ID de página com erros) de falha de leitura. PageID = (0x1:0x13e9), dbid = 2, ficheiro = e:\Programas\Exchsrvr\Mailroot\vsi c:\Programas\Microsoft SQL Server\mssql\data\tempdb.mdf. A tentar novamente.

2003-03-29 09:51:41.13 spid57 erro: 823, gravidade: 24, estado: 7
Erro de e/s (ID de página com erros) do 2003-03-29 09:51:41.13 spid57 detectados durante a leitura no deslocamento 0x000000027d2000 no ficheiro 'c:\Programas\Microsoft SQL Server\mssql\data\tempdb.mdf de e:\Programas\Exchsrvr\Mailroot\vsi'...

* 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)

</p:\sql\ntdbms\storeng\drs\include\record.inl>
Os clientes que tiveram estes erros de ordenar com frequência foi resolvido os problemas movendo tempdb para uma unidade local não colocação em cache, ou desactivando os mecanismos de colocação em cache de leitura.

Porque uma leitura obsoleta ou uma escrita perdida resulta no armazenamento de dados que não é esperado, poderá ocorrer uma grande variedade de comportamentos. Poderá aparecer como dados em falta, mas alguns dos efeitos mais comuns dos dados em falta aparecem como danos de índice, tal 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, ID do índice %d, a base de dados ' %. * ls'.
Texto da mensagem erro 625 gravidade nível 21 não é possível obter a linha da página %) S_PGID por RID porque a IDRanhura (%d) não é válida.

Alguns clientes relataram em falta linhas depois de efectuam estas actividades de contagem de linha. Este problema ocorre devido a uma operação de escrita perdida. Talvez a página era suposto ser ligados à cadeia página índice agrupado. Se a escrita perdeu-se fisicamente, os dados também são perdidos.

Importante Se detectar qualquer dos comportamentos, ou se estiver seguro de problemas semelhantes, bem como a desactivação de mecanismos de colocação em cache, Microsoft recomenda vivamente que obter a actualização mais recente para o SQL Server e o mais recente simulador de tensão de e/s do servidor SQL. A Microsoft aconselha vivamente que efectue uma revisão estrita de suas configurações de associados e o sistema operativo.

Nota A Microsoft confirmou que em cargas de e/s raras e pesadas, algumas plataformas de hardware podem devolver uma leitura obsoleta. Se o diagnóstico expandido indica uma possível obsoletas perdido de leitura/escrita condição, contacte o fornecedor de hardware para seguimento imediato para cima e testar com o SQLIOSim utilitário.

Sistemas para suportar a entrega com garantia para suportes de dados estáveis mencionados no SQL Server sobrecarrega oRequisitos do programa de fiabilidade do SQL Server e/s. Para mais informações sobre os requisitos de entrada e saídas para o motor de base de dados do SQL Server, consulte Requisitos de entrada/saída do motor de base de dados do Microsoft SQL servidor.

Aviso: Este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 826433 - Última Revisão: 06/04/2015 11:34:00 - Revisão: 2.0

Microsoft SQL Server 2000 Developer Edition, Microsoft SQL Server 2000 Enterprise Edition, Microsoft SQL Server 2000 Personal Edition, Microsoft SQL Server 2000 Standard Edition, Microsoft SQL Server 2000 Workgroup Edition, Microsoft SQL Server 2005 Compact Edition, Microsoft SQL Server 2005 Developer Edition, Microsoft SQL 2005 Server Enterprise, Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems, Microsoft SQL Server 2005 Enterprise X64 Edition, Microsoft SQL Server 2005 Express Edition, Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems, Microsoft SQL 2005 Server Workgroup, Microsoft SQL Server 2005 Standard X64 Edition, Microsoft SQL Server 2008 Developer, Microsoft SQL Server 2008 Enterprise, Microsoft SQL Server 2008 Express, Microsoft SQL Server 2008 Standard, Microsoft SQL Server 2008 R2 Analysis Services, Microsoft SQL Server 2008 R2 Datacenter, Microsoft SQL Server 2008 R2 Developer, Microsoft SQL Server 2008 R2 Enterprise, Microsoft SQL Server 2008 R2 Express, Microsoft SQL Server 2008 R2 Express with Advanced Services, Microsoft SQL Server 2008 R2 Standard, Microsoft SQL Server 2008 R2 Standard Edition for Small Business, Microsoft SQL Server 2008 R2 Web, Microsoft SQL Server 2008 R2 Workgroup, Microsoft SQL Server 2012 Developer, Microsoft SQL Server 2012 Enterprise, Microsoft SQL Server 2012 Express, Microsoft SQL Server 2012 Standard, Microsoft SQL Server 2012 Web, SQL Server 2012 Enterprise Core, Microsoft SQL Server 2014 Business Intelligence, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Enterprise Core, Microsoft SQL Server 2014 Express, Microsoft SQL Server 2014 Standard, Microsoft SQL Server 2014 Web, SQL Server 2014 Reporting Services

  • kbhotfixserver kbqfe kbbug kbhardware kbfilter kbdriver kbdatabase kbsysadmin kbinfo kbmt KB826433 KbMtpt
Comentários