I'm Top Oracle DBA

Oracle Database Storage Structures

Oracle Database Storage Structures

แบ่ง การจัดการ ข้อมูลเป็น 2 ประเภท คือ

  • Physical Storage Structure
  • Logical Storage Structure

 

รูปจาก http://flylib.com/books/en/2.26.1.51/1/

 


Physical Storage Structure

Oracle Database ประกอบไปด้วย set ของ file สำหรับการจัดเก็บ ข้อมูลแบบถาวร บน Physical Storage (Disk) ดังนี้

รูปจาก docs.oracle.com

 

  • Data file and Tempfile
    • ถูกจัดการอยู่บน Physical Disk เก็บโครงสร้าง และข้อมูล ของ Table, Indexes
    • พื้นที่ ที่ถูกใช้งาน บน Data file จะเรียกว่า Segment
    • Tempfile เก็บข้อมูลชั่วคราว(Sort) เป็น กรรมสิทธิ์ของ Oracle ไม่สามารถอ่านโดย โปรแกรมอื่นได้

 

  • Control file

ถูกจัดการอยู่บน Physical Disk เพื่อ เก็บองค์ประกอบ ของระบบฐานข้อมูล  เช่น หมายเลขการเข้าจังหวะกันของ DB, เก็บโครงสร้าง ที่เป็น Storage ของ DB เก็บ structure ของ DB (ควรมี อย่างน้อย 2 ไฟล์ สำหรับกรณีฉุกเฉิน)     

 

  • Online Redo Log file
    • ถูกจัดการอยู่บน Physical Disk เพื่อ เก็บ Redo log entry เก็บรายละเอียกของการทำ Transaction หรือ รายการ การเปลี่ยนแปลง
    • ควรสร้าง redo log อย่างน้อย 3 group, group ละ 2 member และ แต่ละ member ควรอยู่ คนละ Disk(Mirror) สำหรับ เครื่องที่ทำ Transaction(OLTP = Online Transaction Processing หรือ ถูก เขียน จำนวนมาก) เยอะ
    • Redo log ต้องระบุขนาด อย่างน้อย 100m
    • การทำงาน คือ หาก Group1 ถูกเขียน จะถูกเขียน ทั้ง 2member และ หาก member ใดmember หนึ่ง เสียไป ก็จะเหลือให้ทำงาน อีก 1 member
    • เมื่อ Redo log ถูกเขียน จนเต็ม 100m จะ ทำการ switch log เป็น ยัง group ถัดไป
    • หากเป็น เครื่องที่ ทำ Data Warehouse (OLAP = Online Analytical Processing เยอะ Buffer cache และ Block size ต้องมีขนาดใหญ่)

***การ สร้าง redo log ต้องแยก disk เป็น 2 ลูกขึ้นไป เพราะ Redolog ทำหน้า ที่เขียน ต้องเขียนเร็ว และ ปลอดภัย ตามรูปด้านล่าง***

รูปจาก https://fadimbaylak.files.wordpress.com/2014/02/indir.jpg

 


Logical Storage Structure

 

รูปจาก docs.oracle.com

 

การจัดการพื้นที่ระดับ Logical

สำหรับข้อมูลทั้งหมดในฐานข้อมูล segment, extent, Block จะอยู่ภายใน Tablespace มีดังนี้ (เรียงจาก เล็ก ไป ใหญ่)

  • Block

Oracle Database จะจัดการพื้นที่  logical ใน data file และ standard block size คือ 4k, 8k และ data block ต้องสัมพันธ์ กัน os block


  • Extent

จะเกิดขึ้นเมื่อ มีการใช้พื้นที่บน Tablespace หรือ เรียกว่า Segment เช่น create table, insert


  • Segment

เป็น set of Extent จะเกิดขึ้นเมื่อ มีการใช้พื้นที่บน Tablespace หรือ เรียกว่า Segment เช่น create table, insert และ segment สามารถ แบ่ง ออกเป็น

– User Segment

– Temporary Segment

– Undo Segment

– Segment Space and the High Water Mark

 


  • Tablespace

Tablespace คือ Logical Storage เกี่ยวข้องกับ Segment, Segment คือ Object ของ Database เช่น Tables, Indexes ซึ่งต้องใช้พื้นที่ในการจัดเก็บข้อมูล ของ Physical Level, Tablespace จะจัดเก็บ ข้อมูล ซึ่ง มีตั้งแต่ 1 datafile หรือ 1 tempfile ขึ้นไป

รูปจาก docs.oracle.com

Tablespace สามารถแยกออก ตามประเภท ได้ดังนี้

  1. Permanent Tablespace
  2. Temporary Tablespace

 

อธิบาย

  • Permanent Tablespace

เก็บข้อมูล schema object แบบถาวร

SYSTEM Tablespace

จำเป็น(มีสิทธิ์การใช้งาน สูงสุด สำคัญ ห้ามพังห้ามเปลี่ยนชื่อห้ามลบ, create auto) ต่อการจัดการข้อมูล เมื่อ create Database Oracle จะ สร้าง User SYSTEM ให้เพื่อจัดการ Database, Tablespace SYSTEM จัดเก็บ data dictionary, Table, view ของ Administrator (SYSTEM)

SYSAUX Tablespace

จำเป็น(มีสิทธิ์การใช้งาน สูงสุด สำคัญ ห้ามพังห้ามเปลี่ยนชื่อห้ามลบ,create autoเมื่อสร้าง database หรือทำการ Upgrade version 9 ไม่มี) ทำหน้าที่ คล้ายกับ SYSTEM Tablespace, จะประกอบด้วย โครงสร้าง ของ Oracle Enterprise Manager and Oracle Streams จะใช้ Tablespace นี้ จัดเก็บ โครงสร้าง

Undo Tablespace

ใช้ร่วมกับ SYSTEM tablespace  และถูกจอง สำหรับการจัดการ data ส่วนหนึ่ง ถูก auto create เมื่อ create database


 

  • Temporary Tablespace

จัดเก็บ และ จัดเรียง ข้อมูลชั่วคราว ใช้ร่วมกับ SYSTEM tablespace


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

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

error: Content is protected !!