Oracle Architecture 11G
ปัจจุบัน product ของ Oracle ยังคงมี version 11G ที่ยังใช้ได้ในปัจจุบัน จึงขอ อธิบาย ในเรื่องของ Architecture และแชร์ความรู้ที่มี ของ version 11G ค่ะ เพื่อ เป็น พื้นฐานใน การทำความเข้าใจ Architecture ของ Oracle อย่างง่าย ก่อน ที่ Oracle จะ พัฒนา ไปรูปแบบ เป็น รูปแบบ Cloud หรือ version ถัดขึ้นไป
Oracle Architecture 11G
องค์ประกอบหลัก ของ Oracle Architecture แบ่งเป็น 2ส่วนใหญ่ คือ
1. Oracle Instance
- SGA หน่วยความจำร่วม ที่ User ทุกคนใช้ร่วมกัน
- PGA หน่วยความจำ per User
- Server Process เมื่อ Session ถูก Start ด้วย User และสามารถ Connect กับ ฐานข้อมูล(Instance) จะเกิด เป็น Server Process
- Background Process เป็น process ของระบบปฏิบัติการ ทำหน้าที่เกื้อหนุนการทำงานของ SGA ให้สำเร็จ
2. Oracle Database (File)
แบ่งเป็น 2 ประเภทหลัก
- Mandatory
- Parameter file
- Data file
- Redo Log file
- Control file
- Optional
- Archive file
- Password file
อธิบาย
Oracle Instance
SGA
ประกอบไปด้วย หน่วยความจำประกอบร่วม หรือ เปรียบเสมือน RAM ของคอมพิวเตอร์นั่นเอง แต่ สำหรับ SGA คือ RAM สำหรับ Oracle Database เท่านั้น
- Shared Pool แบ่งเป็น 2ประเภท หลัก
- 1 Library Cache
หน่วยความจำร่วมย่อย ใช้เก็บขุดคำสั่ง SQL ที่ถูกประมวลผล จัดเก็บชุดคำสั่ง ที่เป็น Identical Statement(ตัวเล็ก
ตัวใหญ่ เหมือนกัน จะเก็บครั้งเดียว)
1.2 Data Dictionary Cache
เก็บโครงสร้าง ของ ฐานข้อมูล เช่น User, Table, Privilege, etc…
- Large Pool (Optional Area)
เป็น พื้นที่ สำหรับ การทำ Recovery, Backup and I/O running ถ้า RAM(SGA) เพียงพอต่อการใช้งาน จะไม่ใช้พื้นที่ในส่วนนี้ จะใช้งานภายใน SGA เท่านั้น
- DB Buffer Cache มีหน้าที่หลัก 2หน้าที่
- ใช้จัดเก็บข้อมูลที่ดึงมาจาก Datafile (Select ตารางจาก Datafile)
- จัดเก็บค่าใหม่ของข้อมูลที่ถูกทำรายการเปลี่ยนแปลง (Insert, Update, Delete เรียกอีกอย่างว่า Transaction)
- Redo Log Buffer Cache
เก็บ Redo Log Entry ประกอบไปด้วย (เมื่อ User ส่งคำสั่ง DML รายละเอียด ตามด้านล่าง จะถูกเก็บไว้ใน Redo log Buffer และเก็บ ใน UNDO Tablespace เช่นกัน)
- ค่าเก่าของข้อมูล
- ชุดคำสั่ง Instruction
- วัน/เวลา ในการส่งชุดคำสั่ง
- ID ของ User ที่ส่งคำสั่ง
เมื่อส่งคำสั่ง DML ต้องใช้ 2 คำสั่ง เพื่อยืนยัน การเปลี่ยนแปลง ข้อมูลคือ
- COMMIT ยืนยัน เกี่ยวกับการเปลี่ยนแปลงข้อมูล
- ROLLBACK เมื่อ user ส่งคำสั่ง ในการเปลี่ยนแปลง ข้อมุล รายละเอียดต่างๆ จะถูกเก็บ ลงใน Redo Log และ ค่าเก่าก่อนการเปลี่ยนแปลง จะถูกเก็บ ลงใน Tablespace UNDO หากมีการ ส่งคำสั่ง Rollback การทำงาน ของ Oracle จะส่งผลให้ นำค่าเก่า ที่ถูกเก็บ ใน Tablespace UNDO กลับมาแสดงได้ดังเดิม
- Java Pool ใช้ใน server memory เพื่อเก็บ java code และ data ใน JVM
PGA (Program Global Area)
พื้นที่หน่วยความจำ สำหรับ User เมื่อเข้าใช้งาน DB(Instance)
Server Process
เมื่อ Session ถูก Start ด้วย User และสามารถ Connect กับ ฐานข้อมูล(Instance) จะเกิด เป็น Server Process
Background Process
เป็น Process ของระบบปฏิบัติการ ซึ่งทำหน้าที่เกื้อหนุนให้ SGA
- DBWR (Database Writer Process)
ทำหน้าที่ ฟัดจ์ข้อมูลจาก DB Buffer Cache ลง Database Datafile
- LGWR (Log Writer Process)
ทำหน้าที่ฟัดจ์ Redo Log Entry จาก Redo Log Buffer ลง Redo Log file
- CKPT (Checkpoint Process)
ทำหน้าที่ สแตมป์ หัวFile ทุกไฟล์ไม่ว่าจะเป็น Datafile, Control file, Redo Log file, ให้เข้าจังหวะกัน (Synchronization) (หมายเลข scn ต้องเหมือนกัน)
- SMON (System monitor)
ทำหน้าที่ฟื้นสภาพ Oracle Instance ที่ตายไปให้สามารถ กลับมาใช้งานได้ภายใต้เงื่อนไขที่ปิดและเปิด DBใหม่ (DBA เป็นคนทำ) เมื่อฟื้นมามันจะทำ Roll backward, Roll forward
- PMON (Process monitor)
ทำหน้าที่ ฟื้นสภาพ User Process ที่ตายกลางทาง (ทำ Roll backward)
Oracle Database files
Mandatory File
- Parameter file
เป็นไฟล์ ที่ใช้ในการกำหนดขนาดของ sga และกำหนดค่า parameter ต่างๆ (ใช้อ้างอิงในการเปิดฐานข้อมูล)
- Datafile
เป็นไฟล์ ที่ใช้ในการจัดเก็บ Table, Indexes, Sequence, Synonym, view เป็นต้น
- Redo log file
เก็บ Redo log entry เก็บรายละเอียกของการทำ Transaction หรือ รายการ การเปลี่ยนแปลง
- Control file
เก็บ หมายเลขการเข้าจังหวะกันของ DB, เก็บโครงสร้าง ที่เป็น Storage ของ DB เก็บ structure ของ DB
Optional File
- Archive Log file
ไม่จำเป็นต้องมี แต่แนะนำให้มี เพราะ จำเป็นต่อการทำ Complete Recovery (การฟื้นฟู แบบเต็มรูปแปป)
- Password file
เก็บ password ของ User sys และใช้ในการอ้างอิง การส่งมอบสิทธิ์ ที่เรียกว่า sysdba เป็น privilege สูงสุด
เพิ่มเติม
Oracle Database Storage Structures
Oracle Relational Data Structures
***หากมีข้อเพิ่มเติม หรือผิดพลาด จุดไหน รบกวนแนะนำด้วยคะ ขอบคุณค่ะ***
***การใช้ ภาษาไทยคำ อังกฤษคำ ในบางข้อ จะสามารถทำให้ เข้าใจได้ง่ายขึ้น***