การบำรุงรักษาฐานข้อมูล
หน้า Database Maintenance คือศูนย์กลางการสำรองข้อมูลและการดูแลรักษาฐานข้อมูล HandyCafe ภายในเครื่อง จากหน้านี้คุณสามารถตรวจสอบสุขภาพของฐานข้อมูล รันงานบำรุงรักษาแบบครั้งเดียว ตั้งเวลาการบำรุงรักษาและการสำรองข้อมูลอัตโนมัติ และกู้คืนเซิร์ฟเวอร์จากสแนปช็อตก่อนหน้า
Database Health
ส่วน Database Health จะแสดงสถานะปัจจุบันของฐานข้อมูล ใช้ปุ่ม Refresh เพื่อโหลดค่าเหล่านี้ใหม่ได้ทุกเมื่อ
แดชบอร์ดสุขภาพจะรายงานสิ่งต่อไปนี้:
- Database size: ขนาดรวมของไฟล์ฐานข้อมูลหลัก
- Write-ahead log: ขนาดของไฟล์ write-ahead log (WAL)
- Page count: จำนวนเพจที่ไฟล์ฐานข้อมูลถืออยู่
- Free pages: จำนวนเพจที่ไม่ได้ใช้ใน freelist ซึ่งสามารถเรียกคืนได้ด้วยการทำ vacuum
- Last backup: เวลาของการสำรองข้อมูลล่าสุด แสดง Never run หากยังไม่เคยมีการสำรองข้อมูล
- Last maintenance: เวลาของการทำ vacuum ล่าสุด
- Last integrity check: เวลาของการตรวจสอบความสมบูรณ์ล่าสุด พร้อมตัวบ่งชี้สถานะที่แสดงว่าฐานข้อมูลแข็งแรงดีหรือพบปัญหา
- Log entries: จำนวนแถวที่จัดเก็บอยู่ใน audit log ในปัจจุบัน
ใต้ตัวเลขเหล่านี้ ส่วนนี้ยังแสดง Journal mode, การตั้งค่า Auto-vacuum, Page size และจำนวน Backups on disk
ขยายรายการ Tables เพื่อดูจำนวนแถวต่อตารางของทุกตารางในฐานข้อมูล
Manual Actions
ส่วน Manual Actions จะรันงานบำรุงรักษาแบบครั้งเดียวทันที ในแต่ละครั้งจะมีการกระทำเพียงรายการเดียว แต่ละการกระทำจะแสดงข้อความแจ้งเตือนยืนยันเมื่อเสร็จ และบางการกระทำจะแสดงสรุปผลลัพธ์ไว้เหนือส่วนนี้
- Back up now: สร้างสแนปช็อตแบบ atomic ของฐานข้อมูลปัจจุบัน สแนปช็อตใหม่จะปรากฏในรายการ Backup History
- Vacuum: เรียกคืนเพจที่ไม่ได้ใช้และจัดเรียงไฟล์ฐานข้อมูลใหม่ สรุปผลลัพธ์จะรายงานขนาดก่อน ขนาดหลัง พื้นที่ที่เรียกคืน และระยะเวลา
- Integrity check: รันการตรวจสอบความเสียหายแบบเต็ม จะช้ากว่าแต่ละเอียดถี่ถ้วน ผลลัพธ์จะเปิดในกล่องโต้ตอบ Integrity Report
- Quick check: รันการตรวจสอบความถูกต้องเชิงโครงสร้างอย่างรวดเร็ว ผลลัพธ์จะเปิดในกล่องโต้ตอบ Integrity Report เช่นกัน
- Analyze: อัปเดตสถิติของตัววางแผนคิวรี
- Optimize: รันตัวปรับให้เหมาะสมแบบ incremental ของ SQLite
- Truncate WAL: ล้างและตัดไฟล์ write-ahead log สรุปผลลัพธ์จะรายงานจำนวนเฟรมของ WAL จำนวนเฟรมที่ทำ checkpoint และระยะเวลา
- Clean old logs: ลบรายการบันทึกที่เก่ากว่าช่วงเวลาเก็บรักษาที่กำหนดไว้ สรุปผลลัพธ์จะรายงานจำนวนแถวที่ลบ จำนวนแถวที่เหลือ และระยะเวลา
Integrity Report
หลังจากการตรวจสอบความสมบูรณ์หรือ quick check กล่องโต้ตอบ Integrity Report จะเปิดขึ้น เมื่อฐานข้อมูลแข็งแรงดี จะยืนยันว่าความสมบูรณ์ของฐานข้อมูลได้รับการตรวจสอบแล้ว เมื่อ SQLite รายงานปัญหา กล่องโต้ตอบจะแสดงรายการปัญหาและแนะนำให้กู้คืนจากสำรองข้อมูลที่ทราบว่าดี กล่องโต้ตอบยังแสดงระยะเวลาของการตรวจสอบด้วย
Auto Maintenance
ส่วน Auto Maintenance จะตั้งเวลาการทำ vacuum การตรวจสอบความสมบูรณ์ และการล้างบันทึกให้ทำงานอัตโนมัติ
- Enable scheduled maintenance: เปิดหรือปิดรอบการบำรุงรักษาตามกำหนดเวลา
- Frequency: เลือก Daily, Weekly หรือ Monthly
- Hour of day: เลือกชั่วโมงตามเวลาท้องถิ่นที่จะให้รอบนี้ทำงาน
Auto Backup
การตั้งค่า Auto Backup จะทำสแนปช็อตเป็นประจำ เพื่อให้ความเสียหายครั้งเดียวไม่อาจลบข้อมูลทั้งวันได้
- Enable scheduled backups: เปิดหรือปิดการสำรองข้อมูลตามกำหนดเวลา
- Frequency: เลือก Daily, Weekly หรือ Monthly
- Hour of day: เลือกชั่วโมงตามเวลาท้องถิ่นที่จะให้การสำรองข้อมูลทำงาน
- Keep most recent: จำนวนสแนปช็อตที่จะเก็บไว้ ระหว่าง 1 ถึง 365 สแนปช็อตที่เก่ากว่าจำนวนนี้จะถูกลบทิ้ง
- Backup folder: โฟลเดอร์ที่จัดเก็บสแนปช็อต ปล่อยว่างไว้เพื่อใช้โฟลเดอร์เริ่มต้นในไดเรกทอรีข้อมูลของแอปพลิเคชัน
Log Retention
การตั้งค่า Log Retention ควบคุมว่าจะเก็บรายการ audit log ไว้นานเท่าใดก่อนที่จะถูกลบระหว่างการบำรุงรักษา ตั้งค่า Retention (days) ด้วยตัวเลื่อน ช่วงที่รองรับคือ 7 ถึง 730 วัน
ใช้ปุ่ม Save ที่ด้านล่างของส่วนนี้เพื่อจัดเก็บการตั้งค่า Auto Maintenance, Auto Backup และ Log Retention
Backup History
ส่วน Backup History จะแสดงสแนปช็อตที่จัดเก็บไว้ภายในเครื่อง สำหรับการสำรองข้อมูลแต่ละรายการ ตารางจะแสดง:
- File: ชื่อไฟล์ของสแนปช็อต
- Created: วันที่และเวลาที่ทำสแนปช็อต
- Size: ขนาดของไฟล์สแนปช็อต
- Source: ที่มาของการสำรองข้อมูล Scheduled สำหรับการสำรองอัตโนมัติ, Startup สำหรับการสำรองที่ทำตอนแอปพลิเคชันเริ่มทำงาน และ Manual สำหรับการสำรองที่สร้างด้วย Back up now
แต่ละแถวมีการกระทำสองอย่าง:
- Restore: แทนที่ฐานข้อมูลที่กำลังทำงานอยู่ด้วยสแนปช็อตที่เลือก ก่อนการสลับ จะมีการบันทึกสำเนาความปลอดภัยก่อนกู้คืนของฐานข้อมูลปัจจุบันโดยอัตโนมัติ จากนั้นแอปพลิเคชันจะปิดและรีสตาร์ทเพื่อให้สแนปช็อตมีผล คุณจะถูกถามให้ยืนยันก่อนเริ่มการกู้คืน
- Delete: ลบไฟล์สแนปช็อตออกจากดิสก์ คุณจะถูกถามให้ยืนยันก่อนลบไฟล์ การกระทำนี้ไม่สามารถย้อนกลับได้
หากยังไม่มีสแนปช็อต ส่วนนี้จะแจ้งให้คุณรัน Back up now หรือรอรอบที่กำหนดเวลาไว้ครั้งถัดไป
Cloud Backup
ส่วน Cloud Backup อธิบายถึงสแนปช็อตที่เข้ารหัสและจัดเก็บนอกสถานที่บนเซิร์ฟเวอร์ของ HandyCafe ซึ่งสามารถกู้คืนได้จากการติดตั้ง HandyCafe ใดก็ตาม
ฟีเจอร์นี้ทำเครื่องหมายไว้ว่า Coming soon และยังไม่พร้อมใช้งาน สวิตช์และฟิลด์การกำหนดค่าจะถูกบันทึกไว้ภายในเครื่อง เพื่อให้การตั้งค่าพร้อมใช้เมื่อฟีเจอร์เปิดให้บัญชีของคุณ ฟิลด์ที่มีให้ ได้แก่ Enable cloud backup, ตัวเลือกในการสำรองสื่ออย่างโลโก้ โปสเตอร์ และหน้าจอพักด้วย, Endpoint และ Bucket / storage zone
ข้อควรทราบสำคัญ
- การกู้คืนจะปิดและรีสตาร์ทแอปพลิเคชันเซิร์ฟเวอร์ แจ้งเซสชันที่กำลังทำงานอยู่ก่อนที่คุณจะกู้คืน
- การกู้คืนจะบันทึกสำเนาความปลอดภัยก่อนกู้คืนของฐานข้อมูลปัจจุบันไว้ก่อนเสมอ ดังนั้นการกู้คืนสามารถย้อนกลับได้ด้วยการกู้คืนสำเนาความปลอดภัยนั้น
- เก็บโฟลเดอร์สำรองข้อมูลไว้บนพื้นที่จัดเก็บที่มีพื้นที่ว่างพอสำหรับจำนวนสแนปช็อตที่ตั้งไว้ใน Keep most recent
- การรันการตรวจสอบความสมบูรณ์หรือการทำ vacuum บนฐานข้อมูลขนาดใหญ่อาจใช้เวลานาน ในแต่ละครั้งจะมีการกระทำด้วยมือเพียงรายการเดียวที่ทำงาน