Consumer Groups
نشر بواسطة : Obay Salah , November 19, 2024
مستخدمي قاعدة البيانات ليسوا سواء؛ فمدير قاعدة البيانات ليس مثل مستخدم قاعدة البيانات الذي يقوم بإجراء عملية أو عمليتين في اليوم على قاعدة البيانات.
والمحاسب الذي يقابل العملاء منذ الصباح الباكر حتى الساعة الثالثة ظهرًا يختلف عن المدير المالي الذي يحتاج إلى تقارير في نهاية الدوام.
من هنا أتت الحاجة إلى تقسيم عادل في الموارد؛ خصوصًا إذا كانت الموارد محدودة جدًا والمستخدمون كثر.
ولنفترض هذا السيناريو أنك مدير لقاعدة بيانات بنك، هذا البنك يحتوي على مجموعة من الصرافين الذين يقومون بخدمة العملاء منذ الساعة الثامنة وحتى الثانية ظهرًا.
ولنفترض أن عددهم مائة صراف، وأن هناك الآلاف من العملاء يريدون صرف وتوريد أموالهم فإذا كان النظام بطيئًا ولا يستوعب هذا العدد من الصرافين نتيجة لأن عدد من مدراء الإدارات الأخرى يزحفون النظام منذ الصباح لاستخراج تقارير يمكن أن تؤجل إلى نهاية الدوام، إذا كان الوضع كذلك فستكون النتيجة كارثية وسينصرف أغلب هؤلاء العملاء لبنوك أخرى توفر لهم خدمة أفضل، في حين أنك لو قمت بإدارة جيدة للموارد المتاحة لما انصرف عنك عميل واحد وهو يندب حظه الذي أوصله إلى هذا البنك.
عمومًا سنواصل الشرح في هذا الفصل مستصحبين معنا هذا السيناريو، وهو لبنك يحتوي على عدد من الصرافين والموظفين المدراء ومدراء قاعدة البيانات.
الحقيقة أن مستخدمي قاعدة البيانات مقسمون إلى عدد من المجموعات تسمى Resource Manager consumer groups.
وأن هناك مجموعة من الخطط لعمل هذه المجموعات تسمى Resource Manager plans وتكون هناك خطة واحدة نشطة في قاعدة البيانات في اللحظة الواحدة.
ويتم تحديد هذه الخطة بواسطة المتغير RESOURCE_MANAGER_PLAN وفي الأصل يأخذ هذا المتغير القيمة NULL.
وبدءًا من الإصدار Oracle 8i بدأ استخدام إدارة الموارد (Resource Manager)، وتتم التهيئة الأولية للResource Manager منذ إنشاء قاعدة البيانات،
ولكن تظل هذه التهيئة غير مؤثرة في الواقع العملي.
Consumer Groups:
وهي عبارة عن مجموعة تضم عددًا من المستخدمين الذين يتشابهون في متطلبات الموارد، ومستخدم واحد قد يكون عضوًا في أكثر من مجموعة،
ولكن في اللحظة الواحدة أي Session تكون نشطة في مجموعة واحدة فقط، فلحظة إنشاء المستخدم Session يكون عضوًا نشطًا في المجموعة الأصلية،
لكن إذا كان هذا المستخدم عضوًا في عدد من المجموعات الأخرى فيمكنه الانتقال إلى مجموعة أخرى، أي بمعنى أنه يمكن أن يكون عضوًا نشطًا في مجموعة أخرى.
بالطبع لا يستطيع أن يكون عضوًا نشطًا في أكثر من مجموعة في نفس اللحظة.
في السيناريو السابق مجموعة الصرافين بالبنك تنتمي إلى Consumer Group واحدة تسمى Teller ومدراء الإدارات ينتمون إلى Consumer Group أخرى تسمى Manager.
عمومًا لحظة إنشاء قاعدة البيانات يتم إنشاء عدد من المجموعات.
SELECT CONSUMER_GROUP FROM DBA_RSRC_CONSUMER_GROUPS;
1- SYS_GROUP: في الوضع الطبيعي، هذه المجموعة لمُديري قواعد البيانات، وبالتحديد الأصل، تتضمن هذه المجموعة فقط المستخدم SYS والمستخدم SYSTEM.
SELECT USERNAME,INITIAL_RSRC_CONSUMER_GROUP FROM DBA_USERS WHERE USERNAME IN ('SYS','SYSTEM');
2- DEFAULT_CONSUMER_GROUP: هذه المجموعة تضم جميع المستخدمين الذين لم يتم تخصيص مجموعة لهم، في الأصل هذه المجموعة تتضمن جميع مستخدمي قاعدة البيانات ما عدا المستخدم SYS والمستخدم SYSTEM.
SELECT USERNAME,INITIAL_RSRC_CONSUMER_GROUP FROM DBA_USERS WHERE USERNAME NOT IN ('SYS','SYSTEM');
3- OTHER_GROUPS: جميع المستخدمون الأعضاء في هذه المجموعة تستخدم هذه المجموعة عندما يكون المستخدم المتصل بقاعدة البيانات عضواً في مجموعة غير مضمنة في Resource Manager Plan النشطة الحالية.
4- LOW_GROUP: هذه المجموعة مخصصة للجلسات ذات الأولوية المتأخرة.
5- AUTO_TASK_CONSUMER_GROUP: هذه المجموعة مخصصة لاستخدام وظائف صيانة النظام.
Comments
لايوجد تعليق حتى الان