HandyCafe Docs
it-admin owner

การบำรุงรักษาฐานข้อมูล

หน้า 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 บนฐานข้อมูลขนาดใหญ่อาจใช้เวลานาน ในแต่ละครั้งจะมีการกระทำด้วยมือเพียงรายการเดียวที่ทำงาน