עד כה שוחחנו על שני סוגי Processes באורקל – ה User Process וה Server Process
הסוג שלישי של Processes נקרא Background Processes , בפוסט הקודם הוסבר בקצרה כי הם אחראיים על הניתוב בין החלקים הלוגיים לפיזיים (נתונים יורדים מה Buffer Cache ל Database, נתונים יורדים מה Redo Log Buffer ל Redo Log File וכד') כעת נכנס אליהם לעומק ונכיר את חמשת ה Background Processes החשובים ביותר

 

DBWR – Database Writer

ה DBWR אחראי על כתיבת ה Buffers ב Buffer Cache חזרה לדיסק, הוא כותב Buffers אשר עברו שינוי (אין לו מה לכתוב חזרה לדיסק Buffers אשר שומשו לפעולת Select) ל Buffers שעברו שינוי אנו קוראים Dirty Buffers
ה DBWR כותב בשני מצבים עיקריים
1. ה Server Process מנסה לאתר בלוק פנוי עבור נתון אותו הוא רוצה להעלות מה Database, החיפוש לוקח זמן רב באופן יחסי, ה Server Process מאותת ל DBWR לכתוב.
2. תהליך ה CKPT מאותת ל DBWR לכתוב.

CKPT – Checkpoint

בנוסף ל Server Process שמאותת ל DBWR לכתוב כאשר המצב מתחיל כבר להיות בעייתי, תהליך הרקע CKPT אחראי לתת ל DBWR בעיטת השכמה כל כמה זמן ולהגיד לו "הגיע הזמן לכתוב". ה CKPT מאותת ל DBWR  בעיקר כאשר מתבצעות פעולות אדמניסטרטיביות שונות על ה Database (כגון Shutdown מסודר, העברת Datafile למצב Offline ועוד)

LGWR – Log Writer

ה LGWR אחראי על כתיבת הנתונים מה Redo Log Buffer ל Redo Log File, הזכרנו מקודם כי ה LGWR מתעורר ב COMMIT, אך יש לו מצבים נוספים המעירים אותו כגון :

  1. כל 3 שניות
  2. בכל פעם שה Redo Log Buffer מתמלא בשליש
  3. בכל פעם שה Redo Log Buffer מתמלא במגה

הדבר החשוב לזכור הוא שהכתיבה מה Redo Log Buffer ל Redo Log File היא כמעט רציפה (כמעט כל הזמן מתבצעת כתיבה) כאשר נקודת הכתיבה החשובה ביותר היא נקודת ה COMMIT

SMON – System Monitor

אמרנו שכל מטרת ה Redo Log היא עזרה בהשתחזרות מקריסות, אם מתרחשת קריסה ניתן יהיה להשתמש ב Redo Log כדי לגלגל את ה Database קדימה לנקודה האחרונה ביותר שלו (עד לנקודת ה COMMIT האחרון).
התהליך אשר אחראי מנגנון שרידות זה (אשר נקרא גם Instance Recovery) נקרא SMON

PMON – Process Monitor

ה PMON אחראי (בין היתר) על קריסות מצד ה User Process – אם ה User Process הפסיק להגיב, מכל סיבה שהיא וקרס, ה PMON אחראי "לנקות אחריו" (אם ה User Process תפס נעילות – ה PMON משחרר אותן, אם ה User Process תפס משאבי מערכת מסויימים – ה PMON משחרר אותם)