Automatic Shared Memory Management (ASMM)
نشر بواسطة : Obay Salah , November 20, 2024
إدارة الذاكرة هي من الأمور التي تؤثر على الأداء. قد يقوم مدير قاعدة البيانات بتكوين SGA بصورة مثالية للعمل في الصباح، لكن هذه التهيئة قد لا تكون مثالية للعمل في ساعات المساء حيث تختلف طبيعة العمل بشكل كبير. على سبيل المثال، عمليات النسخ الاحتياطي باستخدام RMAN غالبًا ما تتم في المساء، ومن المؤكد أن عمليات النسخ الاحتياطي عبر RMAN تحتاج إلى مساحة أكبر في Large Pool لتشغيل عدد كبير من RMAN Channel Processes. لذا، فإن التهيئة المثالية لـ SGA تتغير حسب طبيعة العمل، مما يتطلب من مدير قاعدة البيانات مراقبة وإعادة تهيئة SGA وفقًا للاحتياجات.
ابتداءً من Oracle 10g، قدمت Oracle إدارة ذاكرة آلية (إدارة الذاكرة المشتركة التلقائية) للأجزاء المهمة في SGA، مما يخفف العبء عن مدير قاعدة البيانات من إدارة ومراقبة هذه الأجزاء الهامة يدويًا. يكفي أن يقوم المدير بتحديد Target_Size، وهو إجمالي المساحة المخصصة لـ SGA، بشرط ألا تتجاوز قيمة المتغير SGA_TARGET القيمة القصوى لـ SGA_MAX_SIZE.
SGA_MAX_SIZE هي أكبر قيمة يمكن أن تصل إليها مساحة الذاكرة في SGA. بمجرد أن يقوم مدير قاعدة البيانات بتحديد متغير SGA_TARGET، ستقوم Oracle بإدارة ومراقبة مكونات الذاكرة في SGA تلقائيًا.
المكونات الأساسية في SGA التي يتم إدارتها آليًا بواسطة Oracle هي:
- Database Buffer Cache Default Pool
- Shared Pool
- Large Pool
- Java Pool
إذا لم يتم تهيئة هذه المكونات، فسيتم تعيين قيمتها إلى صفر، وستديرها Oracle تلقائيًا وفقًا لاحتياجات العمل الحالية. أما إذا تم تكوينها، فستكون هذه التهيئة هي الحد الأدنى الذي لن يتم تقليصه بواسطة Automatic Shared Memory Management.
بالإضافة إلى ذلك، هناك مكونات أخرى من SGA التي لا تزال Oracle تديرها يدويًا:
- Database Buffer Cache Keep Pool
- Database Buffer Cache Recycle Pool
- Database Buffer Cache Nonstandard Block Size Pools
- Streams Pool
- Log Buffer
لتفعيل Automatic Shared Memory Management، يجب تهيئة متغير SGA_TARGET، الذي يحدد إجمالي الذاكرة المخصصة لـ SGA (بما في ذلك المكونات التي يتم إدارتها آليًا ويدويًا). عند بدء Instance، ستقوم Oracle بتكوين SGA بناءً على القيم الحالية للمتغيرات. إذا تجاوز إجمالي الذاكرة في SGA قيمة SGA_TARGET، سيتم تعطيل Automatic Shared Memory Management، وسيكون من الضروري إجراء التعديلات يدويًا.
بعد ذلك، سيعتمد النظام على ملف المتغيرات. إذا تم تشغيل Instance باستخدام SPFILE، ستقوم Oracle بكتابة التهيئة الحالية للمكونات الأربعة للذاكرة في ملف المتغيرات، مما يقلل الوقت الذي يستغرقه Oracle في تحديد القيم المثلى في عمليات الإقلاع التالية.
إذا تم تشغيل Instance باستخدام PFILE، فإن Automatic Shared Memory Management ستظل تعمل، لكن التهيئة الحالية ستفقد بعد الإغلاق الأول لـ Instance.
لتفعيل Automatic Shared Memory Management، يتم تهيئة متغير SGA_TARGET. عند تهيئة هذا المتغير، تقوم Oracle بإضافة عملية خلفية جديدة تسمى Memory Manager (MMAN)، التي تراقب النظام وتعدل موارد الذاكرة وفقًا للإعدادات المثلى.
SGA_TARGET هو متغير آلي، ولتمكين Automatic Shared Memory Management، يجب أن يكون المتغير STATISTICS_LEVEL مضبوطًا على TYPICAL أو ALL، وهي القيمة الافتراضية.
Comments
لايوجد تعليق حتى الان