Você está offline; aguardando reconexão

Diagnóstico do SQL Server adicionado para detectar problemas de e/s não reportados por leituras obsoletas ou perda de dados

IMPORTANTE: Este artigo foi traduzido pelo software de tradução automática da Microsoft e eventualmente pode ter sido editado pela Microsoft Community através da tecnologia Community Translation Framework (CTF) ou por um tradutor profissional. A Microsoft oferece artigos traduzidos automaticamente por software, por tradutores profissionais e editados pela comunidade para que você tenha acesso a todos os artigos de nossa Base de Conhecimento em diversos idiomas. No entanto, um artigo traduzido pode conter erros de vocabulário, sintaxe e/ou gramática. A Microsoft não é responsável por qualquer inexatidão, erro ou dano causado por qualquer tradução imprecisa do conteúdo ou por seu uso pelos nossos clientes.

Clique aqui para ver a versão em Inglês deste artigo: 826433
Sintomas
Se a causa de problemas de sistema operacional, driver ou hardware perda escrever condições ou condições de leitura obsoletas, você poderá ver mensagens de erro relacionadas à integridade de dados, como erros 605, 823, 3448, 3456. Você pode receber mensagens de erro que são semelhantes aos exemplos a seguir:

2003-07-24 16:43:04.57 spid63 Getpage: bstat = 0x9, sstat = 0x800, cache
número de spid63 de 16:43:04.57 2003-07-24 é/deve ser: objid é/deve 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 é alocada para este objeto

2003-07-24 16:52:37.67 spid63 erro: 605, gravidade: 21, estado: 1
2003-07-24 16:52:37.67 spid63 tentativa de buscar a página lógica (1:7040966) no banco de dados 'pubs' pertence ao objeto 'autores', não para títulos' objeto'...

2003-07-24 16:52:40.99 spid63 erro: 3448, gravidade: 21, estado: 1
2003-07-24 16:52:40.99 spid63 não pôde desfazer registro (63361:16876:181), para a ID de transação (0:159696956), na página (1:7040977), o banco de dados 'pubs' (banco de dados ID 12). Informações sobre a página: LSN = (63192:958360:10), tipo = 2. Registrar informações: OpCode = 2, contexto 1...

Erro de spid66 de 14:31:35.92 2003-07-09: 823, gravidade: 24, estado: 2
2003-07-09 14:31:35.92 spid66 erro e/s (identificação de página inválida) detectado durante a leitura no deslocamento 0x00000016774000 no arquivo 'h:\sql\MSSQL\data\tempdb.mdf'...

Erro de spid17s de 15:57:24.14 de 2010-02-06: 3456, gravidade: 21, estado: 1.
spid17s de 15:57:24.14 de 2010-02-06 não pode refazer registro (58997:5252:28), para a ID de transação (0:109000187), na página (1:480946), o banco de dados 'MyDatabase' (banco de dados ID 17). Página: LSN = (58997:5234:17), tipo = 3. Log: OpCode = 2, contexto 5, PrevPageLSN: (58997:5243:17). Restaurar de um backup do banco de dados ou reparar o banco de dados.
Mais Informações
A Microsoft introduziu recursos de rastreamento estendido a partir do SQL Server 2000 Service Pack 4 e estes diagnósticos foram parte do produto SQL Server 2005 e versões posteriores. Esses recursos são projetados para ajudar a detectar problemas externos relacionados à e/s e solucionar problemas de mensagens de erro descritas na seção "Sintomas"

Se você receber uma das mensagens de erro mencionadas na seção "Sintomas" e eles não podem ser justificados por um evento, como uma falha de unidade física, revise quaisquer problemas conhecidos com o SQL Server, o sistema operacional, os drivers e o hardware. Tente o diagnóstico fornecer informações sobre as duas condições a seguir:
  • Gravação perdida: Uma chamada bem-sucedida para o API WriteFile , mas o sistema operacional, um driver ou o cachingcontroller não corretamente liberar os dados para o thoughSQL até mesmo mídia física Server é informado que a gravação foi bem-sucedida.
  • Leitura obsoleta: Uma chamada bem sucedida a API ReadFile , mas o sistema operacional, um driver ou o cachingcontroller retorna incorretamente uma versão mais antiga dos dados.
Por exemplo, a Microsoft confirmou situações onde uma chamada WriteFile API retorna como bem sucedida, mas uma leitura imediata e bem-sucedidas do mesmo bloco de dados retorna dados mais antigos, inclusive aos que provavelmente são armazenados em um cache de leitura de hardware. Às vezes, esse problema ocorre devido a um problema de cache de leitura. Em outros casos, os dados de gravação, na verdade, nunca são gravados no disco físico.

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

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

A seguinte mensagem de erro 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 não relatado leia ou grave problema na página (1:75007) do banco de dados de 12
LSN retornado (63361:16876:181), LSN esperado (63361:16876:500)
Entre em contato com o fornecedor de hardware e considere desabilitar mecanismos de cache para corrigir o problema

Iniciando com o SQL Server 2005, a mensagem de erro será relatada como:

SQL Server detectou um erro de e/s de consistência com base em lógica: leitura obsoletos. Ele ocorreu durante um <Read rite="">> da página <PAGEID>> na ID de banco de dados <DBID>> no deslocamento <PHYSICAL offset="">> no arquivo <FILE name="">>. Mensagens adicionais no SQL Server erro log ou sistema de log de eventos podem fornecer mais detalhes. Esta é uma condição de erro grave ameaça a integridade do banco de dados e deve ser corrigida imediatamente. Execute uma verificação de consistência do banco de dados completo (DBCC CHECKDB). Esse erro pode ser causado por vários fatores; Para obter mais informações, consulte os Manuais Online do SQL Server.</FILE> </PHYSICAL> </DBID> </PAGEID> </Read>

Nesse ponto, o cache de leitura contém uma versão mais antiga da página ou os dados não foram gravados corretamente no disco físico. Em ambos os casos (uma perda grave ou uma leitura obsoletos), SQL Server relata um problema com o sistema operacional, o driver ou as camadas de hardware externo.

Se 3448 erro ocorrer quando você tentar reverter uma transação que tenha 605 do 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 que apresenta erro 605 ou erros 823 é considerada uma página inválida, e a identificação da página é mantida pelo computador executando o SQL Server. Durante a recuperação (antes da fase de refazimento) quando a identificação da página inválida é lido, os principais detalhes sobre o cabeçalho da página são registrados no log de erros do SQL Server. Esta ação é importante porque ela ajuda a distinguir entre os cenários de perda de gravação e leitura obsoletos.

Você pode ver os seguintes dois comportamentos comuns em cenários de leitura obsoletos:
  • Se os arquivos de banco de dados forem fechados e abertos, thecorrect e gravados recentemente dados são retornados durante a recuperação.
  • Quando você executar um ponto de verificação e execute a instrução DBCC DROPCLEANBUFFERS (para remover todas as páginas do banco de dados da memória), e execute a instrução DBCC CHECKDB no banco de dados, a isreturned de dados escrita recentemente.
Os comportamentos mencionados no parágrafo anterior indicam um problema de cache de leitura e eles freqüentemente são solucionados desativando o cache de leitura. As ações que estão descritas no parágrafo anterior normalmente forçar uma invalidação de cache e as leituras bem-sucedida que ocorrem mostrar a mídia física é atualizada corretamente. A perda de gravação ocorre quando a página é lida novamente 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. Pode ser um problema com um driver de filtro. Em tais casos, examine o software, incluindo utilitários de backup e antivírus e, em seguida, verificar se existem problemas com o driver de filtro.

A Microsoft também percebeu condições que não atendem aos critérios para 605 do erro ou erros 823 mas causadas pela mesma atividade leitura obsoletos ou perda de gravação. Em alguns casos, uma página parece ser atualizados duas vezes, mas com o LSN mesmo valor. Esse comportamento pode ocorrer se o ID do objeto e a Identificação da página estão correta (página já alocada ao objeto) e uma alteração é feita na página e liberada para o disco. A recuperação de página seguinte retorna uma imagem mais antiga e, em seguida, é feita uma alteração de segunda. O log de transações do SQL Server mostra que a página foi atualizada duas vezes com o mesmo valor LSN. Esta ação se torna um problema quando tentar restaurar uma seqüência do log de transação ou com problemas de consistência de dados, como falhas de chave estrangeiras ou entradas de dados ausentes. A mensagem de erro a seguir ilustra um exemplo dessa condição:

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

Alguns cenários são descritos mais detalhadamente nas seguintes listas:
  • 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 'Classificação' do SQL Server realizam atividades de i/o, principalmente para e do banco de dados tempdb . Essas operações de e/s são semelhantes às operações de i/o buffer; No entanto, elas já foram projetadas para usar lógica de leitura ' Repetir ' para tentar resolver problemas semelhantes. Os diagnósticos adicionais explicados neste artigo não se aplicam a essas operações de e/s.

A Microsoft percebeu que a causa para a classificação seguinte leia falhas é geralmente uma leitura obsoletos ou uma perda de gravação:

2003-04-01 20:13:31.38 spid122 SQL Server declaração: arquivo: <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 classificação ler falha (ID de página incorreta). PageID = (0x1:0x13e9), dbid = 2, arquivo = e:\program files\Microsoft SQL Server\mssql\data\tempdb.mdf. Tentando novamente.

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

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

</p:\sql\ntdbms\storeng\drs\include\record.inl>
Os clientes que já experimentaram esses erros de classificação freqüentemente resolveu os problemas ao mover o tempdb para uma unidade local não-cache ou desativando os mecanismos de cache de leitura.

Porque uma leitura obsoleta ou uma gravação perdida resulta em armazenamento de dados que não é esperado, pode ocorrer uma grande variedade de comportamentos. Ele pode ser exibido como dados ausentes, mas alguns dos efeitos mais comuns de dados ausentes aparecem como corrupção do índice, como 644 erro ou erro 625:

Erro 644 gravidade nível 21 mensagem de texto não foi possível localizar a entrada de índice de RID ' %. * hs' no índice de página % S_PGID, identificação de índice %d, banco de dados ' %. * ls'.
Texto da mensagem erro 625 gravidade nível 21 não pode recuperar a linha da página % S_PGID pelo RID porque a slotid (%d) não é válido.

Alguns usuários têm reportado falta linhas após eles executam atividades de contagem de linha. Esse problema ocorre devido a uma gravação perdida. Talvez a página deveria ser vinculada à cadeia de página do índice de cluster. Se a gravação foi fisicamente perdida, os dados também são perdidos.

Importante: Se você enfrentar qualquer um dos comportamentos, ou se você suspeitar de problemas semelhantes, além de desabilitar mecanismos de cache, a Microsoft recomenda que você obtenha a atualização mais recente para o SQL Server e o simulador de Stress mais recente do SQL Server e/s. Microsoft também recomenda que você realize uma análise estrita do seu sistema operacional e suas configurações associadas.

Observação: A Microsoft confirmou que sob cargas de i/o pesada e raras, algumas plataformas de hardware podem retornar uma leitura obsoleta. Se o diagnóstico estendido indica um possível desatualizados leitura/perda escreva condição, entre em contato com o fornecedor do hardware para acompanhamento imediato para cima e teste com o SQLIOSim utilitário.

SQL Server requer sistemas para oferecer suporte à entrega garantida para mídias estáveis, conforme descrito naRequisitos do programa de confiabilidade do SQL Server e/s. Para obter mais informações sobre os requisitos de entrada e saídas para o mecanismo de banco de dados do SQL Server, consulte Requisitos de entrada/saída de mecanismo de banco de dados do Microsoft SQL Server.

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 826433 - Última Revisão: 06/04/2015 07:19: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 Server 2005 Enterprise Edition, 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 Server 2005 Workgroup Edition, 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
ody>dy>ody>