ป้ายกำกับ: Database Backup

คำสั่งรับ-ส่งและสำรองข้อมูลข้าม Server: การใช้ rsync/scp บน Linux/macOS vs Robocopy/PowerShell Remoting บน WindowsPostman 101: เริ่มต้นยิง REST API ด้วยคำสั่ง GET พร้อมการส่ง Query Parameters และอ่าน Response Statusคำสั่งรับ-ส่งและสำรองข้อมูลข้าม Server: การใช้ rsync/scp บน Linux/macOS vs Robocopy/PowerShell Remoting บน WindowsPostman 101: เริ่มต้นยิง REST API ด้วยคำสั่ง GET พร้อมการส่ง Query Parameters และอ่าน Response Status

ในโลกของการพัฒนาซอฟต์แวร์สมัยใหม่ การจัดการข้อมูลไม่ใช่แค่การบันทึก แต่คือการรับส่ง (Transfer), การสำรอง (Backup), และการเข้าถึง (API Access) อย่างมีประสิทธิภาพ การทำความเข้าใจกลไกเหล่านี้จึงเป็นหัวใจสำคัญของ Senior Architect

บทความนี้จะเจาะลึกถึงแนวคิดการจัดการข้อมูลข้ามระบบ (Cross-Server Data Handling) และการเปิดเผยข้อมูลผ่าน API โดยใช้ PostgreSQL เป็นแกนหลัก ซึ่งเป็นการยกระดับความรู้จากการใช้คำสั่งพื้นฐานไปสู่การออกแบบสถาปัตยกรรมที่แข็งแกร่งและเชื่อถือได้

🛡️ 1. การรับ-ส่งและสำรองข้อมูลข้าม Server (The Backup Concept)

แทนที่จะใช้คำสั่งภายนอกอย่าง rsync หรือ Robocopy สำหรับการสำรองข้อมูล PostgreSQL มีเครื่องมือที่ทรงพลังกว่าคือ pg_dump และ pg_restore ซึ่งออกแบบมาเพื่อรักษาโครงสร้างข้อมูลและ Schema ของ PostgreSQL โดยเฉพาะ การใช้เครื่องมือเหล่านี้ทำให้มั่นใจได้ว่าการย้ายข้อมูลจะสมบูรณ์และสามารถกู้คืนได้อย่างแม่นยำ

ตัวอย่างการสำรองข้อมูล (Dump):

SQL

-- ใช้ pg_dump เพื่อสร้างไฟล์สำรองข้อมูลของฐานข้อมูล 'sales_db' ทั้งหมด
pg_dump -U user -h host -d sales_db > sales_backup.sql

ตัวอย่างการกู้คืน (Restore):

SQL

-- ใช้ pg_restore เพื่อกู้คืนข้อมูลจากไฟล์สำรองไปยังฐานข้อมูลใหม่
pg_restore -U user -d new_sales_db sales_backup.sql

🌐 2. การเปิดเผยข้อมูลผ่าน API (The GET/Query Parameter Concept)

เมื่อเราต้องการให้ระบบภายนอก (เช่น Frontend หรือ Microservice อื่น) เข้าถึงข้อมูลจาก PostgreSQL เหมือนกับการเรียก GET API เราไม่จำเป็นต้องสร้าง API Layer แยกเสมอไป PostgreSQL สามารถรองรับการส่งข้อมูลในรูปแบบ JSON ผ่านฟังก์ชัน (Functions) และการใช้ประเภทข้อมูล JSONB ได้อย่างมีประสิทธิภาพ

สมมติว่าเราต้องการดึงข้อมูลสินค้าหลายรายการพร้อมกับสถานะในรูปแบบ JSON เพื่อให้ระบบภายนอกนำไปใช้งานต่อ:

SQL

-- สร้างฟังก์ชันที่ดึงข้อมูลสินค้าและแปลงเป็น JSON
CREATE OR REPLACE FUNCTION get_products_json() RETURNS JSONB AS $$
SELECT jsonb_agg(t) FROM ( 
    SELECT id, name, price FROM products WHERE is_active = TRUE 
) t;
$$ LANGUAGE SQL;

-- เรียกใช้ฟังก์ชันเพื่อจำลองการเรียก API GET
SELECT get_products_json();

✅ บทสรุปสำหรับสถาปนิก (Conclusion)

การจัดการข้อมูลในระดับ Senior Architect ต้องคำนึงถึงทั้งความคงทน (Durability) และการเข้าถึง (Accessibility) การใช้ pg_dump/pg_restore ช่วยให้เราบรรลุเป้าหมายด้านความคงทนของข้อมูล ส่วนการใช้ JSONB และฟังก์ชันช่วยให้เราสามารถเปิดเผยข้อมูลในรูปแบบที่ทันสมัยและเป็นมาตรฐาน API ได้อย่างง่ายดาย การรวมเครื่องมือเหล่านี้เข้าด้วยกัน ทำให้ PostgreSQL เป็นมากกว่าแค่ฐานข้อมูล แต่เป็นศูนย์กลางการจัดการข้อมูลที่ครบวงจรและยืดหยุ่นสูง