تشخيص SQL Server إضافة إلى الكشف عن المبلغ عنه مشاكل الإدخال/الإخراج بسبب فقدان الكتابة أو القراءة التي لا معنى لها

الخطأ رقم: 470086 (SQL Server 8.0)

الأعراض

إذا فقد سبب مشاكل نظام التشغيل أو برنامج تشغيل الجهاز كتابة شروط أو ظروف القراءة التي لا معنى لها، فقد تشاهد رسائل الخطأ المتعلقة بتكامل البيانات مثل أخطاء 605، 823، 3448، 3456. قد تتلقى رسائل خطأ تتشابه مع الأمثلة التالية:

2003/07/24 16:43:04.57 جيتباجي spid63: بسطة = 0x9، ستة = 0x800، ذاكرة التخزين المؤقت
هو باجينو spid63 16:43:04.57 2003/07/24/يجب أن تكون: هو objid/يجب أن تكون:
2003-07-24 16:43:04.57 spid63 (1:7040966)/(1:7040966) 2093354622/2039782424

2003/07/24 spid63 16:43:04.57... إدارة الهوية تشير إلى تلك الصفحة ويخصص لهذا الكائن

2003/07/24 16:52:37.67 spid63 خطأ: 605، الخطورة: حالة 21,: 1
2003/07/24 16:52:37.67 spid63 تمت محاولة الجلب الصفحة المنطقية (1:7040966) في قاعدة البيانات '' ينتمي إلى كائن 'الكتاب'، ليس للكائن 'العناوين'...

2003/07/24 16:52:40.99 spid63 خطأ: 3448، الخطورة: حالة 21,: 1
يمكن التراجع spid63 16:52:40.99 2003/07/24 عن سجل (63361:16876:181)، لمعرف الحركة (0:159696956) في الصفحة (1:7040977)، قاعدة البيانات '' (قاعدة بيانات معرف 12). معلومات الصفحة: LSN = (63192:958360:10)، نوع = 2. تسجيل معلومات: اختصارات = 2، سياق 1...

خطأ spid66 14:31:35.92 2003-07-09: 823، الخطورة: حالة 24،: 2
2003-07-09 14:31:35.92 spid66 الإدخال/الإخراج (معرف الصفحة غير صحيحة) تم الكشف عن خطأ أثناء القراءة عند الإزاحة 0x00000016774000 في الملف 'h:\sql\MSSQL\data\tempdb.mdf'...

2010-02-06 خطأ spid17s 15:57:24.14: 3456، الخطورة: حالة 21,: 1.
لا يمكن إعادة spid17s 15:57:24.14 2010-02-06 سجل (58997:5252:28) لمعرف الحركة (0:109000187) في الصفحة (1:480946)، قاعدة البيانات 'MyDatabase' (قاعدة بيانات 17 معرف). الصفحة: LSN = (58997:5234:17)، نوع = 3. سجل: شفرة تشغيل = 2، سياق 5، بريفباجيلسن: (58997:5243:17). استعادة من نسخة احتياطية من قاعدة البيانات أو إصلاح قاعدة البيانات.

مزيد من المعلومات

عرض Microsoft قدرات تعقب الموسعة بدءاً من SQL Server 2000 Service Pack 4 وتم تشخيص هذه جزء من المنتج في SQL Server 2005 والإصدارات الأحدث. تم تصميم هذه القدرات للمساعدة في الكشف عن المشاكل الخارجية المرتبطة بالإدخال/الإخراج واستكشاف أخطاء رسائل الخطأ الموضحة في قسم "مؤشرات الخطأ"

إذا تلقيت أي من رسائل الخطأ المذكورة في قسم "الأعراض" ولا يمكن تفسيره بحدث مثل فشل محرك أقراص، قم بمراجعة أية مشاكل معروفة مع SQL Server ونظام التشغيل، وبرامج التشغيل والأجهزة. حاول التشخيص لتوفير معلومات حول الشرطين التاليين:
  • فقدان الكتابة: استدعاء ناجح إلى WriteFile API، ولكن نظام التشغيل أو برنامج تشغيل وحدة تحكم التخزين المؤقت لا بشكل صحيح تدفق البيانات إلى الوسائط الفعلية على الرغم من أن يحاط SQL Server عملية الكتابة ناجحة.
  • القراءة التي لا معنى لها: نجاح استدعاء API ReadFile ، لكن نظام التشغيل أو برنامج تشغيل وحدة تحكم التخزين المؤقت بشكل غير صحيح بإرجاع إصدار أقدم من البيانات.
على سبيل المثال، أقرت Microsoft سيناريوهات حيث عاد مكالمة WriteFile API بأنها كانت ناجحة، ولكن لقراءة فورية وناجحة من نفس كتلة البيانات بإرجاع البيانات القديمة، بما في ذلك البيانات التي يتم تخزينها غالباً في جهاز قراءة ذاكرة التخزين المؤقت. في بعض الأحيان، تحدث هذه المشكلة بسبب وجود مشكلة في ذاكرة التخزين المؤقت لقراءة. في حالات أخرى، ابدأ في الواقع تتم كتابة كتابة البيانات إلى القرص الفعلي.

لتمكين تشخيصات إضافية لهذه الأنواع من المشاكل، أضاف SQL Server علامة تتبع 818. يمكنك تحديد علامة تتبع 818 كمعلمة بدء تشغيل-T818، للكمبيوتر الذي يقوم بتشغيل SQL Server، أو يمكنك تشغيل العبارة التالية:
DBCC TRACEON(818, -1)

تمكين إشارة تتبع 818 مخزن حلقة في الذاكرة المستخدمة لتعقب كتابة الأخير 2.048 نجاح العمليات التي يتم تنفيذها من قبل كمبيوتر يستخدم SQL Server، لا بما في ذلك ووركفيلي عمليات الإدخال/الإخراج والفرز. عند حدوث أخطاء مثل خطأ 605 أو 823 3448، تتم مقارنة قيمة رقم (LSN) التسلسل السجل المخزن المؤقت الواردة بقائمة الكتابة الحديثة. إذا أقدم من المعين أثناء عملية الكتابة الشبكة التي تم استردادها أثناء عملية قراءة، يتم تسجيل رسالة خطأ جديدة في سجل خطأ SQL Server. تحدث معظم عمليات الكتابة SQL Server كنقاط التفتيش أو الكتابة البطيئة. كتابة البطيئة هي مهمة خلفية التي تستخدم إدخال/إخراج غير متزامن. تنفيذ المخزن المؤقت الحلقي خفيفة الوزن، مما يجعل أداء تؤثر على النظام جديرة بالاهتمام.

تشير الرسالة التالية إلى أن SQL Server لم يتلق خطأ من استدعاء API WriteFile "أو" ReadFile API الاستدعاء. ومع ذلك، عند استعراض الشبكة، القيمة غير صحيح:

اكتشف خادم SQL مستوى نظام تشغيل ومعدات الصيد قراءة أو كتابة المشكلة في الصفحة (1:75007) من قاعدة البيانات 12

إرجاع الشبكة (63361:16876:181)، المتوقع الشبكة (63361:16876:500)

اتصل ببائع الجهاز ولا تنس تعطيل التخزين المؤقت آليات لحل المشكلة

بدءاً من SQL Server 2005، رسالة الإعلام بالخطأ وسيتم إيراد ك:

SQL Server تم الكشف عن خطأ إدخال/إخراج المستندة إلى الاتساق منطقي: "القراءة التي لا معنى لها". أثناء وضع << قراءة وكتابة >> صفحة << باجيد >> في معرف قاعدة البيانات << DBID >> عند الإزاحة << "مقابل" >> في الملف << "اسم الملف" >>. قد توفر رسائل إضافية في SQL Server خطأ نظام أو سجل سجل الأحداث مزيدا من التفاصيل. وهذا شرط خطأ هام فإنه يهدد تكامل قاعدة البيانات ويجب تصحيحها فورا. إكمال التحقق من تناسق قاعدة بيانات كاملة (DBCC CHECKDB). يمكن أن يحدث هذا الخطأ بعوامل كثيرة؛ لمزيد من المعلومات، راجع "كتب SQL Server عبر إنترنت".

عند هذه النقطة، أما قراءة ذاكرة التخزين المؤقت يحتوي على إصدار قديم من الصفحة، أو لا تمت كتابة البيانات بشكل صحيح إلى القرص الفعلي. في كلتا الحالتين (فقدان الكتابة أو القراءة التي لا معنى لها)، تقارير SQL Server مشكلة خارجية مع نظام التشغيل أو برنامج تشغيل أو طبقات الأجهزة.

في حالة حدوث 3448 خطأ عند محاولة الاستعادة حركة 605 خطأ أو 823 خطأ، الكمبيوتر الذي يستخدم SQL Server تلقائياً إغلاق قاعدة البيانات ويحاول فتح واسترداد قاعدة البيانات. تعتبر الصفحة الأولى التي يواجه 605 خطأ أو 823 خطأ صفحة غير صالح، ومعرف الصفحة يتم الاحتفاظ بالكمبيوتر الذي يستخدم SQL Server. أثناء الاسترداد (قبل مرحلة إعادة) عند قراءة معرف الصفحة غير صحيح، يتم تسجيل التفاصيل الأساسية حول رأس الصفحة في سجل خطأ SQL Server. هذا الإجراء مهم لأنه يساعد على التمييز بين سيناريوهات فقدان الكتابة والقراءة التي لا معنى لها.

قد تشاهد سلوك العامة اثنين التالية في السيناريوهات "التي لا معنى لها القراءة":
التصرفات المذكورة في الفقرة السابقة تشير إلى وجود مشكلة التخزين المؤقت قراءة وكثيراً ما تحل عن طريق تعطيل ذاكرة التخزين المؤقت القراءة. فرض الإجراءات المذكورة في الفقرة السابقة بشكل عام إبطال ذاكرة التخزين المؤقت والقراءات الناجحة التي تحدث عن إظهار تحديث الوسائط الفعلية بشكل صحيح. يحدث السلوك "فقدان الكتابة" عندما تكون الصفحة التي يتم قراءتها لا يزال إصدار أقدم من البيانات، حتى بعد تدفق فرض آليات التخزين المؤقت.

في بعض الأحيان، قد تكون المشكلة غير خاصة بذاكرة التخزين مؤقت لأجهزة. قد تكون مشكلة باستخدام برنامج تشغيل عامل تصفية. في مثل هذه الحالات، مراجعة البرامج، بما في ذلك المرافق الاحتياطية وبرامج مكافحة الفيروسات، وثم معرفة إذا كان هناك مشاكل مع برنامج تشغيل عامل التصفية.

كما لاحظت Microsoft الشروط التي لا تفي بالمعايير 605 خطأ أو 823 خطأ ولكن ناتجة عن النشاط نفسه فقد الكتابة أو القراءة التي لا معنى لها. وفي بعض الحالات، تظهر صفحة لتحديث مرتين ولكن مع الشبكة نفس القيمة. قد تحدث هذه المشكلة إذا كان معرف الكائن و معرف الصفحة الصحيح (الصفحة المخصصة للكائن بالفعل)، وتغيير تم إجراؤها على الصفحة ومسح إلى القرص. استرداد الصفحة التالية بإرجاع صورة القديمة، وثم يتم إجراء تغيير آخر. يظهر سجل المعاملات SQL Server أنه تم تحديث الصفحة مرتين بنفس قيمة الشبكة. يصبح هذا الإجراء مشكلة عند محاولة استعادة تسلسل سجل حركة أو مشاكل تناسق البيانات، مثل فشل المفتاح الخارجي أو إدخالات البيانات المفقودة. رسالة الخطأ التالية توضح مثال على هذه الحالة:

خطأ: 3456، الخطورة: حالة 21,: 1 لا يمكن إعادة تسجيل سجل (276666:1664:19) لمعرف العملية (0:825853240) في الصفحة (1:1787100)، قاعدة البيانات 'الكتاب' (7). الصفحة: LSN = (276658:4501:9)، نوع = 1. سجل: شفرة تشغيل = 4، سياق 2، بريفباجيلسن: (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 'فرز' الإدخال/الإخراج الأنشطة، أساسا، من قاعدة بيانات . تشبه هذه عمليات الإدخال/الإخراج مع عمليات الإدخال/الإخراج المخزن المؤقت؛ ومع ذلك، كانت مسبقاً تم تصميمها لتستخدم منطق القراءة "إعادة المحاولة" لمحاولة حل مشكلات مشابهة. التشخيص الإضافية الموضحة في هذه المقالة لا تنطبق على عمليات الإدخال/الإخراج.

لاحظ أن السبب الجذري للفرز التالي قراءة الفشل بشكل عام فقدان الكتابة أو القراءة التي لا معنى لها Microsoft:

20:13:31.38 2003/04/01 spid122 تأكيد ملقم SQL: ملف: < p:\sql\ntdbms\storeng\drs\include\record.inl > الخط = "توكيد فشل" 1447 = 'm_SizeRec > 0 & & m_SizeRec < = ماكسداتاروو'.

2003/03/29 09:51:41.12 قراءة فرز spid57 الفشل (معرف الصفحة غير صحيحة). باجيد = (0x1:0x13e9)، dbid = 2، الملف = e:\program مايكروسوفت SQL Server\mssql\data\tempdb.mdf. إعادة المحاولة.

خطأ spid57 09:51:41.13 2003/03/29: 823، الخطورة: حالة 24،: 7
تم الكشف عن خطأ إدخال/إخراج spid57 09:51:41.13 2003/03/29 (معرف الصفحة غير صحيحة) أثناء القراءة عند الإزاحة 0x000000027d2000 في الملف 'مايكروسوفت e:\program 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) (ميرجيروو + 000000A4)
* 008522B3 Module(sqlservr+004522B3) (merge_getnext+00000285)
* 0085207D Module(sqlservr+0045207D) (mergenext+0000000D)
* 004FC5FB Module(sqlservr+000FC5FB) (getsorted+00000021)

العملاء الذين تعرضوا لهذه الأخطاء الفرز كثيرا ما حل المشاكل عن طريق نقل بيانات إلى محرك أقراص محلي غير التخزين المؤقت، أو عن طريق تعطيل آليات التخزين المؤقت القراءة.

لقراءة تالفة أو كتابة فقد نتج عن تخزين البيانات غير متوقع، قد تحدث تشكيلة واسعة من السلوكيات. قد يظهر كفقدان البيانات، ولكن بعض المؤثرات الأكثر شيوعاً من فقدان البيانات تظهر كمؤشر الفساد، مثل 644 خطأ أو 625 خطأ:

خطأ 644 "الخطورة مستوى 21 رسالة النص تعذر" العثور على إدخال الفهرسة ل RID '%. * قاعدة بيانات النظام المنسق في فهرس الصفحة % S_PGID، معرف الفهرس % d' %. * ls '.

يتعذر استرداد نص الرسالة مستوى 21 خطورة الخطأ 625 الصف من الصفحة % S_PGID ب RID لأن slotid (% d) غير صالح.

وصلت بعض العملاء من فقدان الصفوف بعد أنها تقوم بأنشطة عدد الصفوف. تحدث هذه المشكلة بسبب فقدان كتابة. وربما كان من المفترض الصفحة مرتبطة بسلسلة صفحة فهرس متفاوت المسافات. إذا كان فقدان فعلياً عملية الكتابة، كما يتم فقدان البيانات.

هام: إذا واجهت أي السلوك، أو إذا ساورك الشك من مشاكل مماثلة مع تعطيل آليات التخزين المؤقت، تنصح Microsoft بشدة التي يمكنك الحصول على آخر تحديث ل SQL Server ومحاكي الإجهاد الإدخال/الإخراج ملقم SQL أحدث. تشجع شركة Microsoft أيضا بشدة إجراء مراجعة صارمة لنظام التشغيل الخاص بك وتكويناته المقترنة.

ملاحظة: أقرت Microsoft أن تحت تحميل الإدخال/الإخراج نادرة وثقيلة، بعض الأنظمة الأساسية للأجهزة يمكن إرجاع قراءة التي لا معنى لها. إذا قديمة يمكن الإشارة إلى تشخيص الموسعة القراءة أو المفقودة الكتابة شرط اتصل ببائع الجهاز للمتابعة الفورية إعداد واختبار باستخدام الأداة المساعدة سقليوسيم .

يتطلب ملقم SQL أنظمة لدعم التوصيل المضمون لوسائل الإعلام مستقرة كما هو موضح تحت شروط برنامج الموثوقية الإدخال/الإخراج ملقم SQL. لمزيد من المعلومات حول متطلبات الإدخال والإخراج لمشغل قاعدة بيانات SQL Server، راجع متطلبات الإدخال/الإخراج مشغل قاعدة بيانات خادم SQL ل Microsoft.
خصائص

رقم الموضوع: 826433 - آخر مراجعة: 15‏/01‏/2017 - المراجعة: 2

تعليقات