I'm Top Oracle DBA

Oracle Architecture 11G

ปัจจุบัน product ของ Oracle ยังคงมี version 11G ที่ยังใช้ได้ในปัจจุบัน จึงขอ อธิบาย ในเรื่องของ Architecture และแชร์ความรู้ที่มี ของ version 11G ค่ะ เพื่อ เป็น พื้นฐานใน การทำความเข้าใจ Architecture ของ Oracle อย่างง่าย ก่อน ที่ Oracle จะ พัฒนา ไปรูปแบบ เป็น รูปแบบ Cloud หรือ version ถัดขึ้นไป

Oracle Architecture 11G

ภาพจาก https://docs.oracle.com/cd/E11882_01/server.112/e40540/img/cncpt233.gif

องค์ประกอบหลัก ของ 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
    1. Parameter file
    2. Data file
    3. Redo Log file
    4. Control file
  • Optional
    1. Archive file
    2. Password file

อธิบาย

Oracle Instance

SGA

ประกอบไปด้วย หน่วยความจำประกอบร่วม หรือ เปรียบเสมือน RAM ของคอมพิวเตอร์นั่นเอง แต่ สำหรับ SGA คือ RAM สำหรับ Oracle Database เท่านั้น

  1. Shared Pool แบ่งเป็น 2ประเภท หลัก
    1. 1 Library Cache

หน่วยความจำร่วมย่อย ใช้เก็บขุดคำสั่ง SQL ที่ถูกประมวลผล จัดเก็บชุดคำสั่ง ที่เป็น Identical Statement(ตัวเล็ก

ตัวใหญ่ เหมือนกัน จะเก็บครั้งเดียว)

1.2 Data Dictionary Cache

เก็บโครงสร้าง ของ ฐานข้อมูล เช่น User, Table, Privilege, etc…

  1. Large Pool (Optional Area)

เป็น พื้นที่ สำหรับ การทำ Recovery, Backup and I/O running ถ้า RAM(SGA) เพียงพอต่อการใช้งาน จะไม่ใช้พื้นที่ในส่วนนี้ จะใช้งานภายใน SGA เท่านั้น

  1. DB Buffer Cache มีหน้าที่หลัก 2หน้าที่
    1. ใช้จัดเก็บข้อมูลที่ดึงมาจาก Datafile (Select ตารางจาก Datafile)
    2. จัดเก็บค่าใหม่ของข้อมูลที่ถูกทำรายการเปลี่ยนแปลง (Insert, Update, Delete เรียกอีกอย่างว่า Transaction)
  2. 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 กลับมาแสดงได้ดังเดิม
  1. 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

  1. DBWR (Database Writer Process)

ทำหน้าที่ ฟัดจ์ข้อมูลจาก DB Buffer Cache ลง Database Datafile

  1. LGWR (Log Writer Process)

ทำหน้าที่ฟัดจ์ Redo Log Entry จาก Redo Log Buffer ลง Redo Log file

  1. CKPT (Checkpoint Process)

ทำหน้าที่ สแตมป์ หัวFile ทุกไฟล์ไม่ว่าจะเป็น Datafile, Control file, Redo Log file, ให้เข้าจังหวะกัน (Synchronization) (หมายเลข scn ต้องเหมือนกัน)

  1. SMON (System monitor)

ทำหน้าที่ฟื้นสภาพ Oracle Instance ที่ตายไปให้สามารถ กลับมาใช้งานได้ภายใต้เงื่อนไขที่ปิดและเปิด DBใหม่ (DBA เป็นคนทำ) เมื่อฟื้นมามันจะทำ Roll backward, Roll forward

  1. PMON (Process monitor)

ทำหน้าที่ ฟื้นสภาพ User Process ที่ตายกลางทาง (ทำ Roll backward)


Oracle Database files

Mandatory File

  1. Parameter file

เป็นไฟล์ ที่ใช้ในการกำหนดขนาดของ sga และกำหนดค่า parameter ต่างๆ (ใช้อ้างอิงในการเปิดฐานข้อมูล)

  1. Datafile

เป็นไฟล์ ที่ใช้ในการจัดเก็บ Table, Indexes, Sequence, Synonym, view เป็นต้น

  1. Redo log file

เก็บ Redo log entry เก็บรายละเอียกของการทำ Transaction หรือ รายการ การเปลี่ยนแปลง

  1. Control file

เก็บ หมายเลขการเข้าจังหวะกันของ DB, เก็บโครงสร้าง ที่เป็น Storage ของ DB เก็บ structure ของ DB

Optional File

  1. Archive Log file

ไม่จำเป็นต้องมี แต่แนะนำให้มี เพราะ จำเป็นต่อการทำ Complete Recovery (การฟื้นฟู แบบเต็มรูปแปป)

  1. Password file

เก็บ password ของ User sys และใช้ในการอ้างอิง การส่งมอบสิทธิ์ ที่เรียกว่า sysdba เป็น privilege สูงสุด


เพิ่มเติม

Oracle Database Storage Structures

Oracle Relational Data Structures


***หากมีข้อเพิ่มเติม หรือผิดพลาด จุดไหน รบกวนแนะนำด้วยคะ ขอบคุณค่ะ***

***การใช้ ภาษาไทยคำ อังกฤษคำ ในบางข้อ จะสามารถทำให้ เข้าใจได้ง่ายขึ้น***

error: Content is protected !!