Oracle Instance Architecture
نشر بواسطة : Obay Salah , November 18, 2024
بغير هذا الجزء لانستطيع الوصول لقاعدة البيانات فهي عبارة عن جزء من الذاكرة ومجموعة من المعالجات نستطيع من خلالها التعامل والوصول لقاعدة البيانات وهي تتكون من جزئين رئيسيين:-
- Memory Structure
- Background Processes
:Memory Structure -1
وهي تتكون لحظة فتح ال shared Global Area وهي عبارة عن جزء من الذاكرة يتم تخصيصة لعمل قاعدة البيانات اوركال
وهي تتكون من جزئين:-
- (System Global Area (SGA
- (Program Global Area (PGA
:System Global Area (SGA) - 1
وتسمى أيضا الshared Global Area وهي جزء من الذاكرة يخصص للمعلومات التي تكون مشتركة ومتاحة لجميع مستخدمس قواعد البيانات,وتحتوي على معلومات التحكم التي تستخدم من قبل الOracle Server وهي تتكون من الVirtual Memory وتتكون لحظة فتح الInstance , وسعة هذة الذاكرة تتحدد بواسطة المتغير SGA_MAX_SIZE في المتغيرات (Parameter File) وهي ذاكرة الية اي يمكن تغير حجمها دون اغلاق قاعدة البيانات
وهي تتكون من قسمين :-
- Mandatory Memory
- Optional Memory
:Mandatory Memory
1- Shared Pool:
ويتم التحكم في حجم هذة الذاكرة بواسطة المتغير SHARED_POOL_SIZE وتحنوي على جزئين:
Library Cache -1
Data Dictionary Cache -2
Database Buffer Cache -2 : ويتم التحكم في حجم هذا الجزء من الذاكرة بواسطة المتغير .DB_CACHE_SIZE
SQL> ALTER SYSTEM SET DB_CACHE_SIZE = 69M;
وهكذا باقي أجزاء الذاكرة يتم التعديل بنفس الطريقة السابقة.
3- Redo Log Buffer : ويتم تحديد سعة هذا الجزء من الذاكرة بواسطة المتغير LOG_BUFFER.
: Optional Memory
Large Pool -1
Java Pool -2
Streams Pool -3
يمكن معرفة حجم الSGA بالنظر ﻓﻲ ملف المتغيرات (Parameters File) ،أو عن طريق كتابة الأمر التالي: -
SQL> SHOW SGA
او عن طريق الاستلاع V$SGA
:Program Global Area (PGA) - 2
Instance وهي جزء من الذاكرة تتكون خارج ال Process Global Area وتسمى أيضًا
الحالية ويتكون هذا الجزء من الذاكرة لحظة Server Process وهي تحتوى على معلومات خاصة بال
وهذا الجزء ليس متاحًا لباقي .Server Process وتنتهي لحظة انتهاء إل .Server Process إنشاء إل
خاصة به تحتوى على معلومات خاصة PGA في قاعدة البيانات Server Process المتصلين أي لكل
به .وهى تحتوى على ثلاثة أجزاء :-
Private SQL Area -1
Session Memory -2
SQL Work Area -3
:Background Processes -2
وقبل الحديث عن الProcesses Background لا بد من التنبيه لأن هناك ثلاثة أنواع من إلProcesses -
١- User process -: وهو يبدأ العمل عندما يطلب المستخدم الاتصال بقاعدة البيانات عن طريق أحد أدوات قاعدة البيانات.
٢- Server Process -: ويتم إنشاؤه لحظة الاتصال بالInstances بعد طلب الProcess User الاتصال بقاعدة البيانات، فيتم التحقق من المستخدم فلحظة الاتصال هي لحظة إنشاء إلProcess Server وهو يكون بين إلProcess User والInstance ، فلكل Process User في قاعدة البيانات Process Server خاص به هذا إذا كنا نعمل في بيئة إلServer Dedicated أما إذا كنا نعمل في بيئة إلServer Shared فالأمر يختلف قليلاً، (سنناقش هذا الأمر لاحقاً) .
٣ - Background Processes: - وهذا موضوع نقاشنا في هذه الفقرة وهو عبارة عن معالجات تعمل في قاعدة البيانات بحيث تقوم بمهام مختلفة تبدأ العمل لحظة فتح إلInstance، وتنقسم إلى قسمين
- Mandatory: لا بد من عملها لحظة فتح ال Instance كما هو موضح في الشكل
- Optional: وبدونها تستطيع إلInstance العمل وهذا النوع يعمل في بعض الأحوال التي يتم فيها تهيئة قاعدة البيانات للعمل على خيارات معينة.
Mandatory Processes :
لا يمكن لقاعدة البيانات العمل دون هذه ال (Processes) وهى:-
System Monitor (SMON) -1 :
وأقصى عدد لهذا الProcess في قاعدة البيانات هو ،١ ويقوم بعمل الاسترجاع (Recovery (إذا حصل مشكلة فئ الInstance، وإذا كنا نعمل على البيئة (RAC (Real Application Clusters وهى عمل أكثر من Instance في قاعدة البيانات الواحدة فإن الSMON في الInstance السليمة يستطيع عمل Recovery للInstance الأخرى التي حدثت فيها مشكلة . كذلك يستطيع الSMON عمل تنظيف للSegments المؤقتة التي لم يتم استخدامها من فترة طويلة.
Process Monitor (PMON) -2:
وأقصى عدد لهذا الProcess في قاعدة البيانات هو ،١ ويقوم بعمل Recovery للProcess إذا حدثت مشكلة في ال User Process ، كذلك يقوم بتنظيف ال Cache Database Buffer لإتاحة المصادر في هذا الجزء من الذاكرة للProcess، وكذلك يقوم بتسجيل المعلومات حول الInstance والDispatcher Processes ، وأيضا يقوم بعمل اختبار للDispatcher Processes وال Server Processes ويقوم بعمل إعادة تشغيل في حالة وجود مشكلة فيها.
Log Writer (LGWR) -3:
وأقصى عدد لهذا الProcess في قاعدة البيانات هو ،١ ويقوم بتسجيل البيانات الموجودة في الRed Log Buffer في الRedo Log Files ، ويقوم بهذه العملية في الأحوال الآتية -:
1- لحظة عمل Commit
2- كل ثلاث ثوان
3- عندما يمتلئ ثلث الRedo Log Buffer
4-لحظة عمل DBWn سنناقش هذا لاحقا
كذلك الLGWR يقوم بكتابة التزامن لل Groups Log Redo فإذا حدثت مشكلة في File log Redo فإن الLGWR يقوم بتسجيل الخطأ في ملف Log Alert. ملاحظة : يجب الانتباه إلى أنه لحظة عمل Commit فإن الLGWR يقوم بكتابة البيانات المثبتة وغير المثبتة الموجودة في الBuffer log Redo إلى الFile Log Redo. نستفيد من عملية الLGWR في الاسترجاع إذا حدثتت مشكلة في الInstance.
Database Writer (DBWn) -4:
وأقصى عدد لهذا الProcess في قاعدة البيانات هو ،٢٠ ويقوم بكتابة البيانات الموجودة في الCache Buffer Database في الDatafiles ، ويمكن تهيئة قاعدة البيانات لتعمل بأكثر من DBWn حسب الحاجة بأقصى عدد .٢٠ والمتغير الذي يتحكم في عدد هذا الProcess هو .DB_WRITER_PROCESSES ويقوم هذا الProcess بكتابة البيانات الموجودة في الCache Buffer Database في الDatafiles في الحالات الآتية -:
١- لحظة حدوث ال(Checkpoint) وسنتحدث عن ذلك لاحقا.
٢ - كل ثلاث ثوان.
٣- لحظة حدوث ال(Log Switch ) وسنتحدث عنه لاحقاً.
٤- لحظة إغلاق قاعدة البيانات.
٥- لحظة وصول الBlock للقيمة المحددة.
٦- لحظة امتلاء الBuffer.
٧- عند عمل الأتي-:
* Tablespace Offline
* Tablespace Read Only
* Table Drop or Truncate
* Tablespace Begin Backup
Checkpoint Process (CKPT) -5:
وأقصى عدد لهذا الProcess في قاعدة البيانات هو ،١ ويقوم بالتأكد من أن كل التعديلات التي تمت على البيانات في الBuffer قد تمت كتابتها وتثبيتها في الDatafiles ومن ثم يقوم بعمل تزامن كامل لكل الDatafiles ويقوم بعمل تعديل للheaders Datafiles. الfiles Control يتم تعديله عند آخر SCN، بحيث يتم تزامن كامل لقاعدة البيانات ونضمن إمكانية استرجاع قاعدة البيانات في حال حدوث مشكلة. ويتم عمل الCKPT في الحالات التالية -:
١- لحظة حدوث log switch
٢- عند وصول الزمن المحدد في المتغير LOG_CHECKPOINT_TIMEOUT
٣- عند ما يصل عدد الBLOCKS المحدد في المتغير LOG_CHECKPOINT_INTERVAL
٤- عند وصول عدد الBuffer المحدد في المتغير FAST_START_IO_TARGET .
٥- عند تنفيذ الأوامر التالية -:
SQL> ALTER SYSTEM SWITCH LOGFILE; SQL> ALTER SYSTEM CHECKPOINT;
Recover (RECO) -6:
وأقصى عدد لهذا الProcess في قاعدة البيانات هو ،١ ويستخدم لمعالجة مشكلة العمليات الموزعة المعلقة نتيجة مشكلة في الشبكة أو النظام، فبعد فترة محددة يقوم الProcess بمحاولة الاتصال عن بعد ومحاولة إكمال العملية أو التراجع عنها
Optional Processes:
ويمكن لقاعدة البيانات العمل دون هذه ال(Processes) لكثرة هذه الProcesses سنتطرق لأهمها:-
1- (ARCn) Archiver:
وأقصى عدد لهذا الProcess في قاعدة البيانات هو ،١٠ ويقوم بكتابة الOnline Red Log File في ملف الأرشيف ( Archive Log Destination) بعد حدوث الSwitch Log ، هذا الProcess يعمل إذا كانت قاعدة البيانات تعمل في النمط Archive Log Mode .
يتم التحكم في عدد هذا ال process عن طريق المتغير LOG_ARCHIVE_MAX_PROCESSES
:Recovery Writer(RVWR) -2
هذا الProcess تم استحداثه في الإصدارة g١٠ Oracle نستفيد من هذا الProcess في عملية ال (Flashback Database،) سنناقش هذا الموضوع لاحقا
.Lock Monitor (LMON) -3
.Lock Manager DAEMON -4
.Lock Process (LCKn) -5
.Block Server Process (BSPn) -6
.Queue Monitor (QMNn)َ-7
.Event Monitor (EMNn) -8
.Shared Server Processes (Snnn)ٍ -9
.Memory Manager (MMAN)-10
.Parallel Execution slaves (Pnnn)-11
.Trace Writer (TRWR) -12
.DMON -13
.Dispatcher (Dnnn) -14
.MMON -15
.Wakeup Monitor Process (WMON) -16
.Memory Monitor Light (MMON) -17
.RBAL -18
.ARBx -19
.ASMB -20
.Change Tracking Writer (CTWR) -21
.Job Queue Monitoring (CJQn) -22
Comments
لايوجد تعليق حتى الان