Діагностика SQL Server, додані для виявлення проблеми з повідомляється вводу-виводу застарілі читає або втрачені дані

Застосовується до: Microsoft SQL Server 2005 Compact EditionMicrosoft SQL Server 2005 Express EditionMicrosoft SQL 2005 Server Enterprise

Помилка #: 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... IAM вказує на те, що цю сторінку, розміщені на цей об'єкт

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" (база даних ID 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 помилка вводу-виводу (погано сторінки 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" (код 17 база даних). Сторінки: LSN = (58997:5234:17), введіть = 3. Журнал:, Код операції = 2, контекст 5, PrevPageLSN: (58997:5243:17). Відновити з резервної копії бази даних або відновлення бази даних.

Додаткові відомості


Корпорація Майкрософт, введений можливості розширеного відстеження, починаючи з пакетом оновлень 4 для SQL Server 2000, і ці діагностики був частина продукту в SQL Server 2005 і пізніших версій. Ці можливості, розроблені для визначення зовнішнього проблем, пов'язаних з вводу-виводу, а також неполадок, пов'язаних із повідомлення про помилки, описані в розділі "Ознаки"

Якщо з'являються повідомлення про помилки, які згадуються в розділі "Ознаки", і вони не пояснюються подію відмова фізичного диска, наприклад, перегляньте відомі проблеми з SQL Server, операційна система, драйвери та обладнання. Діагностика, спробуйте надати інформацію про два таких умов:
  • Утрачено записування: Успішно виклику WriteFile API, але операційної системи, драйвер або кешування контролера не належним чином скидання дані до фізичних пристроїв незважаючи на те, що SQL Server повідомив, що запис було успішно.
  • Застарілі читання: Успішно виклику ReadFile API, але операційної системи, драйвер або кешування контролер неправильно повертає стару версію даних.
Наприклад, корпорація Майкрософт підтвердила сценарії, де WriteFile API виклику повертається в тому, як успішно, але також перевірки, успішно читання, тому ж блока даних повертається в попередніх даних, включно з даними, ймовірно, зберігаються в обладнанні, прочитайте кеша. Інколи, ця проблема виникає через неполадку читання кеша. В інших випадках записування даних ніколи записується до фізичного диска.

Щоб увімкнути додатковий діагностики такі типи проблем, SQL Server додані 818 прапор трасування. Параметр для завантаження, можна вказати прапор трасування 818-T818, на комп'ютері, на якому запущено SQL Server або можна виконати наведену нижче інструкцію:
DBCC TRACEON(818, -1)

Прапор трасування 818, дає змогу в пам'яті дзвінка буфер, який використовується для відстеження, останній 2048-успішно, записування дій, які виконуються на комп'ютері, на якому не включає, сортування та workfile виконаних SQL Server. Під час помилки, наприклад помилки 605, 823 або 3448 входять у буфер журналу послідовність (LSN) значення в порівнянні з останніх списку записування. Якщо LSN, які завантажуються під час читання старіший за вказаний під час записування, повідомлення про помилку записується в журнал помилок SQL Server. Більшість операцій для записування SQL Server, виникають контрольні точки або як ледачий записування. Ледачий записування, це фонове завдання, яка використовує асинхронної операції. Здійснення дзвінка буфер є легкий, самим впливають в системі незначним продуктивність.

Таке повідомлення вказує на те, що SQL Server не отримав повідомлення про помилку з API-виклику WriteFile або ReadFile API виклику. Під час розгляду на LSN значення не було, правильно:

SQL Server виявлено в повідомляється рівня операційної системи та апаратного читання або проблема на сторінки бази даних, 12 (1:75007)

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 успішно погано сторінки та сторінки id зберігаються на комп'ютері, на якому SQL Server. Під час відновлення, (до етапу повторити) під час читання погано сторінки id, основний інформацію стосовно заголовок сторінки реєструються у журнал помилок SQL Server. Ця дія є важливим, через те, що допомагає відрізнити Lost запис на нього й застарілі читання сценарії.

Може відображатися таких ситуацій два поширених в застарілі читання сценарії:
Поведінки, які згадуються в попередній абзац вказують на читання проблеми кешування, а часто вирішено за допомогою вимкнення читання кеша. Дії, описані в попередній абзац, як правило, сили Анулювання кеша та успішної читає, які відбуваються слайдів, фізичних пристроїв оновлюється належним чином. Ускладнення, втрачено записування виникає сторінки, яка є читання все ще стару версію даних, навіть після примусового флеш кешування механізмів.

Інколи проблема може бути стосується устаткування кеша. Можливо, виникла неполадка драйвера фільтра. У таких випадках огляд програмного забезпечення, включаючи архівації та антивірусне програмне забезпечення, а потім перевірте, якщо виникають проблеми з драйвером фільтра.

Корпорація Майкрософт має також зазначено, умови, що не відповідають умовам помилки 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 . Дії вводу-виводу, які подібні до операцій вводу-виводу буфер; Проте вони вже були розроблені для використання читання повторити логіки для вирішення подібних проблем. Додаткові діагностики, які описано в цій статті не застосовуються до цих операцій вводу та виводу.

Корпорація Майкрософт зазначити, що причина для таких сортування прочитати, помилки, як правило, застарілі читання або записування Lost:

2003-04-01-20:13:31.38 spid122-SQL Server твердження: файл: < p:\sql\ntdbms\storeng\drs\include\record.inl >, рядок = 1447-Помилка твердження = ' m_SizeRec > 0 & & m_SizeRec < = MAXDATAROW ".

2003-03-29 09:51:41.12 spid57 сортування, прочитайте помилка (погано сторінки ID). pageid = (0x1:0x13e9), dbid = 2, файл = відомості з e:\program 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 помилка вводу-виводу (погано сторінки 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, індекс ID %d, СС, базу даних" %. * ls'.

Серйозність помилки 625 рівень 21 повідомлення не вдалося отримати рядок на сторінці %) S_PGID, за RID, через те, що slotid, (%d) не є дійсним.

Деякі користувачі повідомляють про відсутність рядків, після того, як вони виконати дії з кількість рядків. Ця проблема виникає, через втраченого записування. Може бути сторінки мав пов'язано Кластерний індекс ланцюжка сторінки. Якщо запис фізично втрачено, дані є також втрачено.

Увага! Ви відчуваєте поведінки, або якщо підозрілі подібних проблем із вимкнути кешування механізми, корпорація Майкрософт настійно рекомендує, вам отримати останні оновлення для SQL Server і останні SQL Server вводу-виводу навантаження Simulator. Корпорація Майкрософт також настійно рекомендує, виконання суворий огляд операційної системи та її конфігурації, пов'язані.

Примітка Корпорація Майкрософт підтвердила, що за рідко і значного навантаження вводу-виводу, деякі апаратних платформ може повернути застарілі читання. Якщо розширеного діагностики вказують на те можливо, застарілою читання/втратили записування стану, зверніться до виробника устаткування, негайного виконання до і перевірити з SQLIOSim . exe.

SQL Server, потрібен системи для підтримки гарантовано доставки стабільного носії, як зазначено в SQL Server вводу -виводу надійність вимоги програми. Щоб отримати додаткові відомості про вимоги до обробника баз даних SQL Server вводу та виводу переглянути Microsoft SQL Server бази даних системи вводу-виводу вимоги.