ה Instance של Oracle הוא הרכיב הלוגי, ה"מח" של ה Database אשר אחראי על ביצוען של הפעולות השונות שאנו בתור משתמשי המערכת מריצים.
בפוסט זה אני מעוניין לעשות קצת סדר בדברים, לבאר מספר מונחי יסוד ולהסביר את מרכיבי ה Instance העיקריים (לפי הדיאגרמה המופיעה מטה).

לפני שנתחיל אקדים ואומר כי פוסט זה (על שלושת חלקיו) נועד לתת לכל המתעניינים ב Oracle Instance תמונה בסיסית וברורה. משום שנושא זה מכיל תכנים טכניים מורכבים בחרתי לפשט אותם ולתאר את התהליכים בצורה יותר קלה להבנה.

ה User Process

מסענו אל עבר ה Database של אורקל מתחיל ברכיב מאוד פשוט ושמו ה User Process – ה User Process הוא למעשה האפליקציה (כגון SQL*Plus, Toad, Navigator וכד') אשר ממוקמת על ה Client שלנו ובאמצעותה אנו מתחברים ל Database ומבצעים מולו פעולות.

ה Database

ה Database הוא מערכת הקבצים אשר מכילה את הנתונים אותם אנו צריכים, הנתונים עצמם יושבים בתוך קבצים עם הסיומת –DBF.
נציין כי מערכת קבצים זו מורכבת מסוגי קבצים נוספים (כגון ה Control Files, Redo Log Files וכד') עליהם תורחב היריעה בפוסט נפרד.

החיבור בין ה User Process ל Database

שתי נקודות חשובות לגבי חיבור זה :

א. ה User Process לעולם לא ניגש ישירות ל Database

הגישה אל ה Database תמיד תעשה באמצעות ה"מח" של ה Database – ה Instance ורק משם היא תמשיך אל ה Database.

ניתן לחשוב על זה כעל תקשורת בין אנשים, כאשר אני נותן הוראה לאדם לבצע משהו – המח (Instance) שלו הוא הראשון אשר מקבל את המידע, המח שלו הוא זה שבונה את תוכנית הפעולה האופטימלית ביותר עבור הבקשה שלי, ורק לאחר מכן הגוף (Database) שלו מתחיל לפעול בהתאם

ניתן לאמר כי אחת מהמטרות העיקריות של ה Instance היא תכנון וביצוע הפעולות אשר אנו רוצים להריץ בצורה היעילה ביותר.

ב. ה User Process לעולם לא ניגש ישירות ל Instance

כאשר באמצעות ה User Process נרצה לגשת ל Database על מנת לבצע פעולה מסויימת (לדוגמא SELECT), יקבל את פנינו בצד השרת רכיב אשר נקרא : Server Process.
אותו רכיב יהיה אחראי להריץ בשמנו ( User Process ) את הבקשות  מול ה Instance ובעת הצורך ימשיך לבצע פעולות נוספות מול ה Database.

לסיכום :

  • ה User Process לעולם לא ניגש ישירות ל Database, הוא תמיד עובר דרך ה Instance
  • ה User Process לעולם לא ניגש ישירות ל Instance הוא תמיד עובר דרך ה Server Process.

Connection לעומת Session

שני מושגי יסוד חשובים הקשורים לתקשורת בין ה User Process ל Database הם
Connection ו –  Session.

כאשר אני רוצה להתחבר לאינטרנט אני משתמש בנתיב תקשורת מסויים (באמצעות ה Wifi או G3 או חיבור קווי כלשהו). ברגע שאני מחובר לאינטרנט אני יכול לפתוח עליו סשנים שונים (אולי אחד באמצעות Chrome, שני באמצעות Firefox, שלישי באמצעות Interner Explorer לא עלינו.. ועוד )

Connectionהוא נתיב התקשורת בין ה User Process לבין ה Instance, (אולי החיבור הוא מקומי – אנו עובדים על השרת עליו יושב ה Database , אולי החיבור מרוחק – השרת נמצא בחיפה ואנחנו מתחברים אליו מת"א, בכל אחד מהמקרים מדובר בפרוטוקול תקשורת שונה) כאשר אנו מדברים על Connection אנו מדברים על חיבור פיזי.

Session חיבור מסויים בין User Process ל Instance, יוזר מסויים יכול לפתוח סשנים (אחד באמצעות SQL*PLUS, שני באמצעות Toad ועוד) רבים על גבי אותו Connection.