Section 1: สถาปัตยกรรม PostgreSQL และวงจรเวอร์ชัน
- โครงสร้าง Process: Postmaster, Backend, Checkpointer, WAL Writer และ Autovacuum
- Shared Buffers, WAL และ Checkpoint ทำงานร่วมกันอย่างไรเมื่อมีการเขียนข้อมูล
- MVCC, Tuple Version และเหตุผลที่ PostgreSQL ต้องมี Vacuum
- นโยบายซัพพอร์ต 5 ปี: เวอร์ชัน 9.x ถึง 13 หมดอายุแล้ว และ PostgreSQL 18 คือรุ่นเสถียรปัจจุบัน
- ความเสี่ยงของการใช้รุ่นที่หมดซัพพอร์ต และภาพรวมสิ่งที่กำลังมาใน PostgreSQL 19
Section 2: Lab: ติดตั้ง PostgreSQL 18 บน Linux และ Docker
- ติดตั้งจาก PGDG Repository และจัดการ Service ด้วย systemd
- รัน PostgreSQL 18 ด้วย Docker พร้อม Volume สำหรับเก็บข้อมูลถาวร
- initdb, โครงสร้าง Data Directory และ Data Checksums ที่เปิดเป็นค่าเริ่มต้นใน 18
- แยก Tablespace และดิสก์สำหรับ Data กับ WAL
- ใช้ psql อย่างมืออาชีพ และจัดการเซิร์ฟเวอร์ผ่าน pgAdmin 4
Section 3: Lab: ตั้งค่า postgresql.conf และปรับขนาดให้เหมาะกับเครื่อง
- ลำดับการอ่านค่าคอนฟิก, ALTER SYSTEM และค่าที่ต้อง Restart หรือแค่ Reload
- shared_buffers, work_mem, maintenance_work_mem และ effective_cache_size
- max_wal_size, checkpoint_timeout และผลต่อ I/O ของระบบ
- Asynchronous I/O ใน PostgreSQL 18: io_method แบบ worker และ io_uring
- ตั้งค่า Logging ให้พร้อมใช้วิเคราะห์ปัญหาตั้งแต่วันแรก
Section 4: Role, สิทธิ์ และ Schema
- Role, User และ Group ใน PostgreSQL และการสืบทอดสิทธิ์
- GRANT และ REVOKE ระดับ Database, Schema, Table และ Column
- ออกแบบ Schema ตามหลัก Least Privilege สำหรับแอปพลิเคชันและทีมงาน
- ALTER DEFAULT PRIVILEGES สำหรับอ็อบเจกต์ที่จะสร้างในอนาคต
- Predefined Role เช่น pg_read_all_data, pg_monitor และ pg_maintain
Section 5: Lab: Authentication, TLS, RLS และ Audit
- เขียน pg_hba.conf ให้รัดกุม และลำดับการจับคู่กฎ
- ย้ายรหัสผ่านไปใช้ SCRAM-SHA-256 เพราะ MD5 ถูกประกาศเลิกใช้ใน 18
- OAuth Authentication ที่มาใหม่ใน PostgreSQL 18 และการเชื่อมกับ Identity Provider
- เปิด TLS ให้การเชื่อมต่อ และบังคับใช้ผ่าน hostssl
- Row-Level Security แยกข้อมูลตามผู้ใช้ และบันทึก Audit ด้วย pgAudit