MSSQLSERVER_605

A következőkre vonatkozik:SQL Server

Részletek

Attribute Value
Termék neve SQL Server
Eseményazonosító 605
Eseményforrás MSSQLSERVER
Komponens SQLEngine
Szimbolikus név ROSSZ OLDAL
Üzenet szövege A %S_PGID logikai lap beolvasása az %d adatbázisból nem sikerült. A 64d %Ifoglalási egységhez tartozik, nem pedig %I64d-hez.

Explanation

Ez a hiba általában oldal- vagy allokációs korrupciót jelez a megadott adatbázisban. Az SQL Server korrupciót észlel, amikor táblázathoz tartozó oldalakat olvas, akár az oldallinkek követésével, akár az Index Allocation Map (IAM) használatával. Minden táblázathoz kijelölt oldal az adott táblázathoz tartozó allokációs egységek egyikéhez kell tartoznia. Ha az oldalfejlécben található allokációs egységazonosító nem egyezik a táblához tartozó allokációs egységazonosítóval, ez a kivétel felmerül. Az első azonosító egységazonosító, amely a hibaüzenetben szerepel, az oldalfejlécben található azonosító, a második allokációs egység érték pedig a táblához tartozó azonosító.

Adatkorrupciós hibák

A 21-es súlyossági szint potenciális adatkorrupciót jelez. Lehetséges okok lehetnek sérült oldallánc, sérült IAM vagy egy érvénytelen bejegyzés a sys.objects katalógusnézetben az adott objektumhoz. Ezeket a hibákat gyakran hardveres vagy lemezeszköz-illezőgép hibája okozza.

Átmeneti hibák

A 12-es súlyossági szint lehetséges átmeneti hibát jelez; vagyis a gyorsítótárban történik, és nem jelzi a lemezen lévő adatok károsodását. Az átmeneti 605 hibák az alábbi feltételek miatt alakulhatnak ki:

  • Az operációs rendszer idő előtt értesíti az SQL Server-t, hogy egy I/O művelet befejeződött; a hibaüzenet akkor is jelenik meg, hogy tényleges adatkorrupció nem történt.

  • Futtatni egy lekérdezést az Optimizer NOLOCK tipp-jellel, vagy a tranzakciós izolációs szintet OLVASÁS ELKÖTELEZETLEN szintre állítani. Amikor egy lekérdezés, amely NOLOCK vagy READ UNCOMMITTED tranzakciós izolációs szintet használ, megpróbálja olvasni az adatokat, amelyeket egy másik felhasználó mozgat vagy megváltoztat, 605 hiba jelentkezik. Annak ellenőrzéséhez, hogy átmeneti 605-ös hibaról van szó, később futtasd újra a lekérdezést.

Általánosságban, ha a hiba adathozzáférés közben jelentkezik, de a későbbi DBCC CHECKDB műveletek hiba nélkül teljesítettek, a 605-ös hiba valószínűleg átmeneti volt.

Felhasználói művelet

Ha a 605-ös hiba nem átmeneti, a probléma súlyos, és az alábbi feladatok elvégzésével kell orvosolni:

  1. Az üzenetben megadott allokációs egységekhez tartozó táblákat azonosítsa a következő lekérdezés futtatásával. Cseréld allocation_unit_id le a hibaüzenetben megadott allokációs egységekkel.

    USE [database_name];  
    
    GO  
    
    SELECT au.allocation_unit_id, OBJECT_NAME(p.object_id) AS table_name, fg.name AS filegroup_name,  
    
    au.type_desc AS allocation_type, au.data_pages, partition_number  
    
    FROM sys.allocation_units AS au  
    
    JOIN sys.partitions AS p ON au.container_id = p.partition_id  
    
    JOIN sys.filegroups AS fg ON fg.data_space_id = au.data_space_id  
    
    WHERE au.allocation_unit_id = '<allocation_unit_id>' OR au.allocation_unit_id = '<allocation_unit_id>'  
    
    ORDER BY au.allocation_unit_id;  
    
    GO  
    
  2. A DBCC CHECKTABLE-t indítsa el REPAIR záradék nélkül a táblázaton, amely a hibaüzenetben megadott második allokációs egységazonosítóhoz kapcsolódik.

  3. A DBCC CHECKDB-t REPAIR záradék nélkül a lehető leghamarabb végezze, hogy meghatározd a teljes korrupció mértékét az egész adatbázisban.

  4. Ellenőrizze a hibanaplót, hogy van-e más hibák, amelyek gyakran 605-ös hibával járnak, és vizsgáld meg a Windows Eseménynaplót rendszer- vagy hardverrel kapcsolatos problémák után. Javítsd ki a naplókban található hardverrel kapcsolatos problémákat.

Ha a probléma nem hardverrel kapcsolatos, hajtsa végre az alábbi feladatok egyikét:

  1. Állítsd vissza az adatbázist egy ismert, tiszta biztonsági mentésből. Használhatod az oldalvisszaállítás biztonsági mentést csak a sérült oldalak visszaállítására.

  2. Futtasd a DBCC CHECKDB-t a 3. lépésben végrehajtott DBCC CHECKDB művelet által javasolt REPAIR záradékkal a korrupció javítására. Ha a DBCC CHECKDB futtatása valamelyik JAVÍTÁS záradéktal nem oldja meg a problémát, vegye fel a kapcsolatot a fő ügyfélszolgálati szolgáltatójával. Legyen elérhető a DBCC CHECKDB kimenete az áttekintéshez.

    Caution

    Ha nem vagy biztos benne, milyen hatással van a DBCC CHECKDB JAVÍTÁSI záradéktal az adataidra, vegye fel a kapcsolatot a fő támogató szolgáltatójával, mielőtt lefuttatná ezt a kijelentést.