Oracle Block Corruption
نشر بواسطة : Obay Salah , November 19, 2024
في الحقيقة ليس في وسع مدير قاعدة البيانات منع حدوث Block Corruption ولكن يستطيع اكتشاف هذه الكتل وربما التخفيف من آثار هذه الكتل الفاسدة.
على مستخدمي قاعدة البيانات أن يكون لدى مدير قاعدة البيانات استراتيجية جيدة للنسخ الاحتياطي يستطيع من خلالها معالجة مشكلة الكتل الفاسدة.
بالطبع يمكن أن يحدث Block Corruption على مستوى Online Redo Log File أو Archive Redo Log File أو Control File ولكن ما يهمنا هنا هو فقط Block Corruption الذي يحدث على Data File. وذلك لأن مدير قاعدة البيانات يمكنه تفادي مشكلة الكتل الفاسدة على مستوى Control File و Archive Redo Log File و Online Redo Log File عن طريق Multiplexing.
عموماً هناك نوعان من Block Corruption: النوع الأول هو Media Corruption وهي عبارة عن مشكلة تحدث في Block بحيث تصبح محتويات هذا الBlock غير مطابقة لشكل (Format) الأوراكل مما يعني أنه لا فائدة من وجود هذا الBlock.
والنوع الثاني هو Logical Corruption أو ما يسمى Software Corruption وفي هذا النوع يكون الBlock مطابقاً لشكل (Format) الأوراكل وكذلك Header Area صحيح وأيضاً Data Area لكن محتويات هذه الكتلة غير متسقة داخلياً. لكن حتى Software Corruption في الغالب لها ارتباط كذلك بالHardware ولكن كذلك في ظروف نادرة يمكن أن تحدث مشكلة الكتل الفاسدة عن طريق إنشاء الأوراكل لكتلة غير متناسقة.
عموماً هناك أكثر من متغير في ملف المتغيرات بقاعدة البيانات له ارتباط بموضوع Block Corruption فمن ذلك المتغير DB_BLOCK_CHECKSUM الذي يأخذ القيمة TRUE كقيمة افتراضية، هذا المتغير يساعدك على اكتشاف الأضرار التي حصلت بسبب التخزين في القرص، فلحظة عمل DBWn الذي يقوم بكتابة الBlock في القرص يقوم هذا المتغير بعمل Check للBlocks وتضمين ذلك في Header.
وعندما يقوم Server Process بقراءة ذلك الBlock يقوم Checksum بعمل مقارنة، بمعنى أن أي مشكلة حدثت بين DBWn ومحاولة قراءة تلك الكتلة سوف يتم اكتشافها، لذا تنصح شركة أوراكل أن يأخذ المتغير DB_BLOCK_CHECKSUM القيمة الافتراضية وهي TRUE، لذا أي مشكلة تحدث مادام الBlock في القرص أو أثناء كتابة أو قراءة ذلك الBlock سوف يتم اكتشافها.
لكن عموماً حتى لو أخذ هذا المتغير القيمة FALSE سيظل هذا المتغير نشطاً خلال System Tablespace.
وكذلك المتغير DB_BLOCK_CHECKING الذي يأخذ القيمة FALSE كقيمة افتراضية، يساعدك هذا المتغير على كشف الأضرار التي حدثت بسبب مشكلة في الذاكرة، فإذا تم وضع القيمة TRUE لهذا المتغير فإن ذلك سوف يؤثر على الأداء لذا تنصح شركة أوراكل أن يأخذ هذا المتغير القيمة الافتراضية وهي FALSE ما لم يكن هناك مشاكل محددة ذات صلة تتعلق بحصول مشاكل حدثت في الذاكرة.
Comments
لايوجد تعليق حتى الان