Diagnostika SQL Server přidán ke zjištění nehlášené problémy I/O z důvodu zastaralé čtení či zápisů ztraceny

Příznaky

Pokud operační systém, ovladače nebo hardware problémy příčinou ztráty zápis nebo zastaralé čtení stavu, může se zobrazit data integrity chybové zprávy týkající se například chyby 605, 823, 3448, 3456. Můžete obdržet chybové zprávy podobné následujícím příkladům:

16:43:04.57 2003-07-24 spid63 Getpage: bstat = 0x9, sstat = 0x800 mezipaměti
2003-07-24 16:43:04.57 spid63 pageno je nebo by měla být: objid je nebo by měla být:
2003-07-24 16:43:04.57 spid63 (1:7040966)/(1:7040966) 2093354622/2039782424

2003-07-24 spid63 16:43:04.57... IAM označuje, že stránky je přidělen k danému objektu

2003-07-24 16:52:37.67 spid63 Chyba: 605, závažnosti: 21, stát: 1
Pokus o načtení logickou stránku (1:7040966) v databázi, ke které patří "pubs" objekt "autoři", nikoli objekt názvy spid63 16:52:37.67 2003-07-24.

2003-07-24 16:52:40.99 spid63 Chyba: 3448, závažnosti: 21, stát: 1
spid63 16:52:40.99 2003-07-24 nelze vrátit záznam protokolu (63361:16876:181) pro ID transakce (0:159696956) na stránce (1:7040977), databáze "pubs" (databáze ID 12). Informace o stránce: LSN = (63192:958360:10), typ = 2. Protokolovat informace: OpCode = 2, souvislosti 1...

Chyba spid66 14:31:35.92 2003-07-09: 823, závažnosti: 24, stav: 2
2003-07-09 14:31:35.92 spid66 vstupně-výstupní (chybná stránka ID) byla zjištěna chyba během čtení na posunu 0x00000016774000 v souboru "h:\sql\MSSQL\data\tempdb.mdf".

2010-02-06 15:57:24.14 spid17s Chyba: 3456, závažnosti: 21, stát: 1.
2010-02-06 15:57:24.14 spid17s nelze znovu záznam protokolu (58997:5252:28) pro ID transakce (0:109000187) na stránce (1:480946), databáze "Databáze" (databáze ID 17). Stránka: LSN = (58997:5234:17), typ = 3. Protokolu: Instrukce = 2, 5, kontext PrevPageLSN: (58997:5243:17). Obnovení ze zálohy databáze nebo oprava databáze.

Další informace

Společnost Microsoft zavedla možnosti rozšířeného sledování počínaje SQL Server 2000 Service Pack 4 a tyto nástroje pro diagnostiku byly součástí produktu v SQL Server 2005 a novějších verzích. Tyto možnosti jsou určeny pro zjištění vstupně-výstupní operace související externí problémy a řešení chybové zprávy popsané v části "Příznaky"

Pokud se zobrazí některá z chybových zpráv, které jsou uvedeny v části "Příznaky" a nemůže být vysvětleny v případě, například při selhání fyzické jednotky, podívejte se na všechny známé problémy s SQL Server, operační systém, ovladače a hardware. Diagnostika, zkuste poskytují informace o dvou následujících podmínek:
  • Ke ztrátě zápis: Úspěšné volání rozhraní API WriteFile , ale operační systém, ovladače nebo ukládání do mezipaměti řadiče není vyprázdnění správně data na fyzické médium, které i v případě, že SQL Server je informován úspěšného zápisu.
  • Zastaralé pro čtení: Úspěšné volání ReadFile API, ale operační systém, ovladače nebo ukládání do mezipaměti řadiče nesprávně vrací data starší verze.
Společnost Microsoft potvrzuje například scénáře kde volání funkce WriteFile rozhraní API vrací jako úspěšná, ale okamžité, úspěšné čtení stejného bloku dat vrátí starší data včetně dat, která je pravděpodobně uložena v hardwaru, čtení z mezipaměti. Někdy k tomuto problému dochází z důvodu problému čtení mezipaměti. V ostatních případech je ve skutečnosti nikdy zapsán zapisovat data na fyzický disk.

Chcete-li povolit další diagnostiku pro tyto druhy problémů, SQL Server byl přidán příznak trasování 818. Můžete určit jako spouštěcí parametr příznak trasování 818-T818, pro počítače se systémem SQL Server, nebo můžete spustit následující příkaz:
DBCC TRACEON(818, -1)

Příznak trasování 818 umožňuje v paměti ring vyrovnávací paměti, která slouží ke sledování poslední 2 048 úspěšného psaní operace prováděné pomocí počítače se systémem SQL Server, řazení a odkazu na pracovní soubor vstupně-výstupních. Při výskytu chyby, například Chyba 605 823 a 3448, příchozí vyrovnávací paměti protokolu pořadové číslo (LSN) hodnota je porovnán s aktuální seznam pro zápis. Pokud je starší než je uvedeno v průběhu operace zápisu LSN, které jsou vyvolány během operace čtení, nové chybová zpráva je zaznamenána v protokolu chyb serveru SQL Server. Většina operací zápisu SQL Server dojít jako kontrolní body nebo opožděných zápisů. Opožděných zápisů je pozadí úkol, který používá asynchronní vstupně-výstupní. Provedení cyklické vyrovnávací paměti je lehký a díky systému zanedbatelný vliv na výkon.

Následující zpráva označuje, že SQL Server nepřijal žádné chyby z volání funkce WriteFile API nebo volání ReadFile API. Nicméně když byla přezkoumána LSN, hodnota není správný:

SQL Server zjistil nedovoleném, nehlášeném úroveň operačního systému nebo hardware, číst nebo zapisovat problém na straně databáze 12 (1:75007)

LSN vrácené (63361:16876:181), LSN očekávat (63361:16876:500)

Obraťte se na dodavatele hardwaru a zvažte zakázání ukládání do mezipaměti mechanismy k opravě problému

Počínaje SQL Server 2005, bude zpráva hlášena jako:

SQL Server zjistil logické vstupně-výstupní chybě konzistence systémem: zastaralé pro čtení. Vyskytl << ke čtení a zápisu >> << PAGEID >> stránky v databázi ID << identifikátor DBID >> na posunu << FYZICKÉHO posunu >> v souboru << název souboru >>. Další zprávy do serveru SQL Server chybě protokolu nebo systému protokolu událostí může poskytnout více podrobností. To je vážné chybovou podmínku, která ohrožuje integritu databáze a musí být opraveny okamžitě. Proveďte kontrolu konzistence celé databáze (DBCC CHECKDB). Tato chyba může být způsobeno mnoha faktory; Další informace naleznete v tématu SQL Server Books Online.

V tomto okamžiku čtení mezipaměti obsahuje starší verzi stránky, nebo data nebyla správně zapsána na fyzický disk. V obou případech (ztracené psaní nebo zastaralé pro čtení) SQL Server hlásí externí poruchu operační systém, ovladače nebo hardware vrstvy.

Pokud chyby 3448 dojde při pokusu o vrácení transakce, která má 605 chyba nebo Chyba 823, počítače se systémem SQL Server automaticky zavře databázi a pokusí se otevřít a obnovit databázi. První stránka, která dojde k chybě 605 nebo Chyba 823 je považována za chybná stránka a id stránky je uchováván počítači se systémem SQL Server. Během obnovení (před znovu fáze) přečtení chybná stránka id primární informace o záhlaví stránky jsou zaznamenány v protokolu chyb serveru SQL Server. Tato akce je důležité, protože pomáhá rozlišit mezi ztracené zapisovat a číst zastaralé scénáře.

Může se zobrazit následující dva běžné chování zastaralé pro čtení scénáře:
Čtení mezipaměti problém určit chování uvedených v předchozím odstavci a jsou často vyřešit zákazem mezipaměti pro čtení. Akce, které jsou popsány v předchozím odstavci, obvykle platnost zneplatnění mezipaměti a úspěšně načte, ke kterým dochází Zobrazit fyzické médium je správně aktualizován. Ztracené psaní chování po stránce je přečíst i starší verze dat, i po vynucené vyprázdnění mezipaměti mechanismy.

V některých případech nemusí být problém konkrétní mezipaměti hardwaru. Může být problém s ovladačem filtru. V takovém případě zkontrolujte software, včetně nástrojů pro zálohování a antivirového softwaru a zjistěte, pokud dochází k potížím s ovladačem filtru.

Společnost Microsoft zjistila také podmínky, které nesplňují kritéria pro 605 chyba nebo Chyba 823, ale jsou způsobeny stejnou činnost zastaralé číst nebo zapisovat ztracena. V některých případech zobrazí se stránka aktualizována dvakrát, ale s stejné LSN hodnoty. K tomuto chování může dojít, pokud ID objektů a ID stránky jsou správné (stránka již přidělené objekt) a změny provedené na stránce a zapsány na disk. Načítání další stránky, vrátí starší bitové kopie a poté druhé změně. Transakčního protokolu serveru SQL Server ukazuje, že stránka byla aktualizována dvakrát stejná hodnota LSN. Tato akce bude problém při pokusu o obnovení sekvence protokolu transakce nebo s problémy konzistence dat, například selhání cizího klíče nebo chybějící údaje. Následující chybová zpráva uvádí jeden příklad, tato podmínka:

Chyba: 3456, závažnosti: 21, stát: 1 nelze znovu záznam protokolu (276666:1664:19) pro ID transakce (0:825853240) na stránce (1:1787100), databáze "autoři" (7). Stránka: LSN = (276658:4501:9), typ = 1. Protokolu: Instrukce = 4, 2, kontext PrevPageLSN: (275565:3959:31).

Některé situace jsou popsány podrobněji v následujících seznamech:
  • LSN SequenceAction1Checkpoint
    2Begin Transaction
    3Table created or truncated
    4Inserts (Pages allocated)
    5Newly allocated page written to disk by Lazy Writer
    6Select from table – Scans IAM chain, newly allocated page read back from disk (LRU | HASHED = 0x9 in getpage message), encounters Error 605 - Invalid Object ID
    7Rollback of transaction initiated

  • LSN SequenceAction1Checkpoint
    2Begin Transaction
    3Page Modification
    4Page written to disk by Lazy Writer
    5Page read in for another modification (stale image returned)
    6Page Modified for a second time but because of stale image does not see first modification
    7Rollback – Fails – Transaction Log shows two different log records with the same PREV LSN for the page

SQL Server řazení operátory provádějí vstupně-výstupní činnosti, především do a z databáze tempdb . Tyto vstupně-výstupní operace jsou podobné vyrovnávací paměti vstupně-výstupních operací; však již byla zkonstruována Logika opakování čtení používat k řešení podobných problémů. Další Diagnostika popsaných v tomto článku se nevztahují na tyto vstupně-výstupních operací.

Společnost Microsoft zjistila, že hlavní příčiny pro následující řazení číst selhání je obvykle zastaralé pro čtení nebo ke ztrátě zápis:

20:13:31.38 2003-04-01 spid122 SQL Server výrazu: soubor: < p:\sql\ntdbms\storeng\drs\include\record.inl >, řádek = vyhodnocení výrazu se nezdařilo 1447 = "m_SizeRec > 0 & & m_SizeRec < = MAXDATAROW'.

09:51:41.12 2003-03-29 spid57 řazení číst selhání (chybná stránka ID). PageID = (0x1:0x13e9), identifikátor dbid = 2, soubor = e:\program files\Microsoft SQL Server\mssql\data\tempdb.mdf. Opakování akce.

2003-03-29 09:51:41.13 spid57 Chyba: 823, závažnosti: 24, stav: 7
2003-03-29 09:51:41.13 spid57 vstupně-výstupní (chybná stránka ID) chybě během čtení na posunu 0x000000027d2000 v souboru "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)

Zákazníci, kteří tyto chyby řazení došlo k často nevyřešil problémy přesunutí databáze tempdb není ukládání do mezipaměti místní disk nebo zakázání čtení mechanismy ukládání do mezipaměti.

Širokou škálu chování může dojít, protože zastaralé pro čtení nebo zápisu ztraceny výsledkem ukládání dat, která není očekáván. Může zobrazovat jako chybějící data, ale některé běžnější účinků chybějící data se zobrazí jako index poškození, například Chyba 644 nebo 625 Chyba:

Chyba 644 závažnosti úroveň 21 zprávy Text nelze najít položku indexu pro RID ' %. * hs v index stránka % S_PGID, index ID %d, databáze ' %. * ls'.

625 závažnosti úrovně 21 textu chybové zprávy při nelze načíst řádek z stránka % S_PGID podle RID, protože ID_patice (%d) není platný.

Někteří zákazníci vykázaly, chybějící řádky po vykonávají činnost počet řádků. K tomuto problému dochází z důvodu ztraceny zápis. Na stránce možná měla spojit s řetězci seskupený index stránky. Zápis byl fyzicky ztracen, data dojde také ke ztrátě.

Důležité: Pokud se setkáte s některým z příznaků, nebo pokud jste podezřele podobné problémy s mechanismy ukládání do mezipaměti zakázat, důrazně doporučuje společnost Microsoft můžete získat nejnovější aktualizaci pro SQL Server a nejnovější simulátor SQL Server vstupně-výstupní napětí. Společnost Microsoft také doporučuje provést přísné kontroly operačního systému a jeho přidružené konfigurací.

Poznámka: Společnost Microsoft potvrzuje, že za vzácné a těžké zatížení vstupně-výstupní operace může vrátit některé hardwarové platformy zastaralé pro čtení. Pokud rozšířené diagnostika označuje možné zastaralých neúspěšně číst psát podmínku, vám poskytne dodavatel hardwaru pro okamžité zpracování nahoru a testování pomocí nástroje SQLIOSim .

SQL Server vyžaduje systémy podporují zaručené dodání na stabilní médium, jak je uvedeno v části Požadavky programu SQL Server vstupně -výstupní spolehlivost. Další informace o požadavcích na vstupní a výstupní databázového stroje SQL Server viz Vstupní a výstupní požadavky na Microsoft SQL Server databáze stroj.
Vlastnosti

ID článku: 826433 - Poslední kontrola: 16. 1. 2017 - Revize: 2

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, Microsoft SQL Server 2012 Enterprise Core, Microsoft SQL Server 2014 Business Intelligence, Microsoft SQL Server 2014 Business Intelligence, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Enterprise Core, Microsoft SQL Server 2014 Enterprise Core, Microsoft SQL Server 2014 Express, Microsoft SQL Server 2014 Express, Microsoft SQL Server 2014 Standard, Microsoft SQL Server 2014 Standard, Microsoft SQL Server 2014 Web, Microsoft SQL Server 2014 Web, SQL Server 2014 Reporting Services

Váš názor