SQL Server диагностика, добавени към носителите/и установи неактуални чете или пише загубени

Работете навсякъде от всяко устройство с Microsoft 365

Надстройте до Microsoft 365, за да работите навсякъде с най-новите функции и актуализации.

Надстройване сега

ГРЕШКА #: 470086 (SQL Server 8.0)

Симптоми

Ако операционна система, драйвери или хардуерни проблеми, защото губи напишете условия или неактуални прочетете условията, може да видите съобщение за грешка, свързани с целостта на данните грешки 605, 823, 3448, 3456. Можете да получите съобщения за грешки, които са подобни на следните примери:


2003-07-24 16:43:04.57 spid63 Getpage: bstat = 0x9, sstat = 0x800, кеш
2003-07-24 16:43:04.57 spid63 pageno е/трябва да бъде: objid е/трябва да бъде:
2003-07-24 16:43:04.57 spid63 (1:7040966)/(1:7040966) 2093354622/2039782424

2003-07-24 16:43:04.57 spid63... Сега показва тази страница е разпределена за този обект

2003-07-24 16:52:37.67 spid63 грешка: 605, тежест: 21 състояние: 1
2003-07-24 16:52:37.67 spid63 Опитът за извличане на логическа страница (1:7040966) в базата данни "pubs" принадлежи на обект "автори", не за обект "заглавие".


2003-07-24 16:52:40.99 spid63 грешка: 3448, тежест: 21 състояние: 1
2003-07-24 16:52:40.99 spid63 не може да отмени регистрационен (63361:16876:181), за Идентификаторът (0:159696956), на страница (1:7040977), базата данни "pubs" (база данни Идентификатор 12). Страница информация: LSN = (63192:958360:10), въведете = 2. Информация от регистрационните файлове: кодът = 2, контекст 1.


2003-07-09 14:31:35.92 spid66 грешка: 823, тежест: 24, държава: 2
2003-07-09 14:31:35.92 spid66 входно-изходна грешка (bad страница ID) открити по време на четене на изместване 0x00000016774000 във файла "h:\sql\MSSQL\data\tempdb.mdf".

2010-02-06-15:57:24.14 spid17s грешка: 3456, тежест: 21 състояние: 1.
2010-02-06 15:57:24.14 spid17s не може да конвертирате регистрационен (58997:5252:28), за Идентификаторът (0:109000187), на страница (1:480946), базата данни "MyDatabase" (база данни ID 17). Страница: LSN = (58997:5234:17), въведете = 3. Регистъра: Кодът = 2, контекст 5, PrevPageLSN: (58997:5243:17). Възстановяване от резервно копие на базата данни или чрез базата данни.

Допълнителна информация

Microsoft въведе проследяване на разширени възможности започва със SQL Server 2000 Service Pack 4 и тези диагностика са част от продукта в SQL Server 2005 и по-нови версии. Тези възможности са предназначени за откриване/и външни проблеми, свързани с и за отстраняване на съобщения за грешка, описано в раздела "Симптоми"

Ако получите някое от съобщенията за грешки, споменати в раздела "Симптоми" и те не се обяснява със събитие като прекъсване на физически диск, след което прегледайте известни проблеми с SQL Server, операционната система, драйвери и хардуер. Диагностика се опита да предостави информация за следните две условия:

  • Загубена запис: Успешно извикване на API на WriteFile , но операционната система, драйвер или кеширане контролер не правилно бликвам данните на физическия носител въпреки че SQL Server е информиран, че запис е успешно.

  • Неактуални четене: Успешно извикване на API на ReadFile , но операционната система, драйвер или кеширане контролер неправилно се връща по-стара версия на данните.

Например Microsoft потвърждава когато WriteFile API повикване връща като успешно, но незабавно, успешно четене на същия блок данни връща по-стари данни, включително данни, които вероятно се съхранява в хардуера, прочетете кеш. Понякога този проблем възниква поради проблем в кеша за четене. В други случаи запис на данни не се записва на физически диск.

За да разрешите допълнителни диагностика за тези типове проблеми, SQL Server добави флаг за проследяване 818. Можете да зададете флаг за проследяване 818 като параметър за стартиране,-T818, на компютъра, на който работи SQL Server, или можете да изпълните следната команда:

DBCC TRACEON(818, -1)


Флаг за проследяване 818 позволява буфер в паметта ring, който се използва за проследяване на последния 2,048 успешно напишете операции, които се извършват от SQL Server, сортиране и workfile устройства на компютъра. При възникване на грешки, като грешка 605, 823 или 3448 входящи буфер регистрационен пореден номер (LSN) стойност е в сравнение с последните запис списък. Ако LSN, извлечени по време на операция за четене е по-голямо от указания по време на записа, ново съобщение за грешка се записва в регистрационния файл за грешки на SQL Server. Повечето операции за запис на SQL Server възникват като контролни точки или записи пише. Записи запис е основна задача, която използва асинхронно вход-изход. Изпълнението на звънене буфер е лек, което оказва влияние върху системата на незначителен изпълнение.

Следното съобщение показва, че SQL Server не получи съобщение за грешка от WriteFile API повикване или ReadFile API повикване. Обаче при прегледа е LSN стойността не е правилен:


SQL Server откри носителите OS/хардуерно ниво четене или запис на проблем на страница (1:75007) на база данни 12

LSN връща (63361:16876:181), LSN очаква (63361:16876:500)

Свържете се с производителя на хардуера и разгледа изключване кеширане механизми за отстраняване на проблема


Започвайки с SQL Server 2005, съобщението за грешка ще се отчита като:


SQL Server откри логическа последователност базирани входно-изходна грешка: неактуални четене. Възникна по време на << четене >> на страницата << PAGEID >> в базата данни Идентификатор << DBID >> на изместване << физически ИЗМЕСТВАНЕ >> във файла << име на файл >>. Допълнителни съобщения в SQL Server грешка регистър или система на събитията може да предостави повече подробности. Това е състояние на сериозна грешка, която заплашва целостта на базата данни и трябва да бъде коригирано веднага. Изпълнете проверка за съгласуваност на цялата база данни (DBCC CHECKDB). Тази грешка може да се дължи на много фактори; за повече информация вижте SQL Server Books Online.


В този момент прочетете Кешът съдържа по-стара версия на страницата, или данните не е правилно написана на физическия диск. И в двата случая (губи запис или неактуални четене) SQL Server отчита външен проблем с операционната система, драйвер или хардуерно слоеве.

Случай 3448 грешка при опит за възстановяването транзакция, която дава грешка 605 и грешка 823 работи SQL Server автоматично базата данни се затваря и се опитва да отвори и възстановяване на базата данни. Първата страница, която грешка 605 или грешка 823 се счита лошо страница и ИД на страницата се поддържа от компютъра, изпълняващ SQL Server. По време на възстановяване (преди фазата на връщане) при ИД на лоши страницата се чете, основната информация за заглавката на страницата са регистрирани в регистрационния файл за грешки на SQL Server. Това действие е важно, защото помага да направите разлика между губи запис и неактуални четене сценарии.

Можете да видите следните две общи поведение в остаряла четене сценарии:
Поведение, споменати в предходния параграф показва четене кеширане проблем и те често се решават от Деактивирането на кеша на четене. Действията, описани в предходния параграф обикновено сила кеш анулиране и успешното гласи възникващите показват, че физическия носител се актуализира правилно. Загубена напишете поведение възниква, когато на страницата, която се чете обратно все още е по-старата версия на данните, дори след принудително флаш кеширане механизми.

Понякога проблемът може да не важи за кеш на хардуера. Има проблем с драйвер. В тези случаи преглед на софтуер, включително помощни програми за архивиране и антивирусен софтуер и след това да видите дали има проблеми с филтърния драйвер.

Microsoft също отбелязва условия, които не отговарят на критериите за грешка 605 и грешка 823, но са причинени от същата неактуални четене или запис на загубени дейност. В някои случаи страницата изглежда се актуализира два пъти, но със същия LSN стойност. Този проблем може да възникне, ако ИД на обект и ИД на страница (страницата вече разпределени на обекта), и промяна се прави страницата изпразнен диск. Извличане на следващата страница се връща по-голямо изображение и след второто изменения. SQL Server регистър показва страницата е актуализиран два пъти с един и същ LSN стойност. Това действие се превръща в проблем при опит да възстановите регистър последователност транзакции или данни последователност проблеми, като например външен ключ грешки или липсващи данни. Следното съобщение за грешка показва пример за това:


Грешка: 3456, тежест: 21 състояние: 1 не може да повтори регистрационен (276666:1664:19), защото Идентификаторът (0:825853240), на страница (1:1787100), базата данни "авторите" (7). Страница: LSN = (276658:4501:9), въведете = 1. Регистъра: Кодът = 4, контекст 2, PrevPageLSN: (275565:3959:31).


Някои сценарии са описани подробно в следния списък:

  • 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 "Сортирай" оператори изпълняват/и дейности, предимно към и от базата данни tempdb . Тези входно-изходни операции са подобни на входно/изходните операции буфер; Въпреки това те са вече проектирани да използват логиката на четене опит за разрешаване на подобни проблеми. Допълнителната диагностика е обяснено в тази статия се отнася за тези входно-изходни операции.

Microsoft е отбелязано, че основната причина за следния вид чете грешки обикновено е остаряла четене или запис на загубени:


2003-04-01 20:13:31.38 spid122 SQL Server Assertion: файл: < p:\sql\ntdbms\storeng\drs\include\record.inl >, ред = 1447 неуспешно Assertion = ' m_SizeRec > 0 & & m_SizeRec < = MAXDATAROW ".

2003-03-29 09:51:41.12 spid57 сортиране прочетете грешка (bad страница ID). PageID = (0x1:0x13e9), dbid = 2, file = e:\program files\Microsoft SQL Server\mssql\data\tempdb.mdf. Повторен опит.

2003-03-29 09:51:41.13 spid57 грешка: 823, тежест: 24, държава: 7
2003-03-29 09:51:41.13 spid57 входно-изходна грешка (bad страница ID) открити по време на четене на изместване 0x000000027d2000 във файла "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)

Клиенти, които са имали нещо като тези грешки са често разрешите преместване tempdb -кеширане локален диск или деактивирането на четене кеширане механизми.

Тъй като остаряла четене или загубени пишете води до съхранение на данни, които не се очаква, голямо разнообразие от поведение може да възникне. Тя може да изглежда като липсващи данни, но някои от най-честите резултати от липсващи данни се показват като индекс повреди, например грешка 644 или 625 грешка:


Грешка 644 тежест ниво 21 съобщение текст не е намерена в индекса за RID "%. * високоскоростни индекс страница % S_PGID, индекс ИД %d, базата данни" %. * ls'.

Грешка 625 тежест ниво 21 текста на съобщението може да извлече ред от страница % S_PGID от RID защото slotid (%d) не е валиден.


Някои потребители са съобщили форматирането редове, които изпълняват ред брой дейности. Този проблем възниква поради загубени запис. Може би страницата е трябвало да бъдат свързани с веригата клъстерен индекс страница. Ако физически разпада запис, данните са загубени.

Важно: Ако имате някой от поведение, или ако сте подозрителни към подобни проблеми с изключване кеширане механизми, Microsoft настоятелно препоръчва, можете да получите най-новата актуализация за SQL Server и новите SQL Server/и стрес симулатор. Microsoft силно насърчава, че изпълнявате стриктно преглед на вашата операционна система и нейните свързани конфигурации.

Забележка Microsoft потвърждава, че при редки и голямо натоварване на вход-изход, някои хардуерни платформи може да върне неактуални четене. Ако диагностика на разширен възможно остаряла четене/загубени пишете състояние, обърнете се към доставчика на хардуера за незабавно изпълнение на и тестване с SQLIOSim програма.

SQL сървърът изисква системи за подпомагане гарантирана доставка стабилна носител, както е посочено в SQL Server/и надеждността на програмата изисквания. За повече информация относно изискванията на входа и изхода за ядрото на база данни на SQL Server вижте Microsoft SQL Server база данни двигател входно-изходна изисквания.

Ето допълнителна информация относно този проблем:

  • Използвах ReadFile и WriteFile API примери. Това важи и за точкова и събиране на дейност.

  • Някои от тези проблеми виждаме напоследък (юли 2003) на Compaq/HP базирани системи, Smart SCSI и HP SANsin допълнение към Intel базирани Raid контролери.

  • Сме виждали този проблем в SQL Server 2000 Service Pack 3 (760) и по-късно компилации, но виждали подобни ситуации преди SQL Server 2000 SP3.

  • SQLIOStress е актуализиран, за да бъде по-агресивен търси тези условия.

  • Развитие на SQL Server персонала актуализира други помощни програми за помощ при откриването на тези проблеми.

Автор:
Сценарист: haribaskar.janarthanam@wipro.com
Технически редактор: bobward; mikezw; ericchr Srikant.Jahangirdar@wipro.com (KSM Id: Partners\v-9srikantj)
Редактор: v-sedmun; vernettp

Нуждаете се от още помощ?

Разширете уменията си
Преглед на обучението
Получавайте първи новите функции
Присъединете се към Microsoft приобщени

Беше ли полезна тази информация?

Благодарим ви за обратната връзка!

Благодарим ви за вашата обратна връзка. Изглежда, че ще бъде полезно да ви свържем с един от нашите агенти по поддръжката на Office.

×