SlideShare a Scribd company logo
1 of 35
Exploring the Oracle
Database Architecture
Ram Kedem
Copyright 2014 © Ram Kedem. All rights reserved. Not to be reproduced without written consent
ramkedem.com
Main AbilitiesDatabase
•Availability–‫זמינות‬.
•Survivability–‫שרידות‬,‫טוב‬ ‫ושחזור‬ ‫גיבוי‬ ‫מנגנון‬.Performance–
‫ביצועים‬.
•Integrity–‫אמינות‬,‫במערכת‬ ‫שיושב‬ ‫המידע‬ ‫על‬ ‫תקינות‬ ‫בדיקות‬.
•Security–‫אבטחה‬.
Copyright 2014 © Ram Kedem. All rights reserved. Not to be reproduced without written consent
ramkedem.com
Local Connection
•Local
•‫ה‬ ‫את‬ ‫המריצה‬ ‫ההפעלה‬ ‫למערכת‬ ‫מתחבר‬ ‫המשתמש‬Instance‫ומפעיל‬
‫האפליקציה‬ ‫את‬ ‫שם‬.
•‫ה‬ ‫בין‬ ‫תתבצע‬ ‫התקשורת‬-Process-‫ההפעלה‬ ‫מערכת‬ ‫ובאמצעות‬ ‫בתוך‬ ‫ים‬
‫ע‬ ‫המקומית‬"‫הנקרא‬ ‫מכניזם‬ ‫י‬IPC (Inter Processs Communication)
Copyright 2014 © Ram Kedem. All rights reserved. Not to be reproduced without written consent
ramkedem.com
Client / Server Connection
•Front End–‫הקליינט‬(Client)
•‫ע‬ ‫מנוהל‬ ‫אשר‬ ‫המידע‬ ‫את‬ ‫ומציג‬ ‫מבקש‬ ‫אשר‬ ‫החלק‬"‫השרת‬ ‫י‬
•‫השרת‬ ‫של‬ ‫החומרה‬ ‫מרכיבי‬ ‫שונים‬ ‫יהיו‬ ‫הקליינט‬ ‫של‬ ‫החומרה‬ ‫רכיבי‬
‫אחרות‬ ‫למטרות‬ ‫וינותבו‬(‫למשל‬ ‫גרפיים‬ ‫ביצועים‬)
•‫מהשרת‬ ‫אחר‬ ‫מחשב‬ ‫על‬ ‫ירוץ‬ ‫הקליינט‬ ‫לרוב‬
•Clients‫אחד‬ ‫שרת‬ ‫מול‬ ‫לרוץ‬ ‫יכולים‬ ‫רבים‬
•Back End–‫השרת‬(Server)
•‫אפליקציית‬ ‫את‬ ‫מכיל‬Oracle
•‫שונים‬ ‫מיוזרים‬ ‫התקבלו‬ ‫אשר‬ ‫בקשות‬ ‫ומעבד‬ ‫מקבל‬
•‫רשת‬ ‫אפליקציית‬(Network Software)
•‫והשרת‬ ‫היוזר‬ ‫לחיבור‬ ‫משמשת‬
Copyright 2014 © Ram Kedem. All rights reserved. Not to be reproduced without written consent
ramkedem.com
Three-Tiered Connection
•‫והיא‬ ‫מסויימת‬ ‫לאפליקצייה‬ ‫רשת‬ ‫דרך‬ ‫מתחבר‬ ‫המשתמש‬
‫ל‬ ‫הרשת‬ ‫דרך‬ ‫מתחברת‬-Oracle Server.
‫לדוגמא‬Browser-‫ים‬.
‫זו‬ ‫תקשורת‬ ‫בצורת‬,‫הבאים‬ ‫הרכיבים‬ ‫קיימים‬
•‫ה‬Client‫אחרת‬ ‫אפליקציה‬ ‫כל‬ ‫או‬(Initiator Process)‫את‬ ‫התחילה‬ ‫אשר‬
‫הפעולה‬
•‫יותר‬ ‫או‬ ‫אחד‬Application Servers‫מהפעולה‬ ‫חלק‬ ‫מבצעים‬ ‫אשר‬
(Query Processing)‫מהשרת‬ ‫עומס‬ ‫מורידים‬ ‫וכך‬
AS‫שרתי‬ ‫למספר‬ ‫יוזרים‬ ‫בין‬ ‫כממשק‬ ‫לשרת‬ ‫יכול‬Database‫שונים‬
AS‫אבטחה‬ ‫של‬ ‫נוספת‬ ‫רמה‬ ‫להוות‬ ‫יכול‬
•‫השרת‬‫ה‬ ‫את‬ ‫מכיל‬ ‫אשר‬Data
Copyright 2014 © Ram Kedem. All rights reserved. Not to be reproduced without written consent
ramkedem.com
Connecting to the Database
Instance
•Connection–‫ה‬ ‫בין‬ ‫תקשורת‬ ‫נתיב‬User Process(‫האפליקצייה‬
‫ה‬ ‫על‬ ‫רצה‬ ‫אשר‬Client)
‫ה‬ ‫לבין‬Instance,‫ע‬ ‫מושג‬ ‫זה‬ ‫תקשורת‬ ‫נתיב‬"‫י‬IPC(‫לוקאלי‬ ‫בחיבור‬)
‫כלשהי‬ ‫רשת‬ ‫אפליקציית‬ ‫או‬(‫בחיבור‬client/server)
•Session–‫בין‬ ‫מסויים‬ ‫חיבור‬User Process
‫ל‬Instance
‫ה‬ ‫מול‬ ‫רבים‬ ‫סשנים‬ ‫לפתוח‬ ‫יכול‬ ‫מסויים‬ ‫יוזר‬Database
Copyright 2014 © Ram Kedem. All rights reserved. Not to be reproduced without written consent
ramkedem.com
Server Process and User
Process
•User Process–‫כגון‬ ‫כלי‬ ‫פותח‬ ‫המשתמש‬SQL*Plus‫אפליקציה‬ ‫או‬
‫אחרת‬,‫כ‬ ‫המורצים‬-User Process.(‫היוזר‬ ‫מחשב‬ ‫על‬)
•Server Process-‫ה‬ ‫כאשר‬User Process‫ה‬ ‫אל‬ ‫מתחבר‬-Oracle
Server,‫עבורו‬ ‫נוצר‬Process‫ב‬-Oracle Server,‫הנקרא‬Server
Process.
•‫ה‬ ‫של‬ ‫תפקידו‬-SP‫עם‬ ‫לתקשר‬ ‫הוא‬S‫ה‬-Instance‫ולהריץ‬ ‫הלקוח‬ ‫עבור‬
‫ה‬ ‫פקודות‬ ‫את‬ ‫עבורו‬-SQL.
Copyright 2014 © Ram Kedem. All rights reserved. Not to be reproduced without written consent
ramkedem.com
Dedicated Server Connection
Shared Server Connection
•Dedicated Server Connection–‫כל‬ ‫עבור‬ ‫כאשר‬User Process‫יש‬
Server Process‫אחד‬.
•Shared Server Connection–‫מספר‬ ‫עבור‬ ‫כאשר‬User Processes
‫יש‬Server Process‫אחד‬.
Copyright 2014 © Ram Kedem. All rights reserved. Not to be reproduced without written consent
ramkedem.com
Oracle Database Server
Architecture
•‫זכרון‬ ‫מבני‬–‫הלוגי‬ ‫המבנה‬,‫ה‬Instance.
•‫ל‬ ‫הגישה‬-DB‫ה‬ ‫דרך‬ ‫רק‬ ‫נעשית‬-Instance,‫פעיל‬ ‫להיות‬ ‫חייב‬ ‫הוא‬ ‫ולכן‬
‫ב‬ ‫שהנתונים‬ ‫כדי‬-DB‫זמינים‬ ‫יהיו‬.
•‫ל‬ ‫רק‬ ‫ולגשת‬ ‫לפתוח‬ ‫יכול‬-DB‫פעם‬ ‫בכל‬ ‫אחד‬.
•‫ה‬ ‫כאשר‬Instance‫לעבוד‬ ‫מתחיל‬,‫בשם‬ ‫רכיב‬SGA(System Global
Area)‫זכרון‬ ‫שטח‬ ‫תופס‬(‫שנראה‬ ‫שונות‬ ‫לפעולות‬ ‫אותו‬ ‫ישמש‬ ‫אשר‬
‫בהמשך‬)‫לרוץ‬ ‫מתחילים‬ ‫רקע‬ ‫ותהליכי‬
Copyright 2014 © Ram Kedem. All rights reserved. Not to be reproduced without written consent
ramkedem.com
Oracle Database Server
Architecture
•‫רקע‬ ‫תהליכי‬–‫אשר‬ ‫ההפעלה‬ ‫במערכת‬ ‫מכניזם‬ ‫הוא‬ ‫רקע‬ ‫תהליך‬
‫פעולות‬ ‫רצף‬ ‫לבצע‬ ‫יודע‬
Copyright 2014 © Ram Kedem. All rights reserved. Not to be reproduced without written consent
ramkedem.com
Oracle Database Server
Architecture
•‫אחסון‬ ‫מבני‬–‫הפיזי‬ ‫המבנה‬,‫הקבצים‬.‫הלוגי‬ ‫שהמבנה‬ ‫לאחר‬
‫אותחל‬,‫ה‬ ‫את‬ ‫משייכת‬ ‫אורקל‬Instance‫הפיזי‬ ‫למבנה‬(‫זה‬ ‫שלב‬
‫ה‬ ‫שלב‬ ‫נקרא‬Mount)
•‫הפעלה‬ ‫מערכת‬ ‫קבצי‬ ‫אוסף‬ ‫הוא‬ ‫הפיסי‬ ‫המבנה‬
‫סוגים‬ ‫לשלושה‬ ‫המתחלקים‬:
•Data Files(DBF)
•Control Files(CTL)
•Online Redo Log Files(LOG)
Copyright 2014 © Ram Kedem. All rights reserved. Not to be reproduced without written consent
ramkedem.com
Instance Database
Configurations
•‫כל‬Instance‫ל‬ ‫משוייך‬Database‫אחד‬,‫ל‬ ‫ו‬Database‫בלבד‬ ‫אחד‬.
•RAC(Real Application Clusters)‫ל‬Database‫מ‬ ‫יותר‬ ‫יש‬ ‫אחד‬
Instance‫אחד‬(‫מספר‬Instances‫אותו‬ ‫על‬ ‫במקביל‬ ‫עובדים‬ ‫אשר‬
Database.)
‫ללא‬ ‫המערכת‬ ‫פעולת‬ ‫שזמן‬ ‫בכך‬ ‫הוא‬ ‫זו‬ ‫בתצורה‬ ‫היתרונות‬ ‫אחד‬
‫השבתה‬(‫ה‬Uptime)‫היא‬724
Copyright 2014 © Ram Kedem. All rights reserved. Not to be reproduced without written consent
ramkedem.com
Oracle Database Memory
Structures
•SGA–System Global Area
•‫הרקע‬ ‫ותהליכי‬ ‫היוזרים‬ ‫לכל‬ ‫משותפים‬ ‫אשר‬ ‫זכרון‬ ‫מבני‬ ‫של‬ ‫קבוצה‬
‫השונים‬
•‫לכל‬Instance‫יש‬SGA‫אחד‬
•PGA–Program Global Area
•‫ל‬ ‫משוייך‬ ‫אשר‬ ‫זכרון‬ ‫מבנה‬Server Process‫אחד‬
•‫ה‬ ‫מספר‬PGA‫החיבורים‬ ‫כמספר‬ ‫הוא‬ ‫במערכת‬(‫ה‬ ‫מספר‬Clients)
Copyright 2014 © Ram Kedem. All rights reserved. Not to be reproduced without written consent
ramkedem.com
SGA Main Components
•Shared Pool
•Database Buffer Cache
•Redo log buffer
•Large Pool
•Java Pool
Copyright 2014 © Ram Kedem. All rights reserved. Not to be reproduced without written consent
ramkedem.com
Shared Pool
•‫ה‬Shared Pool‫המערכת‬ ‫טבלת‬ ‫זכרון‬ ‫רכיבי‬ ‫של‬ ‫רב‬ ‫ממספר‬ ‫מורכב‬
v$sgastat
•‫העיקריים‬ ‫רכיביו‬:
•Library Cache‫מ‬ ‫מורכב‬ ‫אשר‬-
•Shared SQL
•Shared PLSQL
•Data Dictionary Cache
Copyright 2014 © Ram Kedem. All rights reserved. Not to be reproduced without written consent
ramkedem.com
Shared Pool – Library Cache
•‫שומר‬‫שאילתות‬ ‫עבור‬ ‫אינפורמציה‬SQL‫וקוד‬PLSQL.
•‫מורכב‬‫מ‬Shared SQL‫ו‬Shared PLSQL
•‫מנוהל‬‫ע‬"‫אלגוריתם‬ ‫י‬LRU–Least Recently Used,‫ה‬ ‫כאשר‬
Cache‫ביותר‬ ‫הישנות‬ ‫הפקודות‬ ‫של‬ ‫האינפורמציה‬ ‫מתמלא‬
‫ב‬ ‫שקיימות‬Cache‫חדשות‬ ‫עבור‬ ‫מקום‬ ‫ומפנה‬ ‫נמחקת‬.
•‫אם‬‫גודל‬‫ה‬Shared Pool‫מדי‬ ‫קטן‬–‫לשליפות‬ ‫יגרום‬ ‫הדבר‬
‫ה‬ ‫מתוך‬ ‫ונשנות‬ ‫חוזרות‬DF,‫בביצועים‬ ‫להאטה‬ ‫שיגרום‬ ‫מה‬.
•‫מ‬ ‫מורכב‬:
•Shared SQL
•‫שאילתות‬ ‫עבור‬ ‫פעולה‬ ‫תוכניות‬ ‫שומר‬SQL‫הורצו‬ ‫אשר‬
•Shared PLSQL
•‫של‬ ‫אובייקטים‬ ‫עבור‬ ‫פעולה‬ ‫תוכניות‬ ‫שומר‬PLSQL‫הורצו‬ ‫אשר‬
Copyright 2014 © Ram Kedem. All rights reserved. Not to be reproduced without written consent
ramkedem.com
Shared Pool – Data Dictionary
Cache
•‫ה‬Data Dictionary‫האובייקטים‬ ‫על‬ ‫אינפורמציה‬ ‫בתוכו‬ ‫מכיל‬
‫טבלאות‬ ‫כגון‬ ‫במערכת‬ ‫השונים‬,‫אינדקסים‬,‫יוזרים‬,‫עמודות‬
‫וכד‬'.
•‫ה‬DDC‫הנתונים‬ ‫את‬ ‫בתוכו‬ ‫שומר‬(‫הבלוקים‬)‫אשר‬ ‫האחרונים‬
‫השונות‬ ‫המערכת‬ ‫מטבלאות‬ ‫נשלפו‬,‫את‬ ‫מייעלים‬ ‫אנו‬ ‫זו‬ ‫בדרך‬
‫ה‬ ‫פעולות‬DML‫וה‬DDL‫המערכת‬ ‫על‬.
•‫ה‬DDC‫ע‬ ‫עובד‬"‫י‬‫ה‬ ‫אלגוריתם‬LRU
Copyright 2014 © Ram Kedem. All rights reserved. Not to be reproduced without written consent
ramkedem.com
Data Base Buffer Cache – DBBC
•‫ה‬DB Buffer Cache‫לשמירת‬ ‫מיועד‬‫בלוקים‬‫בזכרון‬ ‫מידע‬ ‫של‬.
•‫ה‬DBBC‫מה‬ ‫הגיעו‬ ‫אשר‬ ‫זכרון‬ ‫של‬ ‫בלוקים‬ ‫בתוכו‬ ‫מכיל‬Data Files‫כתוצאה‬
‫מפעולת‬SELECT‫פעולת‬ ‫או‬DML‫המערכת‬ ‫על‬ ‫מתרחשות‬ ‫אשר‬.
•‫בלוק‬–‫לכתוב‬ ‫או‬ ‫לקרוא‬ ‫מסוגל‬ ‫שאורקל‬ ‫ביותר‬ ‫הקטנה‬ ‫המידע‬ ‫יחידת‬ ‫הוא‬.
(‫הוא‬ ‫שלו‬ ‫הגודל‬ ‫דיפולטי‬ ‫באופן‬K8),‫של‬ ‫רב‬ ‫מספר‬ ‫יכיל‬ ‫אחד‬ ‫בלוק‬ ‫לרוב‬
‫שורות‬.
•‫בלוק‬–‫ה‬ ‫יחידת‬ ‫הוא‬I/O‫המינימלית‬,‫רוצים‬ ‫אנו‬ ‫אם‬ ‫שגם‬ ‫שאומר‬ ‫מה‬
‫בלבד‬ ‫אחת‬ ‫שורה‬ ‫של‬ ‫נתונים‬ ‫לשלוף‬,‫לזכרון‬ ‫יטען‬ ‫נמצאת‬ ‫היא‬ ‫בו‬ ‫הבלוק‬ ‫כל‬.
•I/O‫מידע‬ ‫מערכות‬ ‫של‬ ‫המרכזי‬ ‫הבקבוק‬ ‫צוואר‬ ‫הוא‬
•I/O‫פיזי‬(physical reads)–‫מהדיסקים‬ ‫קריאה‬
•I/O‫לוגי‬(consistent gets)–‫הזכרון‬ ‫מול‬ ‫עבודה‬
•‫ה‬DB Buffer Cache‫באפרים‬ ‫מכיל‬(Buffers)‫יכול‬ ‫מהם‬ ‫אחד‬ ‫כל‬ ‫אשר‬
‫מידע‬ ‫של‬ ‫אחד‬ ‫בלוק‬ ‫להכיל‬.
•‫ע‬ ‫מנוהל‬"‫ה‬ ‫אלגוריתם‬ ‫י‬LRU
Copyright 2014 © Ram Kedem. All rights reserved. Not to be reproduced without written consent
ramkedem.com
‫ב‬ ‫שימוש‬DBC‫פעולת‬ ‫בעת‬SELECT
.1‫שאילתה‬ ‫מריץ‬ ‫יוזר‬
.2Server Process‫ב‬ ‫קיים‬ ‫המידע‬ ‫אם‬ ‫בודק‬DB Buffer Cache
.3‫ב‬ ‫כבר‬ ‫נמצאת‬ ‫האינפורמציה‬ ‫אם‬Cache‫נקרא‬ ‫האירוע‬
Cache Hit‫ליוזר‬ ‫חוזרים‬ ‫והנתונים‬.
.4‫בזכרון‬ ‫לא‬ ‫הוא‬ ‫אם‬,‫נקרא‬ ‫האירוע‬Cache Miss‫ואז‬:
.1Server Process‫ל‬ ‫הולך‬Data Files‫הנתונים‬ ‫את‬ ‫משם‬ ‫ומושך‬.
.2‫ב‬ ‫נשמרת‬ ‫האינפורמציה‬.Cache
.3‫ליוזר‬ ‫חוזרים‬ ‫השאילתה‬ ‫של‬ ‫הנתונים‬.
Copyright 2014 © Ram Kedem. All rights reserved. Not to be reproduced without written consent
ramkedem.com
‫ב‬ ‫שימוש‬DBC‫פעולת‬ ‫בעת‬DML
.1‫פקודת‬ ‫מריץ‬ ‫יוזר‬DML
.2‫ה‬SP(Server Process)‫מופעלת‬ ‫עליו‬ ‫אשר‬ ‫הבלוק‬ ‫אם‬ ‫בודק‬
‫ה‬ ‫פקודת‬DML‫ב‬ ‫כבר‬ ‫נמצא‬DBC
.3‫כן‬ ‫אם‬Cache Hit‫לשלב‬ ‫ומעבר‬5
.4‫לא‬ ‫אם‬,Cache Miss,‫ה‬SP‫ה‬ ‫מתוך‬ ‫הנחוצים‬ ‫הבלוקים‬ ‫את‬ ‫קורא‬
DF‫ה‬ ‫לתוך‬DBC‫לשלב‬ ‫ומעבר‬5
.5‫ה‬ ‫בתוך‬ ‫נעשה‬ ‫הנתונים‬ ‫על‬ ‫השינוי‬DBC
.1Buffer‫ב‬ ‫שונה‬ ‫אשר‬DBC‫כ‬ ‫מוגדר‬Dirty Buffer
.6Dirty Buffer‫ל‬ ‫חזרה‬ ‫נכתב‬DF‫ע‬"‫ה‬ ‫י‬DBWR
Copyright 2014 © Ram Kedem. All rights reserved. Not to be reproduced without written consent
ramkedem.com
Redo Log Buffer
•‫ה‬RLB‫כ‬ ‫מוגדר‬Circular Buffer‫כל‬ ‫של‬ ‫סידרתי‬ ‫רקורד‬ ‫בתוכו‬ ‫ומכיל‬
‫ב‬ ‫התרחשו‬ ‫אשר‬ ‫הפעולות‬DB
(DML‫ו‬DDL.)
•‫נקרא‬ ‫בו‬ ‫המתועד‬ ‫שינוי‬ ‫כל‬"Redo Entry",‫מידע‬ ‫מכילים‬ ‫והוא‬
‫ב‬ ‫שקרו‬ ‫והשינויים‬ ‫הפעולות‬ ‫את‬ ‫מחדש‬ ‫לבצע‬ ‫ניתן‬ ‫שבאמצעותו‬-DB
(Recovery)
•‫מוגדר‬ ‫זמן‬ ‫בכל‬–‫ה‬ ‫אשר‬ ‫הנתונים‬RLB‫שמר‬,‫ל‬ ‫מועברים‬Redo Log
Files(SP–LGWR.)
Copyright 2014 © Ram Kedem. All rights reserved. Not to be reproduced without written consent
ramkedem.com
Large Pool
•‫חלק‬‫אופציונאלי‬‫ב‬SGA
•‫אשר‬ ‫שונות‬ ‫לפעולות‬ ‫זכרון‬ ‫להקצאות‬ ‫משמש‬ ‫זה‬ ‫זכרון‬ ‫אזור‬
‫שה‬ ‫בזמן‬ ‫להתרחש‬ ‫יכולות‬Instance‫פעיל‬
•Session Memory‫עבור‬Shared Server
•I/O Server Processes
•Parallel Query Buffers
•Oracle Backup and Restore Operations using RMAN
•‫וה‬ ‫במידה‬Large Pool‫מופעל‬ ‫לא‬,‫ב‬ ‫מתבצעות‬ ‫אלו‬ ‫פעולות‬
Shared Pool,‫הביצועים‬ ‫על‬ ‫שמשפיע‬ ‫מה‬,‫מופעל‬ ‫והוא‬ ‫במידה‬
‫ל‬ ‫מאפשר‬ ‫בו‬ ‫השימוש‬Shared Pool‫בעיקר‬ ‫לבצע‬Cache‫לכל‬
‫זה‬ ‫נושא‬ ‫תחת‬ ‫נרשמו‬ ‫אשר‬ ‫הדברים‬.
Copyright 2014 © Ram Kedem. All rights reserved. Not to be reproduced without written consent
ramkedem.com
Java Pool
•‫של‬ ‫קוד‬ ‫לכתוב‬ ‫מאפשר‬ ‫אורקל‬Java‫ב‬DB
•‫ה‬Java Pool‫קוד‬ ‫מחזיק‬Java‫קוד‬ ‫בה‬ ‫לצורה‬ ‫בדומה‬PL/SQL‫נשמר‬
‫ב‬Shared Pool
•‫ל‬ ‫משמש‬-Parsing‫פקודות‬ ‫של‬Java( .User Defined Java Objects–
‫אובייקטי‬Java‫ב‬ ‫להגדיר‬ ‫שאפשר‬-DB)
•‫פרמטר‬ ‫זהו‬‫אופציונלי‬,‫ב‬ ‫משתמשים‬ ‫אנו‬ ‫אם‬ ‫אותו‬ ‫לשפעל‬ ‫עלינו‬ ‫אך‬-
Java.
Copyright 2014 © Ram Kedem. All rights reserved. Not to be reproduced without written consent
ramkedem.com
Program/Process Global Area
(PGA)
•‫ה‬PGA‫ל‬ ‫הרלוונטית‬ ‫אינפורמציה‬ ‫שומר‬ ‫אשר‬ ‫זכרון‬ ‫איזור‬ ‫הוא‬Server
Processes‫אחד‬(‫לכל‬Server Process‫ה‬ ‫את‬ ‫יש‬PGA‫שלו‬)
•‫ה‬ ‫של‬ ‫המרכזי‬ ‫החלק‬PGA:
•User Global Area(UGA)–‫ה‬UGA‫הבאים‬ ‫מהחלקים‬ ‫מורכב‬
•‫קרסורים‬ ‫עבור‬ ‫זכרון‬ ‫איזור‬
•User Session Data–‫לדוגמא‬:‫כמה‬CPU‫תופס‬ ‫הסשן‬,‫מקסימום‬ ‫זמן‬ ‫כמה‬
‫מחובר‬ ‫להיות‬ ‫לו‬ ‫מותר‬,‫ב‬ ‫להיות‬ ‫לו‬ ‫מותר‬ ‫מקסימום‬ ‫זמן‬ ‫כמה‬Idle,‫כמה‬Block
Reads‫ועוד‬ ‫ביצע‬ ‫הוא‬.
•‫פקודות‬ ‫עיבוד‬ ‫עבור‬ ‫זכרון‬ ‫איזור‬SQL‫מ‬ ‫מורכב‬ ‫אשר‬–
•‫פקודות‬ ‫עבור‬ ‫זיכרון‬ ‫איזור‬ORDER BY‫ו‬GROUP BY
•‫עבור‬ ‫זכרון‬ ‫איזור‬Hash Joins
•‫יצירת‬ ‫עבור‬ ‫זכרון‬ ‫איזור‬Bitmap‫אינדקס‬
•‫ב‬ ‫ימוקם‬PGA‫ב‬Dedicated Server,‫ב‬ ‫ימוקם‬SGA‫ב‬Shared Server
Copyright 2014 © Ram Kedem. All rights reserved. Not to be reproduced without written consent
ramkedem.com
Process Architecture
•User process–‫ל‬ ‫מתחבר‬ ‫היוזר‬ ‫בעזרתה‬ ‫אשר‬ ‫האפליקצייה‬Oracle
Database
•Server process–‫ל‬ ‫מתחבר‬ ‫היוזר‬ ‫כאשר‬Database‫עבורו‬ ‫נפתח‬server
process‫ה‬ ‫מול‬ ‫פעולותיו‬ ‫את‬ ‫לבצע‬ ‫נועד‬ ‫אשר‬Database
•‫ה‬Server Process‫הבאות‬ ‫הפעולות‬ ‫כל‬ ‫או‬ ‫אחת‬ ‫את‬ ‫לבצע‬ ‫יכול‬:
•Parse‫ה‬ ‫פקודות‬ ‫והרצת‬SQL
•‫ה‬ ‫קריאת‬Data Blocks‫ה‬ ‫אל‬ ‫מהקבצים‬Buffer Cache
•‫מה‬ ‫תוצאות‬ ‫החזרת‬Buffer Cache‫לו‬ ‫מובנת‬ ‫תהיה‬ ‫אשר‬ ‫בצורה‬ ‫היוזר‬ ‫אל‬
•Dedicated–‫לכל‬User Process‫יש‬Server Process‫אותו‬ ‫משרת‬ ‫אשר‬ ‫אחד‬.
•Shared–‫קבוצת‬ ‫לכל‬User Processes‫יש‬Server Process‫משרת‬ ‫אשר‬ ‫אחד‬
‫אותם‬.
•Background Process–‫שרת‬ ‫בצד‬ ‫פועלים‬ ‫אשר‬ ‫רקע‬ ‫תהליכי‬,‫את‬ ‫מנהלים‬
‫הפיזיים‬ ‫הקבצים‬ ‫לבין‬ ‫בינהם‬ ‫האינטראקציה‬ ‫את‬ ‫ויוצרים‬ ‫הזכרון‬ ‫רכיבי‬.
Copyright 2014 © Ram Kedem. All rights reserved. Not to be reproduced without written consent
ramkedem.com
Background Processes
•‫נוצרים‬‫ה‬ ‫עליית‬ ‫בעת‬-Instace.
•‫מקשרים‬‫הפיסיים‬ ‫הקבצים‬ ‫לבין‬ ‫הזיכרון‬ ‫מבני‬ ‫בין‬.
•‫חמישה‬ ‫יש‬ ‫לאורקל‬Process-‫כאלה‬ ‫הכרחיים‬ ‫ים‬,‫וכמה‬ ‫כמה‬ ‫ועוד‬
‫אופציונליים‬,‫שלהם‬ ‫באופציה‬ ‫שימוש‬ ‫עושים‬ ‫אם‬ ‫הנוצרים‬.
•‫המנדטוריים‬ ‫חמשת‬:DBWn,LGWR,CKPT,SMON,PMON
Copyright 2014 © Ram Kedem. All rights reserved. Not to be reproduced without written consent
ramkedem.com
DBWn(DB Writer)
•‫כתיבת‬ ‫על‬ ‫אחראי‬dirty buffers‫מה‬buffer cache‫לדיסק‬.
•‫ב‬ ‫באפר‬ ‫כאשר‬buffer cache‫כ‬ ‫מסומן‬ ‫הוא‬ ‫משתנה‬dirty,
cold buffer‫ה‬ ‫לפי‬ ‫לאחרונה‬ ‫שימוש‬ ‫כל‬ ‫בו‬ ‫נעשה‬ ‫לא‬ ‫אשר‬ ‫באפר‬ ‫הוא‬
LRU.
DBWn‫לדיסק‬ ‫ומלוכלכים‬ ‫קרים‬ ‫באפרים‬ ‫רושם‬
•‫ה‬ ‫את‬ ‫מנהל‬ ‫הוא‬Buffer Cache‫באפרים‬ ‫יהיו‬ ‫שתמיד‬ ‫כזו‬ ‫בצורה‬
‫פנויים‬.
Copyright 2014 © Ram Kedem. All rights reserved. Not to be reproduced without written consent
ramkedem.com
DBWn(DB Writer)
•‫ה‬DBWr‫הבאים‬ ‫בתנאים‬ ‫כותב‬
•‫ה‬ ‫כאשר‬server process‫של‬ ‫סריקה‬ ‫לאחר‬ ‫פנוי‬ ‫באפר‬ ‫למצוא‬ ‫מצליח‬ ‫לא‬
‫מסויימת‬ ‫תקורה‬
•Checkpoint
•‫ל‬ ‫קשור‬ ‫לא‬-Commit!
•(‫ב‬-Commit‫ה‬ ‫רק‬-LGWR‫לדיסק‬ ‫כותב‬.)
Copyright 2014 © Ram Kedem. All rights reserved. Not to be reproduced without written consent
ramkedem.com
LGWR(Log Writer)
•‫מה‬ ‫סדרתיות‬ ‫כתיבות‬ ‫מבצע‬-Redo Log Buffer‫שב‬-SGA(‫מהזיכרון‬)‫ה‬ ‫קבצי‬ ‫אל‬-
Online redo log files‫שבדיסק‬.
•‫ה‬ ‫כל‬ ‫את‬ ‫לדיסק‬ ‫מעביר‬ ‫הוא‬ ‫פעם‬ ‫בכל‬Redo entries‫הפעם‬ ‫מאז‬ ‫בו‬ ‫שנמצאים‬
‫כתב‬ ‫שהוא‬ ‫האחרונה‬
•‫מסוימים‬ ‫באירועים‬ ‫הדיסק‬ ‫אל‬ ‫לכתוב‬ ‫מתעורר‬ ‫הוא‬:
•‫מבצעת‬ ‫טרנזקציה‬ ‫כאשר‬Commit.
•‫ה‬ ‫כאשר‬-Redo Log Buffer‫התמלא‬‫בשליש‬.
•‫מ‬ ‫יותר‬ ‫יש‬ ‫כאשר‬-1 MB‫מידע‬ ‫של‬Redo‫ב‬-Buffer.
•‫שניות‬ ‫שלוש‬ ‫כל‬.
•‫ה‬ ‫כאשר‬-DBWn‫לכתוב‬ ‫ומבקש‬ ‫מתעורר‬,‫ה‬LGWR‫לפניו‬ ‫לכתוב‬ ‫חייב‬(Write Ahead
Protocol)
Fast Commit–‫ה‬ ‫בפעולת‬-Commit‫ה‬ ‫אל‬ ‫נכתב‬ ‫לא‬ ‫המידע‬-Data Files‫אל‬ ‫אלא‬
‫ה‬-Online Redo Log Files‫ע‬"‫ה‬ ‫י‬-LGWR( .‫ומהירה‬ ‫סדרתית‬ ‫כתיבה‬.‫נפלנו‬ ‫אם‬–‫ישתחזר‬
‫ע‬"‫י‬
‫ה‬-Roll Forward.‫יותר‬ ‫ומסורבל‬ ‫איטי‬ ‫השחזור‬ ‫אמנם‬,‫מהירה‬ ‫השוטפת‬ ‫העבודה‬ ‫אך‬
‫וסדרתית‬.)
Copyright 2014 © Ram Kedem. All rights reserved. Not to be reproduced without written consent
ramkedem.com
CKPT–(Checkpoint)
•CKPT–‫תהליך‬‫ל‬ ‫לאותת‬ ‫שמטרתו‬DBWR‫מה‬ ‫לכתוב‬Buffer
Cache‫ה‬ ‫אל‬Data Files
•Checkpoint–‫האירוע‬‫ה‬ ‫שבו‬DBWR‫כל‬ ‫את‬ ‫הקבצים‬ ‫אל‬ ‫כותב‬
‫ה‬-Buffers‫ב‬-Cache‫ה‬ ‫את‬ ‫ומעדכן‬ ‫מסוימת‬ ‫נקודה‬ ‫עד‬ ‫שעודכנו‬
checkpoint position
•Checkpoint Position–‫זמן‬ ‫נקודת‬‫ה‬ ‫אליה‬ ‫שנכון‬ ‫מסויימת‬DB
‫מסונכרן‬
‫ה‬ ‫בקובץ‬ ‫בדיוק‬ ‫היכן‬ ‫מציינת‬ ‫זו‬ ‫נקודה‬-Online redo‫צריך‬
‫נפילה‬ ‫של‬ ‫במקרה‬ ‫השחזור‬ ‫להתחיל‬,‫שה‬ ‫מכיוון‬-DBWn‫כבר‬
‫זו‬ ‫נקודה‬ ‫לפני‬ ‫שעודכן‬ ‫המידע‬ ‫כל‬ ‫את‬ ‫לקבצים‬ ‫כתב‬.
Copyright 2014 © Ram Kedem. All rights reserved. Not to be reproduced without written consent
ramkedem.com
CKPT–(Checkpoint)
•‫לביצוע‬ ‫הסיבות‬Checkpoints:
•‫לוודא‬‫קבוע‬ ‫בסיס‬ ‫על‬ ‫לדיסק‬ ‫נכתב‬ ‫שבזיכרון‬ ‫שהמידע‬,‫נאבד‬ ‫שלא‬ ‫כך‬
‫נפילה‬ ‫של‬ ‫במקרה‬ ‫מידע‬.
•‫להקטין‬‫לבצע‬ ‫הנדרש‬ ‫הזמן‬ ‫את‬Instance recovery.‫את‬ ‫רק‬ ‫לעבד‬ ‫עלינו‬
‫רשומות‬Redo‫ה‬ ‫לאחר‬ ‫שנרשמו‬-Checkpoint‫שבוצע‬ ‫האחרון‬.
Copyright 2014 © Ram Kedem. All rights reserved. Not to be reproduced without written consent
ramkedem.com
CKPT–(Checkpoint)
•‫סוגי‬Checkpoint:
•‫מלא‬–‫ב‬ ‫שיש‬ ‫מה‬ ‫כל‬-Log‫ה‬ ‫אל‬ ‫נכתב‬-DB.‫ולא‬ ‫מסתנכרן‬ ‫הכל‬
‫בשחזור‬ ‫צורך‬ ‫יהיה‬(‫בעת‬ ‫למשל‬Shudown‫מסודר‬.)
•‫חלקי‬(Partial)–‫שה‬ ‫כתיבות‬-DBWR‫יזם‬(‫מישהו‬ ‫למשל‬ ‫אם‬
‫ל‬ ‫קובץ‬ ‫הוריד‬-Offline,‫עליו‬ ‫רק‬ ‫יעשה‬ ‫אורקל‬Checkpoint.)
•Incremental Checkpoint–‫הבלוקים‬ ‫כל‬ ‫את‬ ‫לכתוב‬ ‫במקום‬
‫לדיסק‬,‫חלק‬ ‫רק‬ ‫כותב‬(‫עד‬SCN‫מסוים‬)‫כמות‬ ‫על‬ ‫ושומר‬
‫של‬ ‫מסוימת‬Dirty blocks
CKPT‫ה‬ ‫את‬ ‫שכותב‬ ‫זה‬ ‫אינו‬-Data blocks‫ה‬ ‫או‬-Redo‫לדיסק‬.
‫ל‬ ‫שמאותת‬ ‫זה‬ ‫רק‬ ‫הוא‬-DBWR‫ב‬ ‫לכתוב‬-Checkpoint,‫ש‬ ‫או‬-
DBWR‫לכתוב‬ ‫רוצה‬ ‫כשהוא‬ ‫לו‬ ‫מאותת‬.
Copyright 2014 © Ram Kedem. All rights reserved. Not to be reproduced without written consent
ramkedem.com
SMON(System Monitor)
•‫ה‬ ‫כאשר‬Instance‫שונים‬ ‫מכשלים‬ ‫כתוצאה‬ ‫נופל‬,‫כל‬
‫ב‬ ‫אשר‬ ‫האינפורמציה‬SGA‫פיזי‬ ‫באופן‬ ‫נכתבה‬ ‫לא‬ ‫אשר‬-
‫אבודה‬.‫ה‬ ‫של‬ ‫העיקרית‬ ‫מטרתו‬SMON‫היא‬Instance
Recovery‫ה‬ ‫כאשר‬Data Base‫מחדש‬ ‫נפתח‬.
•‫ה‬ ‫פתיחת‬ ‫על‬ ‫אחראי‬-Instance.
•‫ב‬ ‫צורך‬ ‫יש‬ ‫אם‬ ‫בודק‬Recovery(‫טוב‬ ‫לא‬ ‫ירד‬ ‫אם‬,‫נדפק‬ ‫או‬ ‫אבד‬
‫וכו‬ ‫קובץ‬'.)
•‫אם‬,‫למשל‬,‫ה‬-Instance‫נפל‬(‫מ‬ ‫נפילת‬ ‫עקב‬"‫ה‬,‫חשמל‬ ‫הפסקת‬
‫וכו‬'),‫ב‬ ‫המידע‬ ‫כל‬-SGA‫הדיסק‬ ‫אל‬ ‫נכתב‬ ‫לא‬ ‫שעדיין‬,‫אבד‬.
•‫כזה‬ ‫במקרה‬, SMON‫שחזור‬ ‫אוטומטית‬ ‫יבצע‬Instance)
recovery)‫ה‬ ‫את‬ ‫ונפתח‬ ‫שנעלה‬ ‫הבאה‬ ‫בפעם‬Instance
Copyright 2014 © Ram Kedem. All rights reserved. Not to be reproduced without written consent
ramkedem.com
PMON(Process Monitor)
•‫ה‬ ‫כל‬ ‫על‬ ‫אחראי‬-Clients.
•‫אם‬UP‫נכשל‬ ‫או‬ ‫התנתק‬,PMON
•‫מבצע‬Rollback‫לטרנזקציה‬.
•‫וטבלאות‬ ‫שורות‬ ‫על‬ ‫הנעילות‬ ‫כל‬ ‫את‬ ‫משחרר‬.
•‫המשתמש‬ ‫עבור‬ ‫שנשמר‬ ‫אחר‬ ‫משאב‬ ‫כל‬ ‫משחרר‬.
•‫נוספות‬ ‫פעולות‬ ‫מבצע‬(‫ל‬ ‫קשור‬Networking)
Copyright 2014 © Ram Kedem. All rights reserved. Not to be reproduced without written consent
ramkedem.com
Archiver (ARCn)
•‫רקע‬ ‫תהליך‬ ‫זהו‬‫אופציונלי‬,‫של‬ ‫נפילה‬ ‫לאחר‬ ‫מידע‬ ‫שחזור‬ ‫לשם‬ ‫הכרחי‬ ‫אך‬
‫קובץ‬ ‫של‬ ‫אובדן‬ ‫או‬ ‫דיסק‬.
•‫קובץ‬ ‫כאשר‬Online redo‫מתמלא‬,‫מתבצע‬Log switch‫מתחיל‬ ‫ואורקל‬
‫שאחריו‬ ‫לקובץ‬ ‫לכתוב‬.
•‫ה‬ ‫תהליך‬-ARCn‫ה‬ ‫קובץ‬ ‫גיבוי‬ ‫על‬ ‫אחראי‬-Redo‫בכל‬ ‫המלא‬Log switch.
•‫עליו‬ ‫ולכתוב‬ ‫בקובץ‬ ‫מחודש‬ ‫שימוש‬ ‫לבצע‬ ‫יהיה‬ ‫אפשר‬ ‫זה‬ ‫גיבוי‬ ‫לאחר‬ ‫רק‬,
‫ב‬ ‫שהתבצעו‬ ‫השינויים‬ ‫שכל‬ ‫מוודאים‬ ‫אנו‬ ‫וכך‬-DB‫ולא‬ ‫זמן‬ ‫לאורך‬ ‫נשמרים‬
‫לעולם‬ ‫נדרסים‬.
•‫את‬ ‫אפילו‬ ‫או‬ ‫מידע‬ ‫קבצי‬ ‫איבדנו‬ ‫אם‬ ‫גם‬ ‫המידע‬ ‫כל‬ ‫את‬ ‫לשחזר‬ ‫מאפשר‬ ‫זה‬
‫הדיסק‬ ‫כל‬.
•‫ה‬ ‫קובץ‬ ‫שהתמלא‬ ‫ברגע‬-Redo‫האחרון‬,‫הראשון‬ ‫על‬ ‫לכתוב‬ ‫נחזור‬,‫וכך‬
‫מעגלי‬ ‫באופן‬ ‫מידע‬ ‫נדרוס‬.

More Related Content

Similar to Exploring Oracle Database Architecture (Hebrew)

3 extreme performance - databases acceleration using ssd
3   extreme performance - databases acceleration using ssd 3   extreme performance - databases acceleration using ssd
3 extreme performance - databases acceleration using ssd
sqlserver.co.il
 
SDS - Software-defined Storage
SDS - Software-defined StorageSDS - Software-defined Storage
SDS - Software-defined Storage
Aviv Degani
 
SAP NetWeaver Gateway OData
SAP NetWeaver Gateway ODataSAP NetWeaver Gateway OData
SAP NetWeaver Gateway OData
Daniel Cnaan
 
Sql Server Replication Isug 1 2009
Sql Server Replication   Isug 1 2009Sql Server Replication   Isug 1 2009
Sql Server Replication Isug 1 2009
sqlserver.co.il
 
אבטחת מערכות על Novell
אבטחת מערכות על Novellאבטחת מערכות על Novell
אבטחת מערכות על Novell
guest0573a5
 
Whats New In Windows 2008 R2 High Availability
Whats New In Windows 2008 R2 High AvailabilityWhats New In Windows 2008 R2 High Availability
Whats New In Windows 2008 R2 High Availability
Amit Gatenyo
 
דרופל מדריך התקנה
דרופל   מדריך התקנהדרופל   מדריך התקנה
דרופל מדריך התקנה
kaplanlior
 
תאור מפורט של מערכת המחשב
תאור מפורט של מערכת המחשבתאור מפורט של מערכת המחשב
תאור מפורט של מערכת המחשב
haimkarel
 

Similar to Exploring Oracle Database Architecture (Hebrew) (20)

Serverless
ServerlessServerless
Serverless
 
Html5
Html5Html5
Html5
 
החלטתם שהארגון שלכם צריך אוטומציה חכמה. מה עכשיו?
החלטתם שהארגון שלכם צריך אוטומציה חכמה. מה עכשיו?החלטתם שהארגון שלכם צריך אוטומציה חכמה. מה עכשיו?
החלטתם שהארגון שלכם צריך אוטומציה חכמה. מה עכשיו?
 
3 extreme performance - databases acceleration using ssd
3   extreme performance - databases acceleration using ssd 3   extreme performance - databases acceleration using ssd
3 extreme performance - databases acceleration using ssd
 
SDS - Software-defined Storage
SDS - Software-defined StorageSDS - Software-defined Storage
SDS - Software-defined Storage
 
Issa security in a virtual world
Issa   security in a virtual worldIssa   security in a virtual world
Issa security in a virtual world
 
SAP NetWeaver Gateway OData
SAP NetWeaver Gateway ODataSAP NetWeaver Gateway OData
SAP NetWeaver Gateway OData
 
SAP NetWeaver Gateway OData
SAP NetWeaver Gateway ODataSAP NetWeaver Gateway OData
SAP NetWeaver Gateway OData
 
Sql Server Replication Isug 1 2009
Sql Server Replication   Isug 1 2009Sql Server Replication   Isug 1 2009
Sql Server Replication Isug 1 2009
 
מצגת לשולחן עגול מנהלי אבטחת מידע 2.0 lior
מצגת לשולחן עגול מנהלי אבטחת מידע 2.0 liorמצגת לשולחן עגול מנהלי אבטחת מידע 2.0 lior
מצגת לשולחן עגול מנהלי אבטחת מידע 2.0 lior
 
קייס סטאדי מהירות אתר
קייס סטאדי   מהירות אתרקייס סטאדי   מהירות אתר
קייס סטאדי מהירות אתר
 
Expand Cli Command
Expand Cli CommandExpand Cli Command
Expand Cli Command
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
אבטחת מערכות על Novell
אבטחת מערכות על Novellאבטחת מערכות על Novell
אבטחת מערכות על Novell
 
Whats New In Windows 2008 R2 High Availability
Whats New In Windows 2008 R2 High AvailabilityWhats New In Windows 2008 R2 High Availability
Whats New In Windows 2008 R2 High Availability
 
דרופל מדריך התקנה
דרופל   מדריך התקנהדרופל   מדריך התקנה
דרופל מדריך התקנה
 
Top 10 mistakes running a windows network
Top 10 mistakes   running a windows networkTop 10 mistakes   running a windows network
Top 10 mistakes running a windows network
 
Ciso back to the future - network vulnerabilities
Ciso   back to the future - network vulnerabilitiesCiso   back to the future - network vulnerabilities
Ciso back to the future - network vulnerabilities
 
תאור מפורט של מערכת המחשב
תאור מפורט של מערכת המחשבתאור מפורט של מערכת המחשב
תאור מפורט של מערכת המחשב
 
PHP ואבטחה - חלק ראשון
PHP ואבטחה - חלק ראשוןPHP ואבטחה - חלק ראשון
PHP ואבטחה - חלק ראשון
 

More from Ram Kedem

More from Ram Kedem (20)

Impala use case @ edge
Impala use case @ edgeImpala use case @ edge
Impala use case @ edge
 
Advanced SQL Webinar
Advanced SQL WebinarAdvanced SQL Webinar
Advanced SQL Webinar
 
Power Pivot and Power View
Power Pivot and Power ViewPower Pivot and Power View
Power Pivot and Power View
 
Data Mining in SSAS
Data Mining in SSASData Mining in SSAS
Data Mining in SSAS
 
Data mining In SSAS
Data mining In SSASData mining In SSAS
Data mining In SSAS
 
SQL Injections - Oracle
SQL Injections - OracleSQL Injections - Oracle
SQL Injections - Oracle
 
SSAS Attributes
SSAS AttributesSSAS Attributes
SSAS Attributes
 
SSRS Matrix
SSRS MatrixSSRS Matrix
SSRS Matrix
 
DDL Practice (Hebrew)
DDL Practice (Hebrew)DDL Practice (Hebrew)
DDL Practice (Hebrew)
 
DML Practice (Hebrew)
DML Practice (Hebrew)DML Practice (Hebrew)
DML Practice (Hebrew)
 
Introduction to SQL
Introduction to SQLIntroduction to SQL
Introduction to SQL
 
Introduction to Databases
Introduction to DatabasesIntroduction to Databases
Introduction to Databases
 
Deploy SSRS Project - SQL Server 2014
Deploy SSRS Project - SQL Server 2014Deploy SSRS Project - SQL Server 2014
Deploy SSRS Project - SQL Server 2014
 
Pig - Processing XML data
Pig - Processing XML dataPig - Processing XML data
Pig - Processing XML data
 
SSAS Cubes & Hierarchies
SSAS Cubes & HierarchiesSSAS Cubes & Hierarchies
SSAS Cubes & Hierarchies
 
SSRS Basic Parameters
SSRS Basic ParametersSSRS Basic Parameters
SSRS Basic Parameters
 
SSRS Gauges
SSRS GaugesSSRS Gauges
SSRS Gauges
 
SSRS Conditional Formatting
SSRS Conditional FormattingSSRS Conditional Formatting
SSRS Conditional Formatting
 
SSRS Calculated Fields
SSRS Calculated FieldsSSRS Calculated Fields
SSRS Calculated Fields
 
SSRS Groups
SSRS GroupsSSRS Groups
SSRS Groups
 

Exploring Oracle Database Architecture (Hebrew)

  • 1. Exploring the Oracle Database Architecture Ram Kedem
  • 2. Copyright 2014 © Ram Kedem. All rights reserved. Not to be reproduced without written consent ramkedem.com Main AbilitiesDatabase •Availability–‫זמינות‬. •Survivability–‫שרידות‬,‫טוב‬ ‫ושחזור‬ ‫גיבוי‬ ‫מנגנון‬.Performance– ‫ביצועים‬. •Integrity–‫אמינות‬,‫במערכת‬ ‫שיושב‬ ‫המידע‬ ‫על‬ ‫תקינות‬ ‫בדיקות‬. •Security–‫אבטחה‬.
  • 3. Copyright 2014 © Ram Kedem. All rights reserved. Not to be reproduced without written consent ramkedem.com Local Connection •Local •‫ה‬ ‫את‬ ‫המריצה‬ ‫ההפעלה‬ ‫למערכת‬ ‫מתחבר‬ ‫המשתמש‬Instance‫ומפעיל‬ ‫האפליקציה‬ ‫את‬ ‫שם‬. •‫ה‬ ‫בין‬ ‫תתבצע‬ ‫התקשורת‬-Process-‫ההפעלה‬ ‫מערכת‬ ‫ובאמצעות‬ ‫בתוך‬ ‫ים‬ ‫ע‬ ‫המקומית‬"‫הנקרא‬ ‫מכניזם‬ ‫י‬IPC (Inter Processs Communication)
  • 4. Copyright 2014 © Ram Kedem. All rights reserved. Not to be reproduced without written consent ramkedem.com Client / Server Connection •Front End–‫הקליינט‬(Client) •‫ע‬ ‫מנוהל‬ ‫אשר‬ ‫המידע‬ ‫את‬ ‫ומציג‬ ‫מבקש‬ ‫אשר‬ ‫החלק‬"‫השרת‬ ‫י‬ •‫השרת‬ ‫של‬ ‫החומרה‬ ‫מרכיבי‬ ‫שונים‬ ‫יהיו‬ ‫הקליינט‬ ‫של‬ ‫החומרה‬ ‫רכיבי‬ ‫אחרות‬ ‫למטרות‬ ‫וינותבו‬(‫למשל‬ ‫גרפיים‬ ‫ביצועים‬) •‫מהשרת‬ ‫אחר‬ ‫מחשב‬ ‫על‬ ‫ירוץ‬ ‫הקליינט‬ ‫לרוב‬ •Clients‫אחד‬ ‫שרת‬ ‫מול‬ ‫לרוץ‬ ‫יכולים‬ ‫רבים‬ •Back End–‫השרת‬(Server) •‫אפליקציית‬ ‫את‬ ‫מכיל‬Oracle •‫שונים‬ ‫מיוזרים‬ ‫התקבלו‬ ‫אשר‬ ‫בקשות‬ ‫ומעבד‬ ‫מקבל‬ •‫רשת‬ ‫אפליקציית‬(Network Software) •‫והשרת‬ ‫היוזר‬ ‫לחיבור‬ ‫משמשת‬
  • 5. Copyright 2014 © Ram Kedem. All rights reserved. Not to be reproduced without written consent ramkedem.com Three-Tiered Connection •‫והיא‬ ‫מסויימת‬ ‫לאפליקצייה‬ ‫רשת‬ ‫דרך‬ ‫מתחבר‬ ‫המשתמש‬ ‫ל‬ ‫הרשת‬ ‫דרך‬ ‫מתחברת‬-Oracle Server. ‫לדוגמא‬Browser-‫ים‬. ‫זו‬ ‫תקשורת‬ ‫בצורת‬,‫הבאים‬ ‫הרכיבים‬ ‫קיימים‬ •‫ה‬Client‫אחרת‬ ‫אפליקציה‬ ‫כל‬ ‫או‬(Initiator Process)‫את‬ ‫התחילה‬ ‫אשר‬ ‫הפעולה‬ •‫יותר‬ ‫או‬ ‫אחד‬Application Servers‫מהפעולה‬ ‫חלק‬ ‫מבצעים‬ ‫אשר‬ (Query Processing)‫מהשרת‬ ‫עומס‬ ‫מורידים‬ ‫וכך‬ AS‫שרתי‬ ‫למספר‬ ‫יוזרים‬ ‫בין‬ ‫כממשק‬ ‫לשרת‬ ‫יכול‬Database‫שונים‬ AS‫אבטחה‬ ‫של‬ ‫נוספת‬ ‫רמה‬ ‫להוות‬ ‫יכול‬ •‫השרת‬‫ה‬ ‫את‬ ‫מכיל‬ ‫אשר‬Data
  • 6. Copyright 2014 © Ram Kedem. All rights reserved. Not to be reproduced without written consent ramkedem.com Connecting to the Database Instance •Connection–‫ה‬ ‫בין‬ ‫תקשורת‬ ‫נתיב‬User Process(‫האפליקצייה‬ ‫ה‬ ‫על‬ ‫רצה‬ ‫אשר‬Client) ‫ה‬ ‫לבין‬Instance,‫ע‬ ‫מושג‬ ‫זה‬ ‫תקשורת‬ ‫נתיב‬"‫י‬IPC(‫לוקאלי‬ ‫בחיבור‬) ‫כלשהי‬ ‫רשת‬ ‫אפליקציית‬ ‫או‬(‫בחיבור‬client/server) •Session–‫בין‬ ‫מסויים‬ ‫חיבור‬User Process ‫ל‬Instance ‫ה‬ ‫מול‬ ‫רבים‬ ‫סשנים‬ ‫לפתוח‬ ‫יכול‬ ‫מסויים‬ ‫יוזר‬Database
  • 7. Copyright 2014 © Ram Kedem. All rights reserved. Not to be reproduced without written consent ramkedem.com Server Process and User Process •User Process–‫כגון‬ ‫כלי‬ ‫פותח‬ ‫המשתמש‬SQL*Plus‫אפליקציה‬ ‫או‬ ‫אחרת‬,‫כ‬ ‫המורצים‬-User Process.(‫היוזר‬ ‫מחשב‬ ‫על‬) •Server Process-‫ה‬ ‫כאשר‬User Process‫ה‬ ‫אל‬ ‫מתחבר‬-Oracle Server,‫עבורו‬ ‫נוצר‬Process‫ב‬-Oracle Server,‫הנקרא‬Server Process. •‫ה‬ ‫של‬ ‫תפקידו‬-SP‫עם‬ ‫לתקשר‬ ‫הוא‬S‫ה‬-Instance‫ולהריץ‬ ‫הלקוח‬ ‫עבור‬ ‫ה‬ ‫פקודות‬ ‫את‬ ‫עבורו‬-SQL.
  • 8. Copyright 2014 © Ram Kedem. All rights reserved. Not to be reproduced without written consent ramkedem.com Dedicated Server Connection Shared Server Connection •Dedicated Server Connection–‫כל‬ ‫עבור‬ ‫כאשר‬User Process‫יש‬ Server Process‫אחד‬. •Shared Server Connection–‫מספר‬ ‫עבור‬ ‫כאשר‬User Processes ‫יש‬Server Process‫אחד‬.
  • 9. Copyright 2014 © Ram Kedem. All rights reserved. Not to be reproduced without written consent ramkedem.com Oracle Database Server Architecture •‫זכרון‬ ‫מבני‬–‫הלוגי‬ ‫המבנה‬,‫ה‬Instance. •‫ל‬ ‫הגישה‬-DB‫ה‬ ‫דרך‬ ‫רק‬ ‫נעשית‬-Instance,‫פעיל‬ ‫להיות‬ ‫חייב‬ ‫הוא‬ ‫ולכן‬ ‫ב‬ ‫שהנתונים‬ ‫כדי‬-DB‫זמינים‬ ‫יהיו‬. •‫ל‬ ‫רק‬ ‫ולגשת‬ ‫לפתוח‬ ‫יכול‬-DB‫פעם‬ ‫בכל‬ ‫אחד‬. •‫ה‬ ‫כאשר‬Instance‫לעבוד‬ ‫מתחיל‬,‫בשם‬ ‫רכיב‬SGA(System Global Area)‫זכרון‬ ‫שטח‬ ‫תופס‬(‫שנראה‬ ‫שונות‬ ‫לפעולות‬ ‫אותו‬ ‫ישמש‬ ‫אשר‬ ‫בהמשך‬)‫לרוץ‬ ‫מתחילים‬ ‫רקע‬ ‫ותהליכי‬
  • 10. Copyright 2014 © Ram Kedem. All rights reserved. Not to be reproduced without written consent ramkedem.com Oracle Database Server Architecture •‫רקע‬ ‫תהליכי‬–‫אשר‬ ‫ההפעלה‬ ‫במערכת‬ ‫מכניזם‬ ‫הוא‬ ‫רקע‬ ‫תהליך‬ ‫פעולות‬ ‫רצף‬ ‫לבצע‬ ‫יודע‬
  • 11. Copyright 2014 © Ram Kedem. All rights reserved. Not to be reproduced without written consent ramkedem.com Oracle Database Server Architecture •‫אחסון‬ ‫מבני‬–‫הפיזי‬ ‫המבנה‬,‫הקבצים‬.‫הלוגי‬ ‫שהמבנה‬ ‫לאחר‬ ‫אותחל‬,‫ה‬ ‫את‬ ‫משייכת‬ ‫אורקל‬Instance‫הפיזי‬ ‫למבנה‬(‫זה‬ ‫שלב‬ ‫ה‬ ‫שלב‬ ‫נקרא‬Mount) •‫הפעלה‬ ‫מערכת‬ ‫קבצי‬ ‫אוסף‬ ‫הוא‬ ‫הפיסי‬ ‫המבנה‬ ‫סוגים‬ ‫לשלושה‬ ‫המתחלקים‬: •Data Files(DBF) •Control Files(CTL) •Online Redo Log Files(LOG)
  • 12. Copyright 2014 © Ram Kedem. All rights reserved. Not to be reproduced without written consent ramkedem.com Instance Database Configurations •‫כל‬Instance‫ל‬ ‫משוייך‬Database‫אחד‬,‫ל‬ ‫ו‬Database‫בלבד‬ ‫אחד‬. •RAC(Real Application Clusters)‫ל‬Database‫מ‬ ‫יותר‬ ‫יש‬ ‫אחד‬ Instance‫אחד‬(‫מספר‬Instances‫אותו‬ ‫על‬ ‫במקביל‬ ‫עובדים‬ ‫אשר‬ Database.) ‫ללא‬ ‫המערכת‬ ‫פעולת‬ ‫שזמן‬ ‫בכך‬ ‫הוא‬ ‫זו‬ ‫בתצורה‬ ‫היתרונות‬ ‫אחד‬ ‫השבתה‬(‫ה‬Uptime)‫היא‬724
  • 13. Copyright 2014 © Ram Kedem. All rights reserved. Not to be reproduced without written consent ramkedem.com Oracle Database Memory Structures •SGA–System Global Area •‫הרקע‬ ‫ותהליכי‬ ‫היוזרים‬ ‫לכל‬ ‫משותפים‬ ‫אשר‬ ‫זכרון‬ ‫מבני‬ ‫של‬ ‫קבוצה‬ ‫השונים‬ •‫לכל‬Instance‫יש‬SGA‫אחד‬ •PGA–Program Global Area •‫ל‬ ‫משוייך‬ ‫אשר‬ ‫זכרון‬ ‫מבנה‬Server Process‫אחד‬ •‫ה‬ ‫מספר‬PGA‫החיבורים‬ ‫כמספר‬ ‫הוא‬ ‫במערכת‬(‫ה‬ ‫מספר‬Clients)
  • 14. Copyright 2014 © Ram Kedem. All rights reserved. Not to be reproduced without written consent ramkedem.com SGA Main Components •Shared Pool •Database Buffer Cache •Redo log buffer •Large Pool •Java Pool
  • 15. Copyright 2014 © Ram Kedem. All rights reserved. Not to be reproduced without written consent ramkedem.com Shared Pool •‫ה‬Shared Pool‫המערכת‬ ‫טבלת‬ ‫זכרון‬ ‫רכיבי‬ ‫של‬ ‫רב‬ ‫ממספר‬ ‫מורכב‬ v$sgastat •‫העיקריים‬ ‫רכיביו‬: •Library Cache‫מ‬ ‫מורכב‬ ‫אשר‬- •Shared SQL •Shared PLSQL •Data Dictionary Cache
  • 16. Copyright 2014 © Ram Kedem. All rights reserved. Not to be reproduced without written consent ramkedem.com Shared Pool – Library Cache •‫שומר‬‫שאילתות‬ ‫עבור‬ ‫אינפורמציה‬SQL‫וקוד‬PLSQL. •‫מורכב‬‫מ‬Shared SQL‫ו‬Shared PLSQL •‫מנוהל‬‫ע‬"‫אלגוריתם‬ ‫י‬LRU–Least Recently Used,‫ה‬ ‫כאשר‬ Cache‫ביותר‬ ‫הישנות‬ ‫הפקודות‬ ‫של‬ ‫האינפורמציה‬ ‫מתמלא‬ ‫ב‬ ‫שקיימות‬Cache‫חדשות‬ ‫עבור‬ ‫מקום‬ ‫ומפנה‬ ‫נמחקת‬. •‫אם‬‫גודל‬‫ה‬Shared Pool‫מדי‬ ‫קטן‬–‫לשליפות‬ ‫יגרום‬ ‫הדבר‬ ‫ה‬ ‫מתוך‬ ‫ונשנות‬ ‫חוזרות‬DF,‫בביצועים‬ ‫להאטה‬ ‫שיגרום‬ ‫מה‬. •‫מ‬ ‫מורכב‬: •Shared SQL •‫שאילתות‬ ‫עבור‬ ‫פעולה‬ ‫תוכניות‬ ‫שומר‬SQL‫הורצו‬ ‫אשר‬ •Shared PLSQL •‫של‬ ‫אובייקטים‬ ‫עבור‬ ‫פעולה‬ ‫תוכניות‬ ‫שומר‬PLSQL‫הורצו‬ ‫אשר‬
  • 17. Copyright 2014 © Ram Kedem. All rights reserved. Not to be reproduced without written consent ramkedem.com Shared Pool – Data Dictionary Cache •‫ה‬Data Dictionary‫האובייקטים‬ ‫על‬ ‫אינפורמציה‬ ‫בתוכו‬ ‫מכיל‬ ‫טבלאות‬ ‫כגון‬ ‫במערכת‬ ‫השונים‬,‫אינדקסים‬,‫יוזרים‬,‫עמודות‬ ‫וכד‬'. •‫ה‬DDC‫הנתונים‬ ‫את‬ ‫בתוכו‬ ‫שומר‬(‫הבלוקים‬)‫אשר‬ ‫האחרונים‬ ‫השונות‬ ‫המערכת‬ ‫מטבלאות‬ ‫נשלפו‬,‫את‬ ‫מייעלים‬ ‫אנו‬ ‫זו‬ ‫בדרך‬ ‫ה‬ ‫פעולות‬DML‫וה‬DDL‫המערכת‬ ‫על‬. •‫ה‬DDC‫ע‬ ‫עובד‬"‫י‬‫ה‬ ‫אלגוריתם‬LRU
  • 18. Copyright 2014 © Ram Kedem. All rights reserved. Not to be reproduced without written consent ramkedem.com Data Base Buffer Cache – DBBC •‫ה‬DB Buffer Cache‫לשמירת‬ ‫מיועד‬‫בלוקים‬‫בזכרון‬ ‫מידע‬ ‫של‬. •‫ה‬DBBC‫מה‬ ‫הגיעו‬ ‫אשר‬ ‫זכרון‬ ‫של‬ ‫בלוקים‬ ‫בתוכו‬ ‫מכיל‬Data Files‫כתוצאה‬ ‫מפעולת‬SELECT‫פעולת‬ ‫או‬DML‫המערכת‬ ‫על‬ ‫מתרחשות‬ ‫אשר‬. •‫בלוק‬–‫לכתוב‬ ‫או‬ ‫לקרוא‬ ‫מסוגל‬ ‫שאורקל‬ ‫ביותר‬ ‫הקטנה‬ ‫המידע‬ ‫יחידת‬ ‫הוא‬. (‫הוא‬ ‫שלו‬ ‫הגודל‬ ‫דיפולטי‬ ‫באופן‬K8),‫של‬ ‫רב‬ ‫מספר‬ ‫יכיל‬ ‫אחד‬ ‫בלוק‬ ‫לרוב‬ ‫שורות‬. •‫בלוק‬–‫ה‬ ‫יחידת‬ ‫הוא‬I/O‫המינימלית‬,‫רוצים‬ ‫אנו‬ ‫אם‬ ‫שגם‬ ‫שאומר‬ ‫מה‬ ‫בלבד‬ ‫אחת‬ ‫שורה‬ ‫של‬ ‫נתונים‬ ‫לשלוף‬,‫לזכרון‬ ‫יטען‬ ‫נמצאת‬ ‫היא‬ ‫בו‬ ‫הבלוק‬ ‫כל‬. •I/O‫מידע‬ ‫מערכות‬ ‫של‬ ‫המרכזי‬ ‫הבקבוק‬ ‫צוואר‬ ‫הוא‬ •I/O‫פיזי‬(physical reads)–‫מהדיסקים‬ ‫קריאה‬ •I/O‫לוגי‬(consistent gets)–‫הזכרון‬ ‫מול‬ ‫עבודה‬ •‫ה‬DB Buffer Cache‫באפרים‬ ‫מכיל‬(Buffers)‫יכול‬ ‫מהם‬ ‫אחד‬ ‫כל‬ ‫אשר‬ ‫מידע‬ ‫של‬ ‫אחד‬ ‫בלוק‬ ‫להכיל‬. •‫ע‬ ‫מנוהל‬"‫ה‬ ‫אלגוריתם‬ ‫י‬LRU
  • 19. Copyright 2014 © Ram Kedem. All rights reserved. Not to be reproduced without written consent ramkedem.com ‫ב‬ ‫שימוש‬DBC‫פעולת‬ ‫בעת‬SELECT .1‫שאילתה‬ ‫מריץ‬ ‫יוזר‬ .2Server Process‫ב‬ ‫קיים‬ ‫המידע‬ ‫אם‬ ‫בודק‬DB Buffer Cache .3‫ב‬ ‫כבר‬ ‫נמצאת‬ ‫האינפורמציה‬ ‫אם‬Cache‫נקרא‬ ‫האירוע‬ Cache Hit‫ליוזר‬ ‫חוזרים‬ ‫והנתונים‬. .4‫בזכרון‬ ‫לא‬ ‫הוא‬ ‫אם‬,‫נקרא‬ ‫האירוע‬Cache Miss‫ואז‬: .1Server Process‫ל‬ ‫הולך‬Data Files‫הנתונים‬ ‫את‬ ‫משם‬ ‫ומושך‬. .2‫ב‬ ‫נשמרת‬ ‫האינפורמציה‬.Cache .3‫ליוזר‬ ‫חוזרים‬ ‫השאילתה‬ ‫של‬ ‫הנתונים‬.
  • 20. Copyright 2014 © Ram Kedem. All rights reserved. Not to be reproduced without written consent ramkedem.com ‫ב‬ ‫שימוש‬DBC‫פעולת‬ ‫בעת‬DML .1‫פקודת‬ ‫מריץ‬ ‫יוזר‬DML .2‫ה‬SP(Server Process)‫מופעלת‬ ‫עליו‬ ‫אשר‬ ‫הבלוק‬ ‫אם‬ ‫בודק‬ ‫ה‬ ‫פקודת‬DML‫ב‬ ‫כבר‬ ‫נמצא‬DBC .3‫כן‬ ‫אם‬Cache Hit‫לשלב‬ ‫ומעבר‬5 .4‫לא‬ ‫אם‬,Cache Miss,‫ה‬SP‫ה‬ ‫מתוך‬ ‫הנחוצים‬ ‫הבלוקים‬ ‫את‬ ‫קורא‬ DF‫ה‬ ‫לתוך‬DBC‫לשלב‬ ‫ומעבר‬5 .5‫ה‬ ‫בתוך‬ ‫נעשה‬ ‫הנתונים‬ ‫על‬ ‫השינוי‬DBC .1Buffer‫ב‬ ‫שונה‬ ‫אשר‬DBC‫כ‬ ‫מוגדר‬Dirty Buffer .6Dirty Buffer‫ל‬ ‫חזרה‬ ‫נכתב‬DF‫ע‬"‫ה‬ ‫י‬DBWR
  • 21. Copyright 2014 © Ram Kedem. All rights reserved. Not to be reproduced without written consent ramkedem.com Redo Log Buffer •‫ה‬RLB‫כ‬ ‫מוגדר‬Circular Buffer‫כל‬ ‫של‬ ‫סידרתי‬ ‫רקורד‬ ‫בתוכו‬ ‫ומכיל‬ ‫ב‬ ‫התרחשו‬ ‫אשר‬ ‫הפעולות‬DB (DML‫ו‬DDL.) •‫נקרא‬ ‫בו‬ ‫המתועד‬ ‫שינוי‬ ‫כל‬"Redo Entry",‫מידע‬ ‫מכילים‬ ‫והוא‬ ‫ב‬ ‫שקרו‬ ‫והשינויים‬ ‫הפעולות‬ ‫את‬ ‫מחדש‬ ‫לבצע‬ ‫ניתן‬ ‫שבאמצעותו‬-DB (Recovery) •‫מוגדר‬ ‫זמן‬ ‫בכל‬–‫ה‬ ‫אשר‬ ‫הנתונים‬RLB‫שמר‬,‫ל‬ ‫מועברים‬Redo Log Files(SP–LGWR.)
  • 22. Copyright 2014 © Ram Kedem. All rights reserved. Not to be reproduced without written consent ramkedem.com Large Pool •‫חלק‬‫אופציונאלי‬‫ב‬SGA •‫אשר‬ ‫שונות‬ ‫לפעולות‬ ‫זכרון‬ ‫להקצאות‬ ‫משמש‬ ‫זה‬ ‫זכרון‬ ‫אזור‬ ‫שה‬ ‫בזמן‬ ‫להתרחש‬ ‫יכולות‬Instance‫פעיל‬ •Session Memory‫עבור‬Shared Server •I/O Server Processes •Parallel Query Buffers •Oracle Backup and Restore Operations using RMAN •‫וה‬ ‫במידה‬Large Pool‫מופעל‬ ‫לא‬,‫ב‬ ‫מתבצעות‬ ‫אלו‬ ‫פעולות‬ Shared Pool,‫הביצועים‬ ‫על‬ ‫שמשפיע‬ ‫מה‬,‫מופעל‬ ‫והוא‬ ‫במידה‬ ‫ל‬ ‫מאפשר‬ ‫בו‬ ‫השימוש‬Shared Pool‫בעיקר‬ ‫לבצע‬Cache‫לכל‬ ‫זה‬ ‫נושא‬ ‫תחת‬ ‫נרשמו‬ ‫אשר‬ ‫הדברים‬.
  • 23. Copyright 2014 © Ram Kedem. All rights reserved. Not to be reproduced without written consent ramkedem.com Java Pool •‫של‬ ‫קוד‬ ‫לכתוב‬ ‫מאפשר‬ ‫אורקל‬Java‫ב‬DB •‫ה‬Java Pool‫קוד‬ ‫מחזיק‬Java‫קוד‬ ‫בה‬ ‫לצורה‬ ‫בדומה‬PL/SQL‫נשמר‬ ‫ב‬Shared Pool •‫ל‬ ‫משמש‬-Parsing‫פקודות‬ ‫של‬Java( .User Defined Java Objects– ‫אובייקטי‬Java‫ב‬ ‫להגדיר‬ ‫שאפשר‬-DB) •‫פרמטר‬ ‫זהו‬‫אופציונלי‬,‫ב‬ ‫משתמשים‬ ‫אנו‬ ‫אם‬ ‫אותו‬ ‫לשפעל‬ ‫עלינו‬ ‫אך‬- Java.
  • 24. Copyright 2014 © Ram Kedem. All rights reserved. Not to be reproduced without written consent ramkedem.com Program/Process Global Area (PGA) •‫ה‬PGA‫ל‬ ‫הרלוונטית‬ ‫אינפורמציה‬ ‫שומר‬ ‫אשר‬ ‫זכרון‬ ‫איזור‬ ‫הוא‬Server Processes‫אחד‬(‫לכל‬Server Process‫ה‬ ‫את‬ ‫יש‬PGA‫שלו‬) •‫ה‬ ‫של‬ ‫המרכזי‬ ‫החלק‬PGA: •User Global Area(UGA)–‫ה‬UGA‫הבאים‬ ‫מהחלקים‬ ‫מורכב‬ •‫קרסורים‬ ‫עבור‬ ‫זכרון‬ ‫איזור‬ •User Session Data–‫לדוגמא‬:‫כמה‬CPU‫תופס‬ ‫הסשן‬,‫מקסימום‬ ‫זמן‬ ‫כמה‬ ‫מחובר‬ ‫להיות‬ ‫לו‬ ‫מותר‬,‫ב‬ ‫להיות‬ ‫לו‬ ‫מותר‬ ‫מקסימום‬ ‫זמן‬ ‫כמה‬Idle,‫כמה‬Block Reads‫ועוד‬ ‫ביצע‬ ‫הוא‬. •‫פקודות‬ ‫עיבוד‬ ‫עבור‬ ‫זכרון‬ ‫איזור‬SQL‫מ‬ ‫מורכב‬ ‫אשר‬– •‫פקודות‬ ‫עבור‬ ‫זיכרון‬ ‫איזור‬ORDER BY‫ו‬GROUP BY •‫עבור‬ ‫זכרון‬ ‫איזור‬Hash Joins •‫יצירת‬ ‫עבור‬ ‫זכרון‬ ‫איזור‬Bitmap‫אינדקס‬ •‫ב‬ ‫ימוקם‬PGA‫ב‬Dedicated Server,‫ב‬ ‫ימוקם‬SGA‫ב‬Shared Server
  • 25. Copyright 2014 © Ram Kedem. All rights reserved. Not to be reproduced without written consent ramkedem.com Process Architecture •User process–‫ל‬ ‫מתחבר‬ ‫היוזר‬ ‫בעזרתה‬ ‫אשר‬ ‫האפליקצייה‬Oracle Database •Server process–‫ל‬ ‫מתחבר‬ ‫היוזר‬ ‫כאשר‬Database‫עבורו‬ ‫נפתח‬server process‫ה‬ ‫מול‬ ‫פעולותיו‬ ‫את‬ ‫לבצע‬ ‫נועד‬ ‫אשר‬Database •‫ה‬Server Process‫הבאות‬ ‫הפעולות‬ ‫כל‬ ‫או‬ ‫אחת‬ ‫את‬ ‫לבצע‬ ‫יכול‬: •Parse‫ה‬ ‫פקודות‬ ‫והרצת‬SQL •‫ה‬ ‫קריאת‬Data Blocks‫ה‬ ‫אל‬ ‫מהקבצים‬Buffer Cache •‫מה‬ ‫תוצאות‬ ‫החזרת‬Buffer Cache‫לו‬ ‫מובנת‬ ‫תהיה‬ ‫אשר‬ ‫בצורה‬ ‫היוזר‬ ‫אל‬ •Dedicated–‫לכל‬User Process‫יש‬Server Process‫אותו‬ ‫משרת‬ ‫אשר‬ ‫אחד‬. •Shared–‫קבוצת‬ ‫לכל‬User Processes‫יש‬Server Process‫משרת‬ ‫אשר‬ ‫אחד‬ ‫אותם‬. •Background Process–‫שרת‬ ‫בצד‬ ‫פועלים‬ ‫אשר‬ ‫רקע‬ ‫תהליכי‬,‫את‬ ‫מנהלים‬ ‫הפיזיים‬ ‫הקבצים‬ ‫לבין‬ ‫בינהם‬ ‫האינטראקציה‬ ‫את‬ ‫ויוצרים‬ ‫הזכרון‬ ‫רכיבי‬.
  • 26. Copyright 2014 © Ram Kedem. All rights reserved. Not to be reproduced without written consent ramkedem.com Background Processes •‫נוצרים‬‫ה‬ ‫עליית‬ ‫בעת‬-Instace. •‫מקשרים‬‫הפיסיים‬ ‫הקבצים‬ ‫לבין‬ ‫הזיכרון‬ ‫מבני‬ ‫בין‬. •‫חמישה‬ ‫יש‬ ‫לאורקל‬Process-‫כאלה‬ ‫הכרחיים‬ ‫ים‬,‫וכמה‬ ‫כמה‬ ‫ועוד‬ ‫אופציונליים‬,‫שלהם‬ ‫באופציה‬ ‫שימוש‬ ‫עושים‬ ‫אם‬ ‫הנוצרים‬. •‫המנדטוריים‬ ‫חמשת‬:DBWn,LGWR,CKPT,SMON,PMON
  • 27. Copyright 2014 © Ram Kedem. All rights reserved. Not to be reproduced without written consent ramkedem.com DBWn(DB Writer) •‫כתיבת‬ ‫על‬ ‫אחראי‬dirty buffers‫מה‬buffer cache‫לדיסק‬. •‫ב‬ ‫באפר‬ ‫כאשר‬buffer cache‫כ‬ ‫מסומן‬ ‫הוא‬ ‫משתנה‬dirty, cold buffer‫ה‬ ‫לפי‬ ‫לאחרונה‬ ‫שימוש‬ ‫כל‬ ‫בו‬ ‫נעשה‬ ‫לא‬ ‫אשר‬ ‫באפר‬ ‫הוא‬ LRU. DBWn‫לדיסק‬ ‫ומלוכלכים‬ ‫קרים‬ ‫באפרים‬ ‫רושם‬ •‫ה‬ ‫את‬ ‫מנהל‬ ‫הוא‬Buffer Cache‫באפרים‬ ‫יהיו‬ ‫שתמיד‬ ‫כזו‬ ‫בצורה‬ ‫פנויים‬.
  • 28. Copyright 2014 © Ram Kedem. All rights reserved. Not to be reproduced without written consent ramkedem.com DBWn(DB Writer) •‫ה‬DBWr‫הבאים‬ ‫בתנאים‬ ‫כותב‬ •‫ה‬ ‫כאשר‬server process‫של‬ ‫סריקה‬ ‫לאחר‬ ‫פנוי‬ ‫באפר‬ ‫למצוא‬ ‫מצליח‬ ‫לא‬ ‫מסויימת‬ ‫תקורה‬ •Checkpoint •‫ל‬ ‫קשור‬ ‫לא‬-Commit! •(‫ב‬-Commit‫ה‬ ‫רק‬-LGWR‫לדיסק‬ ‫כותב‬.)
  • 29. Copyright 2014 © Ram Kedem. All rights reserved. Not to be reproduced without written consent ramkedem.com LGWR(Log Writer) •‫מה‬ ‫סדרתיות‬ ‫כתיבות‬ ‫מבצע‬-Redo Log Buffer‫שב‬-SGA(‫מהזיכרון‬)‫ה‬ ‫קבצי‬ ‫אל‬- Online redo log files‫שבדיסק‬. •‫ה‬ ‫כל‬ ‫את‬ ‫לדיסק‬ ‫מעביר‬ ‫הוא‬ ‫פעם‬ ‫בכל‬Redo entries‫הפעם‬ ‫מאז‬ ‫בו‬ ‫שנמצאים‬ ‫כתב‬ ‫שהוא‬ ‫האחרונה‬ •‫מסוימים‬ ‫באירועים‬ ‫הדיסק‬ ‫אל‬ ‫לכתוב‬ ‫מתעורר‬ ‫הוא‬: •‫מבצעת‬ ‫טרנזקציה‬ ‫כאשר‬Commit. •‫ה‬ ‫כאשר‬-Redo Log Buffer‫התמלא‬‫בשליש‬. •‫מ‬ ‫יותר‬ ‫יש‬ ‫כאשר‬-1 MB‫מידע‬ ‫של‬Redo‫ב‬-Buffer. •‫שניות‬ ‫שלוש‬ ‫כל‬. •‫ה‬ ‫כאשר‬-DBWn‫לכתוב‬ ‫ומבקש‬ ‫מתעורר‬,‫ה‬LGWR‫לפניו‬ ‫לכתוב‬ ‫חייב‬(Write Ahead Protocol) Fast Commit–‫ה‬ ‫בפעולת‬-Commit‫ה‬ ‫אל‬ ‫נכתב‬ ‫לא‬ ‫המידע‬-Data Files‫אל‬ ‫אלא‬ ‫ה‬-Online Redo Log Files‫ע‬"‫ה‬ ‫י‬-LGWR( .‫ומהירה‬ ‫סדרתית‬ ‫כתיבה‬.‫נפלנו‬ ‫אם‬–‫ישתחזר‬ ‫ע‬"‫י‬ ‫ה‬-Roll Forward.‫יותר‬ ‫ומסורבל‬ ‫איטי‬ ‫השחזור‬ ‫אמנם‬,‫מהירה‬ ‫השוטפת‬ ‫העבודה‬ ‫אך‬ ‫וסדרתית‬.)
  • 30. Copyright 2014 © Ram Kedem. All rights reserved. Not to be reproduced without written consent ramkedem.com CKPT–(Checkpoint) •CKPT–‫תהליך‬‫ל‬ ‫לאותת‬ ‫שמטרתו‬DBWR‫מה‬ ‫לכתוב‬Buffer Cache‫ה‬ ‫אל‬Data Files •Checkpoint–‫האירוע‬‫ה‬ ‫שבו‬DBWR‫כל‬ ‫את‬ ‫הקבצים‬ ‫אל‬ ‫כותב‬ ‫ה‬-Buffers‫ב‬-Cache‫ה‬ ‫את‬ ‫ומעדכן‬ ‫מסוימת‬ ‫נקודה‬ ‫עד‬ ‫שעודכנו‬ checkpoint position •Checkpoint Position–‫זמן‬ ‫נקודת‬‫ה‬ ‫אליה‬ ‫שנכון‬ ‫מסויימת‬DB ‫מסונכרן‬ ‫ה‬ ‫בקובץ‬ ‫בדיוק‬ ‫היכן‬ ‫מציינת‬ ‫זו‬ ‫נקודה‬-Online redo‫צריך‬ ‫נפילה‬ ‫של‬ ‫במקרה‬ ‫השחזור‬ ‫להתחיל‬,‫שה‬ ‫מכיוון‬-DBWn‫כבר‬ ‫זו‬ ‫נקודה‬ ‫לפני‬ ‫שעודכן‬ ‫המידע‬ ‫כל‬ ‫את‬ ‫לקבצים‬ ‫כתב‬.
  • 31. Copyright 2014 © Ram Kedem. All rights reserved. Not to be reproduced without written consent ramkedem.com CKPT–(Checkpoint) •‫לביצוע‬ ‫הסיבות‬Checkpoints: •‫לוודא‬‫קבוע‬ ‫בסיס‬ ‫על‬ ‫לדיסק‬ ‫נכתב‬ ‫שבזיכרון‬ ‫שהמידע‬,‫נאבד‬ ‫שלא‬ ‫כך‬ ‫נפילה‬ ‫של‬ ‫במקרה‬ ‫מידע‬. •‫להקטין‬‫לבצע‬ ‫הנדרש‬ ‫הזמן‬ ‫את‬Instance recovery.‫את‬ ‫רק‬ ‫לעבד‬ ‫עלינו‬ ‫רשומות‬Redo‫ה‬ ‫לאחר‬ ‫שנרשמו‬-Checkpoint‫שבוצע‬ ‫האחרון‬.
  • 32. Copyright 2014 © Ram Kedem. All rights reserved. Not to be reproduced without written consent ramkedem.com CKPT–(Checkpoint) •‫סוגי‬Checkpoint: •‫מלא‬–‫ב‬ ‫שיש‬ ‫מה‬ ‫כל‬-Log‫ה‬ ‫אל‬ ‫נכתב‬-DB.‫ולא‬ ‫מסתנכרן‬ ‫הכל‬ ‫בשחזור‬ ‫צורך‬ ‫יהיה‬(‫בעת‬ ‫למשל‬Shudown‫מסודר‬.) •‫חלקי‬(Partial)–‫שה‬ ‫כתיבות‬-DBWR‫יזם‬(‫מישהו‬ ‫למשל‬ ‫אם‬ ‫ל‬ ‫קובץ‬ ‫הוריד‬-Offline,‫עליו‬ ‫רק‬ ‫יעשה‬ ‫אורקל‬Checkpoint.) •Incremental Checkpoint–‫הבלוקים‬ ‫כל‬ ‫את‬ ‫לכתוב‬ ‫במקום‬ ‫לדיסק‬,‫חלק‬ ‫רק‬ ‫כותב‬(‫עד‬SCN‫מסוים‬)‫כמות‬ ‫על‬ ‫ושומר‬ ‫של‬ ‫מסוימת‬Dirty blocks CKPT‫ה‬ ‫את‬ ‫שכותב‬ ‫זה‬ ‫אינו‬-Data blocks‫ה‬ ‫או‬-Redo‫לדיסק‬. ‫ל‬ ‫שמאותת‬ ‫זה‬ ‫רק‬ ‫הוא‬-DBWR‫ב‬ ‫לכתוב‬-Checkpoint,‫ש‬ ‫או‬- DBWR‫לכתוב‬ ‫רוצה‬ ‫כשהוא‬ ‫לו‬ ‫מאותת‬.
  • 33. Copyright 2014 © Ram Kedem. All rights reserved. Not to be reproduced without written consent ramkedem.com SMON(System Monitor) •‫ה‬ ‫כאשר‬Instance‫שונים‬ ‫מכשלים‬ ‫כתוצאה‬ ‫נופל‬,‫כל‬ ‫ב‬ ‫אשר‬ ‫האינפורמציה‬SGA‫פיזי‬ ‫באופן‬ ‫נכתבה‬ ‫לא‬ ‫אשר‬- ‫אבודה‬.‫ה‬ ‫של‬ ‫העיקרית‬ ‫מטרתו‬SMON‫היא‬Instance Recovery‫ה‬ ‫כאשר‬Data Base‫מחדש‬ ‫נפתח‬. •‫ה‬ ‫פתיחת‬ ‫על‬ ‫אחראי‬-Instance. •‫ב‬ ‫צורך‬ ‫יש‬ ‫אם‬ ‫בודק‬Recovery(‫טוב‬ ‫לא‬ ‫ירד‬ ‫אם‬,‫נדפק‬ ‫או‬ ‫אבד‬ ‫וכו‬ ‫קובץ‬'.) •‫אם‬,‫למשל‬,‫ה‬-Instance‫נפל‬(‫מ‬ ‫נפילת‬ ‫עקב‬"‫ה‬,‫חשמל‬ ‫הפסקת‬ ‫וכו‬'),‫ב‬ ‫המידע‬ ‫כל‬-SGA‫הדיסק‬ ‫אל‬ ‫נכתב‬ ‫לא‬ ‫שעדיין‬,‫אבד‬. •‫כזה‬ ‫במקרה‬, SMON‫שחזור‬ ‫אוטומטית‬ ‫יבצע‬Instance) recovery)‫ה‬ ‫את‬ ‫ונפתח‬ ‫שנעלה‬ ‫הבאה‬ ‫בפעם‬Instance
  • 34. Copyright 2014 © Ram Kedem. All rights reserved. Not to be reproduced without written consent ramkedem.com PMON(Process Monitor) •‫ה‬ ‫כל‬ ‫על‬ ‫אחראי‬-Clients. •‫אם‬UP‫נכשל‬ ‫או‬ ‫התנתק‬,PMON •‫מבצע‬Rollback‫לטרנזקציה‬. •‫וטבלאות‬ ‫שורות‬ ‫על‬ ‫הנעילות‬ ‫כל‬ ‫את‬ ‫משחרר‬. •‫המשתמש‬ ‫עבור‬ ‫שנשמר‬ ‫אחר‬ ‫משאב‬ ‫כל‬ ‫משחרר‬. •‫נוספות‬ ‫פעולות‬ ‫מבצע‬(‫ל‬ ‫קשור‬Networking)
  • 35. Copyright 2014 © Ram Kedem. All rights reserved. Not to be reproduced without written consent ramkedem.com Archiver (ARCn) •‫רקע‬ ‫תהליך‬ ‫זהו‬‫אופציונלי‬,‫של‬ ‫נפילה‬ ‫לאחר‬ ‫מידע‬ ‫שחזור‬ ‫לשם‬ ‫הכרחי‬ ‫אך‬ ‫קובץ‬ ‫של‬ ‫אובדן‬ ‫או‬ ‫דיסק‬. •‫קובץ‬ ‫כאשר‬Online redo‫מתמלא‬,‫מתבצע‬Log switch‫מתחיל‬ ‫ואורקל‬ ‫שאחריו‬ ‫לקובץ‬ ‫לכתוב‬. •‫ה‬ ‫תהליך‬-ARCn‫ה‬ ‫קובץ‬ ‫גיבוי‬ ‫על‬ ‫אחראי‬-Redo‫בכל‬ ‫המלא‬Log switch. •‫עליו‬ ‫ולכתוב‬ ‫בקובץ‬ ‫מחודש‬ ‫שימוש‬ ‫לבצע‬ ‫יהיה‬ ‫אפשר‬ ‫זה‬ ‫גיבוי‬ ‫לאחר‬ ‫רק‬, ‫ב‬ ‫שהתבצעו‬ ‫השינויים‬ ‫שכל‬ ‫מוודאים‬ ‫אנו‬ ‫וכך‬-DB‫ולא‬ ‫זמן‬ ‫לאורך‬ ‫נשמרים‬ ‫לעולם‬ ‫נדרסים‬. •‫את‬ ‫אפילו‬ ‫או‬ ‫מידע‬ ‫קבצי‬ ‫איבדנו‬ ‫אם‬ ‫גם‬ ‫המידע‬ ‫כל‬ ‫את‬ ‫לשחזר‬ ‫מאפשר‬ ‫זה‬ ‫הדיסק‬ ‫כל‬. •‫ה‬ ‫קובץ‬ ‫שהתמלא‬ ‫ברגע‬-Redo‫האחרון‬,‫הראשון‬ ‫על‬ ‫לכתוב‬ ‫נחזור‬,‫וכך‬ ‫מעגלי‬ ‫באופן‬ ‫מידע‬ ‫נדרוס‬.