ภาพรวม Hybrid Partitioning
Oracle 12c Release 2 รองรับ Partition บน External Tables Oracle 19c นำเสนอ Hybrid Partitioning ที่อนุญาตให้สร้าง Partition บางส่วนเป็น External (Flat Files) และบางส่วนเป็น Internal (Tablespace ใน Database)
ประโยชน์: ย้าย Partition เก่าที่ใช้น้อยไปเก็บที่ External Storage (Linux File System) ส่วน Partition ที่ใช้งานอยู่เก็บใน Database ในตัวอย่างสร้าง Hybrid Partitioned Table ชื่อ DATA 4 Partitions: DATA_2019, DATA_2020, DATA_2021, DATA_2022 ข้อมูลปี 2019, 2020, 2021 เก็บใน Flat Files ที่ /home/oracle/data_dir แยกด้วย Whitespace
ขั้นตอนการสร้างและทดสอบ
Step 1: Login Database และ Set Target PDB
เข้าสู่ Database และตั้งค่า PDB เป้าหมาย
Step 2: สร้าง Directory และ User
สร้าง Directory DATA_FILES_DIRชี้ไปที่ OS Directory data_dir สร้าง User APP_USER ให้สิทธิ์ READ, WRITE บน Directory
Step 3: สร้าง Hybrid Partitioned Table
สร้าง Table DATA ใน APP_USER Partitions DATA_2019, DATA_2020, DATA_2021 เป็น External (Flat Files) Partition DATA_2022 เป็น Internal (ใน Database)
Step 4: Query ข้อมูลจากแต่ละ Partition
ทดสอบ Query ข้อมูลจากแต่ละ Partition:
- DATA_2019 - ข้อมูลจาก Flat File
- DATA_2020 - ข้อมูลจาก Flat File
- DATA_2021 - ข้อมูลจาก Flat File
- DATA_2022 - ข้อมูลจาก Internal Table
Step 5: ตรวจสอบว่า Table เป็น Hybrid Partitioned Table
Query Metadata ยืนยันว่าเป็น Hybrid Partitioned Table
Step 6: ทดสอบ Insert ข้อมูลใน Partition DATA_2022
Insert ล้มเหลว Error ORA-01950: no privileges on tablespace 'USERS' ยืนยันว่า Partition DATA_2022 เก็บใน USERS Tablespace (Internal) หลังให้ Quota บน USERS Tablespace สามารถ Insert ได้
Step 7: ตรวจสอบการจัดเก็บข้อมูล
Query แสดงว่าเฉพาะ Partition DATA_2022 เก็บใน Database ส่วน Partition อื่นๆ เป็น External
สรุป
Hybrid Partitioning ช่วยย้าย Partition เก่าที่ไม่ Active ไปเก็บที่ Storage ภายนอกที่ถูกกว่า ขณะที่ข้อมูลที่ Active อยู่ใน Oracle Database ช่วยลดต้นทุน Storage และจัดการข้อมูลได้มีประสิทธิภาพมากขึ้น