Oracle Database Architecture(สถาปัตยกรรมของฐานข้อมูล Oracle)

RobinVan's picture

Oracle Database Server
ประกอบด้วยสองส่วนคือ
1) Oracle Instance
2) Oracle Database
Oracle Instance  คือ หน่วยความจำที่ใช้เก็บข้อมูลและควบคุมการทำงานของ Oracle Server
ที่เรียกว่า SGA (System Global Area) รวมกับ Oracle Process ที่ใช้ในการทำงานของ Oracle

Oracle Database คือ กลุ่มข้อมูลที่ถูกจัดเก็บไว้รวมกันโดยจัดเก็บลงเป็นไฟล์ข้อมูลที่เป็น Physical File
ข้อมูลที่เก็บอยู่ในไฟล์เหล่านี้สามารถที่จะเรียกขึ้นมาอ่าน หรือ เปลี่ยนแปลงค่าได้ 
Oracle Database ประกอบด้วยไฟล์ข้อมูล  3 กลุ่ม
- Control File
- Redo Log File
- Data File
ไฟล์ที่ ไม่ใช่ส่วนประกอบของ Database
- Parameter File
- Archive File
- Password File

Oracle
ส่วนประกอบของ Oracle Instance
1) SGA ( System Global Area)
เป็นหน่วยความจำที่ ที่สำคัญที่สุดของ Oracle สังเกตุได้เมื่อเราเริ่ม startup oracle
เราก็จะเห็นว่า ฐานข้อมูลของเราจอง  SGA ไว้เท่าไร
ส่วนประกอบต่างๆ ของ SGA
1.1) Shared Pool
        หน่วยความจำล่าสุดที่ใช้เก็บข้อมูลล่าสุดของฐานข้อมูล เช่น  Sql Command
        Shared Pool ประกอบด้วย
       1.1.1) Library Cache  ใช้เก็บข้อมูลพวก Sql Command ล่าสุด
       1.1.2) Data Dictionary Cache เก็บ Data Dictionary ล่าสุดที่มีการใช้งาน
       1.1.3) Result Cache (Version 11g)  เก็บผลลัพธ์ล่าสุดของ SQL PL/SQL เมื่อ User ใช้คำสั่งเดิม
                  ไม่จำเป็นต้องต้องไปอ่านข้อมูลซ้ำ  ทำให้ทำงานได้เร็วขึ้น
      การกำหนดค่า Shared Pool กำหนดใน
      - SHARED_POOL_SIZE
      -SHARED_POOL_RESERVED_SIZE
      - RESULE_CACHE_MAX_SIZE  กำหนดค่าสูงสุดของ Result Cache
1.2) Database Buffer Cache
       เป็นหน่วยความจำที่ใช้เก็บข้อมูลล่าสุดที่ถูกใช้งานจากไฟล์ในฐานข้อมูล
1.3) Redo Log Buffer
        เป็นหน่วยความจำที่ใช้เก็บข้อมูลในการทำงานของ transaction เพื่อเก็บไว้ recovery
        ตั้งค่าขนาด Redo Log Buffer ที่ parameter LOG_BUFFER
1.4) Large Pool
        หน่วยความจำที่ใช้สำหรับการทำงานที่ต้องการ หน่วยความจำที่ใหญ่ คือ
         - Multithread Server
         - I/O Process
         - Backup
       ตั้งค่าที่ parameter LARGE_POOL_SIZE
1.5) Java Pool
       หน่วยความจำที่ใช้สำหรับการทำงานของโปรแกรม java
1.6) Streams Pool
       เก็บ Query Message ต่างๆ
       ตั้งค่าที่  parameter STREAMS_POOL_SIZE
2) Oracle Process
2.1) User Process
         Process ของ user ที่ส่งเข้าไปทำงาน เช่น  sql command ต่างๆ
2.2) Server Process
        Process ที่อยู่ฝั่ง server เพื่อรองรับ User Process เมื่อทำงานเสร็จจะส่งผลลัพธ์ไปให้ User Process
2.3) Database Writer Process(DBWn)
        Process ที่เขียนข้อมูลจาก Database Buffer Cache ลง Physical File
2.4) Log Writer Process (LGWR)
        เขียนข้อมูลใน Log Buffer ลง Redo Log File
2.5) System Monitor Process(SMON)
       ตรวจสอบความถูกต้องของฐานข้อมูล
2.6) Process Monitor Process(PMON)
       มอนิเตอร์การทำงานของ Process ต่างๆ
2.7) Checkpoint Process(CKPT)
      Checkpoint เพื่อใช้อ้างอิงในการ Recovery
2.8) Recoverer Process(RECO)
      ใช้ในกรณีมีฐานข้อมูลมากกว่า 1 
2.9) Archiver Process(ARC)
     คัดลอก Redo Log File ไปเก็บไว้ที่ Archive File

Powered by Devwinner.com 2011 - Design by DevWin Team