Nonstandard Block Size Pools
نشر بواسطة : Obay Salah , November 20, 2024
تسمح Oracle باستخدام Multiple Block Sizes في قاعدة البيانات، ولكن يجب أن يكون لكل Block Size Pool في Database Buffer Cache بنفس الحجم.
على سبيل المثال، لا يمكن عمل Cache لكتلة بحجم 8KB في Buffer بحجم 4KB.
يمكن أن يكون حجم الكتلة في قاعدة البيانات واحدًا من الأحجام التالية: 2KB، 4KB، 8KB، 16KB، أو 32KB. ومع ذلك، يتم اختيار Standard Block Size أثناء إنشاء قاعدة البيانات ولا يمكن تغييره بعد ذلك. إذا كان الحجم غير مناسب، يجب إنشاء قاعدة بيانات جديدة بحجم كتلة أكثر ملاءمة. يتم تحديد حجم الكتلة للقاعدة عن طريق المتغير DB_BLOCK_SIZE، والذي يكون بشكل افتراضي 2KB. ويُستخدم هذا المتغير لتنسيق SYSTEM وSYSAUX في ملفات بيانات الجداولpaces.
بعد إنشاء قاعدة البيانات، يمكن تنسيق الجداولpaces بأحجام كتل مختلفة، ويجب تحضير Pool في Database Buffer Cache بنفس حجم الكتلة.
لتهيئة هذه الـ Pools، يجب إعداد واحد أو أكثر من المتغيرات التالية:
- DB_2K_CACHE_SIZE
- DB_4K_CACHE_SIZE
- DB_8K_CACHE_SIZE
- DB_16K_CACHE_SIZE
- DB_32K_CACHE_SIZE
لاحظ أنه لا يمكن تهيئة المتغير DB_nK_CACHE_SIZE إذا كانت n تمثل Standard Block Size. يتم تهيئة Standard Block Size عبر المتغير DB_CACHE_SIZE.
إليك سيناريو: افترض أن لديك قاعدة بيانات تعمل على Standard Block Size يساوي 8KB، وكان هذا الاختيار هو الأنسب في غالب الأحيان. ولكن افترض أنك تحتاج إلى تخزين ملفات صوتية في قاعدة البيانات، ومن الطبيعي أن يكون حجم الكتلة 32KB هو الأنسب لتخزين BLOBs. في مثل هذه الحالة، يمكن إنشاء Tablespace بحجم كتلة 32KB ومن ثم تخزين LOB Segments فيه.
من أهم مميزات إمكانية استخدام قاعدة البيانات على Multiple Block Sizes هو أنه يمكن نقل الجداولpaces بين قواعد بيانات تعمل على Block Sizes مختلفة. على سبيل المثال، إذا كانت لديك قاعدة بيانات تعمل على 4KB Standard Block Size وترغب في نقلها إلى قاعدة بيانات تعمل على 8KB Standard Block Size، كل ما عليك هو تهيئة المتغير DB_4K_CACHE_SIZE في قاعدة البيانات الثانية لاستقبال الجداولpace، وسيتم إنشاء Buffer Pool بحجم الكتلة الجديد.
يجب التنبيه إلى أنه لا يمكن استخدام Nonstandard Block Size في Temporary Tablespace، ولكن يمكن استخدامها في Undo وUser Tablespace. كما أنه لا يمكن تقسيم Nonstandard Block Size إلى Keep أو Recycle Pool وإنما فقط إلى Default Pool.
إذا حاولت الآن إنشاء Tablespace باستخدام Nonstandard Block Size، ستفشل العملية (ORA-29339) لأن Buffer Cache Pool يعمل مع Standard Buffer.
عليك الآن تهيئة المتغير DB_16K_CACHE_SIZE لإنشاء Buffer Pool وفقًا لحجم الكتلة الجديد، ولكن بشرط ألا يتجاوز الحجم الكلي للذاكرة في SGA القيمة المحددة في المتغير SGA_MAX_SIZE. وإذا وصل الحجم الكلي للذاكرة في SGA إلى قيمته القصوى، يجب أولاً تقليل حجم أحد مكونات الذاكرة في SGA أو تعديل قاعدة البيانات لإغلاقها.
Comments
لايوجد تعليق حتى الان