1. ย้อน release
- เว็บไซต์: ย้อนกลับไปเวอร์ชันที่เคยเผยแพร่ (ดู เผยแพร่เว็บ)
- Container: ทุก deploy เป็น revision กด Rollback มาที่นี่ ในแท็บ Revisions
- Static Web: เก็บ release ไว้ 5 รุ่นล่าสุด กด ใช้ Release นี้
2. ตั้ง Backup ตามรอบให้ฐานข้อมูลทุกตัว
ข้อมูลที่เปลี่ยนทั้งวัน เช่น ออเดอร์ ให้ Backup ทุก 6 หรือ 12 ชั่วโมง ข้อมูลที่ไม่ค่อยเปลี่ยนให้ Backup รายวันหรือรายสัปดาห์ เก็บจำนวนชุดให้พอย้อนไปได้ไกลเท่าที่ต้องการ เช่น รายวัน 14 ชุดสำหรับ 2 สัปดาห์ ค่าพื้นที่คิดตามขนาดที่เก็บ จึงไม่ควรเก็บเกินจำเป็น
3. สั่ง Backup เองก่อนเปลี่ยนแปลงใหญ่
ก่อน migrate ข้อมูล นำเข้าข้อมูลจำนวนมาก หรืออัปเกรด ให้กด Backup ตอนนี้ ในแท็บ Backups Backup ที่สั่งเองเก็บไว้ 90 วันแล้วลบอัตโนมัติ ระบบเตือนทางอีเมลและกระดิ่งล่วงหน้า 7 วัน และกด ต่อ 90 วัน ได้ฟรีไม่จำกัดครั้ง (ค่าพื้นที่คิดตามขนาดเหมือนเดิม)
Backup ของฐานข้อมูลถูกลบไปพร้อมกับฐานข้อมูล และถ้า Wallet ของ Project ว่างค้างไว้ บริการจะหยุดหลัง 72 ชั่วโมง (บัญชีใหม่ 24 ชั่วโมง) และถูกลบหลัง 30 วัน รวมถึง Backup ด้วย อย่าลบฐานข้อมูลที่อาจยังต้องกู้คืน และเติม Wallet ของระบบจริงไว้เสมอ
เก็บสำเนาไว้เอง และซ้อมกู้คืน
ทุก 2–3 เดือน ให้ dump ข้อมูลระบบจริงด้วย pg_dump หรือ mysqldump แล้วนำเข้าฐานข้อมูลใน Project ทดสอบที่แท็บ นำเข้าข้อมูล และลองให้แอปทำงานบนข้อมูลนั้น จะได้รู้ว่า Backup ใช้ได้จริง และมีสำเนาเก็บไว้นอกแพลตฟอร์มด้วย
ฐานข้อมูลของระบบจริง: เครื่องสำรองและกู้คืนย้อนเวลา
- เปิด High availability: เครื่องสำรองในอีก zone รับงานแทนเองเมื่อเครื่องหลักไม่ตอบ ชื่อ IP และรหัสผ่านเหมือนเดิม ข้อมูลที่หายไม่ได้แม้วินาทีเดียว เช่น การชำระเงิน ให้เปิด Synchronous replication ด้วย
- เปิด กู้คืนย้อนเวลา เพื่อกู้กลับไปวินาทีก่อนพลาด เช่น
DELETEที่ลืมใส่WHEREเป็นฐานข้อมูลใหม่ - เปิด ขยายพื้นที่อัตโนมัติ ดิสก์เต็มจะได้ไม่ทำให้ฐานข้อมูลหยุด และตั้ง ช่วงเวลาบำรุงรักษา นอกเวลาที่ลูกค้าใช้เยอะ
ดู High availability, กู้คืนย้อนเวลา และอัปเกรดเวอร์ชัน
Read replica และ log
- ฐานข้อมูลที่มีคนอ่านเยอะ ให้เพิ่ม Replica ที่แท็บ Read replica แล้วให้รายงานไปอ่านจาก Replica ฐานข้อมูลหลักจะได้ไม่ช้า ถ้าฐานข้อมูลหลักมีปัญหาร้ายแรง Promote Replica ขึ้นมาแทนได้
- แท็บ Logs เก็บแค่ประมาณ 16 MB ล่าสุดต่อบริการ และเริ่มใหม่ทุกครั้งที่ deploy ถ้าต้องเก็บ log นานกว่านั้น ให้แอปส่ง log ไปเก็บที่ระบบของคุณเอง