oracleskill

Home TUTORIAL Tablespaces ที่ถูกสร้างเมื่อใช้ DBCA

Tablespaces ที่ถูกสร้างเมื่อใช้ DBCA

ถ้า เราใช้เครื่องมือ Database Configuration Assistant ( DBCA ) สร้างฐานข้อมูลของ ออราเคิลขึ้นมา เมื่อสร้างเสร็จแล้ว จะเห็นว่ามี tablespace ถูกสร้างขึ้นมาโดยอัตโนมัติพร้อมกัน ได้แก่

  • SYSTEM
  • SYSAUX
  • TEMP
  • UNDOTBS1
  • USERS t

เรามารู้จัก tablespace เหล่านี้กัน ว่าใช้ทำอะไร

SYSTEM tablespace
เก็บ oracle data dictionary และ object ทั้งหมดของ schema SYS สามารถ access ได้เฉพาะ user SYS และ คนที่ได้รับการ grant role DBA
ทุก database ของ oracle ต้องมี SYSTEM tablespace

SYSAUX tablespace
เริ่มมีใน Oracle Database 10g เก็บ object ที่ ใช้เพื่อฟังก์ชั่นการทำงานของฐานข้อมูล เมื่อก่อนเก็บร่วมกับ SYSTEM tablespace แล้วแยกออกมาใน Oracle Database 10g สิ่งที่เก็บอยู่ใน SYSAUX tablespace เช่น component ของ Oracle Enterprise Manager และ Automatic Workload Repository เป็นต้น
ทุกฐานข้อมูล ที่เป็น Oracle Database 10g ขึ้นไป ต้องมี SYSAUX tablespace

TEMP tablespace
เก็บ object และ data ที่ไม่ถาวร เช่น ข้อมูลที่เก็บเป็น global temporary table และ เป็นพื้นที่ เรียงลำดับข้อมูล เมื่อไม่สามารถเรียงข้อมูลให้สมบูรณ์ได้ในหน่วยความจำ
ถ้าไม่ได้สร้าง temporary tablespace เอาไว้ ข้อมูลที่ไม่อยู่ถาวรเหล่านี้ จะถูกเขียนใน SYSTEM tablespace แทน ซึ่งเป็นเรื่องที่แย่มาก ทำให้ performance ตกได้

UNDOTBS1 tablespace
เก็บข้อมูล undo ของ ฐานข้อมูล ข้อมูล undo คือ ข้อมูลเดิมก่อนการเปลี่ยนแปลง ที่ถูก เก็บเอาไว้ ขณะที่ user มีการเปลี่ยนแปลงข้อมูล เช่น update , insert ,delete แล้วยังไม่มีการ commit ( บันทึกการเปลี่ยนแปลงข้อมูลอย่างถาวร) ถ้าเกิด user เปลี่ยนใจ rollback (ยกเลิกการเปลี่ยนแปลงข้อมูล) ก็จะนำข้อมูลเดิมที่เก็บเอาไว้ กลับคืนเข้าตารางเหมือนเดิม
undo tablespace ต้องมีอยู่ในทุกฐานข้อมูลของ Oracle 

USERS tablespace
เมื่อมีการสร้าง user ขึ้นมา แล้วไม่ได้สร้าง tablespace เฉพาะเจาะจงให้ user คนนั้นใช้งาน user คนนั้นจะเก็บข้อมูล และ object ที่สร้างขึ้น ลงใน USERS tablespace นี้ เป็นการหลีกเลี่ยงไม่ให้ user ไปเก็บข้อมูลลง SYSTEM tablespace ที่มี data dictionary อยู่