VEA nr: 470086 (SQL Server 8.0)

Sümptomid

Kui operatsioonisüsteemi, draiveri või riistvara probleemid põhjus kadunud kirjutada kehtetud Loe seisundi, võidakse kuvada andmete tervikluse seotud tõrketeated tõrked 605 823, 3448, näiteks 3456. Võidakse kuvada tõrketeateid, mis sarnanevad järgmised näited:


2003-07-24 16:43:04.57 spid63 Getpage: bstat = 0x9, sstat = 0x800, vahemälu
2003-07-24 16:43:04.57 spid63 pageno on/peaks olema: objid on/peaks olema:
2003-07-24 16:43:04.57 spid63 (1:7040966)/(1:7040966) 2093354622/2039782424

2003-07-24 16:43:04.57 spid63... IAM näitab sellel lehel on eraldatud objekti

2003-07-24 16:52:37.67 spid63 tõrge: 605, raskusaste: 21, riik: 1
2003-07-24 16:52:37.67 Spid63 proovida fetch logical page (1: 7040966) andmebaasi objekti "autorid ei ole-objekti"jaotises"kuulub"pubid.


2003-07-24 16:52:40.99 spid63 tõrge: 3448, raskusaste: 21, riik: 1
2003-07-24 16:52:40.99 spid63 ei suutnud undo logikirje (63361:16876:181) tehingu ID (0: 159696956), lehel (1: 7040977) andmebaasi "pubid" (andmebaasi ID 12). Lehekülje teave: LSN = (63192:958360:10), tippige = 2. Logiteave: OpCode = 2, seoses 1.


2003-07-09 14:31:35.92 spid66 tõrge: 823, raskusaste: 24, State: 2
2003-07-09 14:31:35.92 spid66 I/O error (halb lehe ID) avastatud read nihkes 0x00000016774000 fail "h:\sql\MSSQL\data\tempdb.mdf".

2010-02-06 15:57:24.14 spid17s tõrge: 3456, raskusaste: 21, riik: 1.
2010-02-06 15:57:24.14 spid17s kas teisendada logikirje (58997:5252:28), lehel (1: 480946) 'MyDatabase' (andmebaasi ID 17) andmebaasi kande ID (0: 109000187). Lehel Otsing = (58997:5234:17), tippige = 3. Logi: OpCode = 2, 5, seoses PrevPageLSN: (58997:5243:17). Andmebaasi varukoopia põhjal taastada või parandada andmebaasi.

Lisateabe saamiseks

Microsoft võttis kasutusele laiendatud jälgimise võimalusi alates SQL Server 2000 Service Pack 4 ja diagnostika on osa toote SQL Server 2005 ja uuemad versioonid. Neid võimalusi eesmärk on aidata tuvastada I/O seotud väliste probleemide ja jaotises "Tunnused" kirjeldatud tõrketeadete tõrkeotsing

Kui kuvatakse mõni jaotises "Tunnused" kirjeldatud tõrketeadete ja neid ei ole võimalik selgitada sündmus, näiteks füüsilise draivi tõrge, siis vaadake teadaolevad probleemid SQL serveri, operatsioonisüsteemi, draiverid ja riistvara. Diagnostika proovida anda teavet kaks järgmist tingimust:

  • Kadunud Write: Edukas kõne WriteFile API, kuid operatsioonisüsteem, draiveri või vahemällu kontrolleri pole õigesti flush andmed-füüsilise kandja isegi juhul, kui teatatakse SQL Server kirjutada õnnestus.

  • Aegunud Read: Edukas kõne ReadFile API, kuid operatsioonisüsteem, draiveri või selle valesti tagastab andmed vanem versioon.

Näiteks Microsoft on kinnitanud, juhul kui WriteFile API kõne käib edukas, kuid kohe, edukas read sama andmete blokeerida tagastab vanemate andmeid, sealhulgas tõenäoliselt riistvara, lugege vahemällu talletatud andmeid. Mõnikord see probleem ilmneb probleem Loe vahemälu. Mõnel juhul kirjutatakse kirjutada andmeid tegelikult kunagi füüsiline ketas.

Täiendavad diagnostika seda tüüpi probleemide lubamiseks lisas SQL serveri jälituslipp 818. Saate määrata jälituslipp 818 startup parameetrit-T818, arvuti, kus töötab SQL Server või saate käivitada järgmine teade:

DBCC TRACEON(818, -1)


Jälituslipp 818 võimaldab mälus ring puhver, et edukas viimase 2048 kirjutada toiminguid, mis tehakse arvuti, kus töötab SQL Server, välja arvatud sortimine ja workfile väljundtoimingute jälgimiseks kasutatakse. Vead, nagu näiteks 605, 823 või 3448 tõrke ilmnemisel sissetuleva puhver Logi jada number (LSN) väärtus võrreldes tehtud write loend. Kui lugemise ajal toodud LSN on üle kirjutada töötamise ajal määratud, logitakse uue tõrketeade SQL Server error log. Enamik SQL Server kirjutada toiminguid tekkida kontrollpunktid või laisk kirjutab. Laisk kirjutada on taust toimingu, mis kasutab I/O asünkroonse. Ring puhver rakendamine on kerge, muutes mõjutada tühine süsteemi jõudlust.

Järgmine teade viitab SQL Server ei saanud tõrge WriteFile API kõne või ReadFile API kõne. Kuid kui selle LSN oli läbi, väärtus ei olnud õige:


SQL Server on tuvastanud teatamata OS/riistvara tasemel lugemisel või kirjutamisel probleem andmebaasi 12 lehel (1: 75007)

LSN tagastatud (63361:16876:181), LSN oodata (63361:16876:500)

Pöörduge riistvara tarnija poole ja kaaluda keelamist vahemällu mehhanisme probleemi lahendamiseks


Alates SQL Server 2005, esitatakse tõrketeade on:


SQL serveri tuvastatud logical consistency-põhise I/O error: aegunud Read. See tekkis ajal << Read/Write >> lehe << PAGEID >> andmebaasi ID << DBID >> nihkes << füüsilise nihe >> faili << faili nimi >>. SQL Server error log või süsteemi sündmuselogis sõnumite pakkuda rohkem üksikasju. See on tõsine tõrge tingimusel, et ohustab andmebaasi terviklikkust ning tuleb kohe parandada. Täielik täieliku andmebaasi ühtsuse check (DBCC CHECKDB). See tõrge võib olla põhjustatud paljudest teguritest; Lisateabe saamiseks vaadake SQL Server Books Online.


Siinkohal Loe vahemälu sisaldab vanem versioon lehe või andmeid ei ole õigesti kirjutatud füüsiline ketas. Mõlemal juhul (Lost kirjutada või aegunud Read), teatab SQL serveri välise probleeme operatsioonisüsteemi, draiveri või riistvara kihid.

Kui proovite tagasipööramise tehingu, mis on vea 605 või tõrge 823 ilmneb tõrge 3448, arvuti, kus töötab SQL Server automaatselt sulgub andmebaasi ja proovib avada ja andmebaasi taastada. Vea 605 või tõrge 823 esilehel peetakse halb lehte ja lehe id jääb SQL serveriga töötava arvuti. Taastamisel (enne uuesti periood) halb lehe id loetakse päisesse peamine üksikasjad logitakse SQL Server error log. See toiming on oluline, sest see aitab eristada kadunud kirjutada ja aegunud Read stsenaariume.

Võidakse kuvada järgmised kaks levinud olukorrad aegunud Read stsenaariume.
Loetud vahemällu probleeme esinenud eelmises punktis kirjeldatud käitumise ja lahendatakse sageli, keelates Loe vahemälu. Toimingud, mis on välja toodud eelmises punktis tavaliselt sundida vahemälu kehtetuks ja edukas öeldud, et esineda Näita füüsilise kandja õigesti uuendatud. Kadunud kirjutada käitumine ilmneb siis, kui lehte, mis on uuesti lugeda on ikka vanemate versioonide andmed, isegi pärast sunnitud flush vahemällu mehhanisme.

Mõnikord ei pruugi probleemi teatud riistvara vahemälu. See võib olla probleem filtri draiver. Sellisel juhul vaadake oma tarkvara, sealhulgas backup Utiliidid ja viirusetõrje tarkvara ja seejärel näha, kas filtridraiveri probleemid.

Microsoft on märkinud ka tingimused, mis ei vasta kriteeriumidele vea 605 või tõrge 823, kuid põhjustavad sama kehtetud lugeda või kirjutada kadunud tegevuse. Mõnel juhul kuvatakse leht ajakohastada kaks korda, kuid sama LSN koos väärtuse. Selline käitumine võib ilmneda juhul, kui Objekti ID ja Lehe ID on õige (lehe juba eraldatud objekt) ja muutub lehele teinud ja kettale. Järgmisel lehel otsing tagastab vanemate pilte ja siis teise muudatuse tegemist. SQL serveri tehingulogi kuvatakse lehe värskendati kaks korda sama LSN väärtusega. See toiming muutub probleemiks, kui püüate taastada kanne logisse jada või andmete ühtsuse probleemid nagu keelevigadele võtme rikete või puuduvate andmete sisestamist. Üheks näiteks selline olukord näitab, kuvatakse järgmine tõrketeade:


Tõrge: 3456, raskusaste: 21, riik: 1 kas teisendada logikirje (276666:1664:19) puhul tehingu ID (0:825853240), lehel (1:1787100) andmebaasi "autorid" (7). Lehel Otsing (276658:4501:9) = tüüp = 1. Logi: OpCode = 4, 2, seoses PrevPageLSN: (275565:3959:31).


Mõnel juhul on välja toodud üksikasjalikumalt järgmistes loendites:

  • 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 serveri 'sordi' ettevõtjate toiminguteks I/O, peamiselt ja sealt tempdb andmebaasi. / V-toimingud sarnanevad puhver/v-toimingud; kuid nad on juba kavandatud kasutamiseks lugege proovi uuesti loogikat sarnaste probleemide lahendamiseks. Selles artiklis selgitatakse täiendavaid diagnostika/v-toimingud ei kehti.

Microsoft on märkinud, et järgmised sortimiseks põhjuseks lugeda vead on üldiselt aegunud Read või kadunud Write:


2003-04-01 20:13:31.38 spid122 SQL Server kinnitus: faili: < p:\sql\ntdbms\storeng\drs\include\record.inl > rida = 1447 nurjus kinnituse = ' m_SizeRec > 0 & & m_SizeRec < = MAXDATAROW'.

2003-03-29 09:51:41.12 spid57 sordi lugeda tõrge (halb lehe ID). pageid = (0x1:0x13e9), dbid = 2, file = e:\program files\Microsoft SQL Server\mssql\data\tempdb.mdf. Proovitakse uuesti.

2003-03-29 09:51:41.13 spid57 tõrge: 823, raskusaste: 24, State: 7
2003-03-29 09:51:41.13 spid57 I/O error (halb lehe ID) avastatud read nihkes 0x000000027d2000 fail '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)

Kliendid, kes neid sordi tõrkeid kogenud sageli lahendanud probleemid liigutades tempdb mitte vahemällu salvestamine kohalikule kettale või keelamine Loe vahemällu mehhanisme.

Kuna aegunud read või kadunud write tuleneb andmete salvestamise, mis ei ole tõenäoline, mitmesuguseid käitumine võib ilmneda. Võib tunduda, kuna puuduvad andmed, kuid mõned sagedamini mõju puuduvad andmed kuvatakse register corruptions, näiteks tõrge 644 või tõrge 625:


Tõrge 644 raskus tase 21 sõnumi teksti ei leia registrikirje RID ' %. * hs register lehe % S_PGID, indeksi ID %d andmebaasi ' %. * ls'.

Tõrge 625 raskus tase 21 sõnumi teksti ei saa rea lehe % S_PGID RID alla laadida, sest slotid (%d) ei kehti.


Mõned kliendid on teatanud puuduvad read pärast neid toiminguid rea arvu. See probleem ilmneb tõttu kadunud write. Võib-olla pidi lehe seotud klaster register lehe ahel. Kirjuta katkenud füüsiliselt, andmed on ka kadunud.

NB! Kui kogete ükskõik millist käitumist, või kui teil on sarnaseid probleeme koos keelamist vahemällu mehhanisme, tungivalt soovitab Microsoft SQL serveri ja uusim SQL serveri I/O pinge Simulator uusima värskenduse hankimiseks. Microsoft soovitab tungivalt ka, teha operatsioonisüsteemi ja selle seotud konfiguratsioonide range ülevaatamine.

Märkus. Microsoft on kinnitanud, et all haruldane ja raske I/O koormust, võib teatud riistvara platvormid tagasi aegunud read. Kui laiendatud diagnostika näitavad võimalikku Restoran read/kadunud kirjutada tingimuse, pöörduge oma riistvaratarnija poole seada kohe üles ja utiliiti SQLIOSim test.

SQL Server nõuab süsteemid, mis toetavad garanteeritud kohaletoimetamise stabiilne, nagu on kirjeldatud selle SQL serveri I/O töökindlust programmi nõuetele. SQL serveri andmebaasi mootor sisend- ja nõuete kohta lisateabe saamiseks vaadake Microsoft SQL serveri andmebaasi mootor sisend/väljund nõuded.

Siin on mõned täiendavat teavet selle teema kohta:

  • Kasutasin ReadFile ja WriteFile API näited. Selline käitumine kehtib ka hajumine ja koguda tegevust.

  • Oleme täheldanud mitu neist probleemidest viimasel ajal (juuli 2003) põhinevad Inteli Smart SCSI ja HP SANsin Lisaks Compaq/HP põhised arvutid, Raid kontrollerid.

  • Meil on probleem SQL Server 2000 Service Pack 3 (760), kui soovite näha ja hiljem järgud, kuid on näha sarnaseid juhtumeid enne SQL Server 2000 hoolduspakett SP3.

  • SQLIOStress on värskendatud olla agressiivne juures otsivad need tingimused.

  • SQL serveri arengu töötajad värskendab muude utiliitide tuvastamise probleemide lahendamisel aidata.

Autor:
Koostaja: haribaskar.janarthanam@wipro.com
Tehniline toimetaja: bobward; mikezw; ericchr Srikant.Jahangirdar@wipro.com (KSM Id: Partners\v-9srikantj)
Toimetaja: v-sedmun; vernettp

Kas vajate veel abi?

Täiendage oma oskusi
Tutvuge koolitusmaterjalidega
Kasutage uusi funktsioone enne teisi
Liitu Microsofti Insideri programmis osalejad

Kas sellest teabest oli abi?

Kui rahul te tõlkekvaliteediga olete?
Mis mõjutas teie kasutuskogemust?

Täname tagasiside eest!

×