عمليات الأوراكل Oracle Processes
العملية Process هي أسلوب يقوم بموجبه نظام التشغيل بتنفيذ مجموعة من المهام , وكل عملية تشبة البرنامج وتختلف عنه في أنها تعمل في خلفية نظام التشغيل , تسمي العمليات في أنظمة التشغيل بالمهام tasks أو الوظائف jobs .
هيئة الأوراكل تتكون من مجموعة من العمليات وهياكل الذاكرة . تنقسم عمليات الأوراكل إلي نوعين :
عمليات المستخدم User processes
عمليات الخادم Oracle processes
عمليات المستخدم User Processes
يتم إنشاء عملية المستخدم عند الإتصال بالأوراكل , لتنفيذ الأوامر التي ترد من المستخدم سواء أكانت عبارات sql أو غيرها , وتقوم هذه الخدمة بإدارة الإتصال بين المستخدم وقاعدة البيانات , ويمكن أن تتصل كل عملية مستخدم بخادم مخصص لها أو تتشارك في الخادم كما هو موضح بالشكل أدناه.
عمليات المستخدم وإتصالها بعملية الخادم
عمليات الأوراكل Oracle Processes
تقوم مجموعة متكاملة من العمليات بالعمل معا من أجل إدارة وتشغيل البيانات , وتشكل في مجملها وظائفها ما يسمي بهيئة الأوراكل . فهيئة الأوراكل هي عبارة عن مجموعه متكاملة من العمليات تعمل علي حفظ وإسترجاع وتأمين البيانات . وهذه العمليات هي :
عملية الخادم Server Process
يقوم الأوراكل بإنشاء هذه العملية لمتابعة عملية المستخدم user process وإدارة إتصالها مع الأوراكل . فعندما يقوم المستخدم بالأستعلام عن البيانات , تقوم عملية الخادم بالبحث عن البيانات في ذاكرة الأوراكل , فإن لم تجدها فإنها تقوم بقراءة ملفات البيانات data files وتقوم بوضعها في الذاكرة , وتعيدها إلي عملية المستخدم , ويمكن تلخيص مهام هذه العملية بالأتي :
إعراب وتنفيذ عبارات sql
قراءة كتل البيانات من ملفات قاعدة البيانات ووضعها في ذاكرة الأوراكل .
إرجاع نتيجة البحث إلي عملية المستخدم user process
المنجز Dispatcher
تعمل هذه العملية عند تفعيل الخادم التشاركي Shared Server التي تمكن اكثر من مستخدم من إستخدام عملية خادم واحدة , وتقوم هذه العملية بإدارة الإتصال بين الأوراكل وعمليات المستخدم كما بالشكل أدناه
عمليات المنجز وإتصالها بعملية الخادم
كاتب قاعدة البيانات database wirter(DBWn)
تقوم هذه العملية بكتابة البيانات التي يتم تعديلها في ذاكرة الأوراكل إلي كتل البيانات في ملفات قاعدة البيانات ,فعندما يتم تعديل كتلة من كتل البيانات في ذاكرة تسمي هذه dirty blocks وتكون وظيفة هذه العملية هي to clean dirty blocks . فكلما قامت عملية من خدمات المستخدم user process بكتابة بيانات في ذاكرة الأوراكل فإن هذه الكتلة لا يمكن إستخدامها ما لم يتم كتابتها إلي ملفات البيانات , ففي حالة عدم كتابة هذه الكتل فإن مساحة الذاكرة القابلة للأسترجاع والتعديل تتناقص إلي الحد الذي لا تجد بعده عملية المستخدم مساحة في الذاكرة , لذا فإن وظيفة هذه العملية هي ضمان حداثة البيانات الموجوده في الذاكرة وقابليتها للأستخدام مجددا , كما هو موضح بالشكل التالي :
تقوم هذه العملية بكاتبة الكتل الأحدث تعديلا , وبهذا فإننا نضمن وجود البيانات الأحدث إستخدماَ دوماَ في الذاكرة . وهذا ما يوفر تلك البيانات لإستخدامها مره أخري دون الحاجه إلي اعادة القراءة من ملفات البيانات الموجوده في وسائط التخزين ( القرص الصلب )
في الغالب تكون عملية واحدة من كاتب البيانات كافية لكتابة البيانات المعدلة , ولكن يمكن في حالة الحاجة زيادة العدد من هذه العملية , ويتم ذلك في حالة أن قاعدة البيانات تستقبل عدد كبير من التعديلات , ويتم ذلك بتعديل قيمة الوسيط التالي في ملف الوسائط الإبتدائية init.ora
Db_writer_processes=n
حيث أن n هي عدد صحيح بين 1 و 9
كاتب السجل log writer
كما أوضحنا سابقا فإن عملية كاتب البيانات تقوم بكتابة البيانات من الذاكرة إلي ملفات البيانات , ولضمان أمن البيانات فإن البيانات يتم كتابتها في موقع أخر هو ملفات الأرجاع قبل كتابتها إلي ملفات البيانات , فإن حدثت مشكله في عملية كتابة البيانات من الذاكرة إلي ملفات البيانات , فإن ملف الإرجاع يحوي نسخة يمكن استخدامها في تعويض البيانات المفقودة .
ولتحقيق ذلك فإن عملية متخصصة تقوم بكتابة البيانات من المساحة المخصصة في الذاكرة للإرجاع في ملفات الأرجاع , وهذه العملية هي كاتب السجل التي تقوم بكتابة الأتي في ملفات الأرجاع :
السجلات التي يقوم المستخدم بحفظها .
محتويات ذاكرة الإرجاع عندما تقترب من الإمتلاء
محتويات ذاكرة الإرجاع عندما تقوم عملية كاتب قاعدة البيانات بكتابة بيانات في ملفات قاعدة البيانات
محتويات ذاكرة الإرجاع كل 3 ثواني
هذه العملية تواصل عملية كتابة المدخلات إلي ملفات الإرجاع إلي حين إمتلاء ملفات الإرجاع , وحينها تتحول إلي ملف ارجاع أخر , وبعدها تقوم بالعوده إلي الملف الأول . بمعني أن تقوم تستخدم ملفات الإرجاع بشكل دائري .
كل قاعدة بيانات تحوي ملفي إرجاع كحد إدني , ويمكن أن يزيد عن ذلك بحسب حجم البيانات وسرعة التعديل .
عملية checkpoint(CKPT)
تقوم هذه العملية بتثبيت وضع البيانات وذلك بتحديث ترويسة Header ملفات البيانات , وذلك يتم بعد أن تقوم عملية كاتب البيانات dbwn بكتابة البيانات من الذاكرة إلي ملفات البيانات , ولتتم هذه العملية فيجب أن تتم كتابة جميع البيانات المعدلة من الذاكرة إلي ملفات البيانات , وهي عملية لا تحدث دائما , وإنما في بعض الحالات التي يجب أن تكون فيها ملفات البيانات متسقة مع الذاكرة , وهذا يتم في الحالات التالية :
عندما ملء سجل الإرجاع والتحويل إلي ملف جديد , وهو ما يسمي تبديل سجل الإرجاع redo log switch.
عند تجاوز الفترة الزمنية المحدده بالوسيط LOG_CHECKPOINT_TIMEOUT
عند الوصول إلي قيمة الوسيط الزمنية LOG_CHECKPOINT_INTERVAL
عندما تنفيذ العبارة alter system checkpoint
في حالة حدوث أي من الأحداث السابقة فإن وظيفة هذه العملية تكون :
التحقق من كتابة البيانات المعدلة في الذاكرة إلي ملفات البيانات عن طريق العملية dbwn ( لا تقوم الخدمة ckpt بكتابة البيانات بنفسها )
كتابة أو تعديل رقم تعديل النظام System Change Number (SCN) الأخير في ملفات البيانات .
كتابة أو تعديل رقم تعديل النظام System Change Number (SCN) الأخير في ملفات التحكم .
مراقب النظام system Monitor SMON
تقوم هذه العملية بإسترداد Recover عمليات هيئة الأوراكل في حالات فشل تلك العمليات في العمل عند تشغيل الهيئة . وهي تقوم أيضا بإخلاء المساحات غير المستخدمة من الجداول الفضائية tablespaces الخاصة بقاموس البيانات data dictionary.
مراقب العمليات process monitor PMON
مهمة هذه العملية هي مراقبة عمليات المستخدم , ومعالجة هذه العمليات عندما تفشل , مثلا عند كتابة الأمر alter system kill session..
فإن وظيفة هذه العملية هي أجراء استرجاع لعملية المستخدم recover user process . كما أن هذه الوظيفة تراقب العملية dispatcher والعملية SMON وتعمل علي أعادة تشغليهما عند الحاجة .
عملية الأرشفةARCH archiver
تقوم هذه العملية بكتابة نسخة من ملف الأرجاع Redo Log file , وتسمي الملفات التي تنشئها هذه العملية بسجلات الأرشفة archvie log , وتعمل هذه الخدمة ببناء هذه الملفات عندما تعمل بالنمط Archivelog
عملية الإسترداد RECO Recoverer
تقوم هذه العملية بمعالجة الحركات الموزعة غير المكتملة , فالحركات الموزعة distributed transactions هي الحركات التي تتم فيما بين قواعد البيانات الموزعة , فعندما تقوم قاعدة بيانات بإرسال بيانات إلي قاعدة بيانات أخري فإن بعض الحركات قد لا تتم بالكامل بسبب مشاكل مثل مشاكل الشبكات , فهذه الحركات تتم معالجتها بواسطة هذه العملية .