สำรองข้อมูลและอัปเดต

16

สำรองข้อมูลและอัปเดต

สำรองฐานข้อมูล กู้คืน อัปเดตเวอร์ชัน และย้ายเซิร์ฟเวอร์

สำรองข้อมูล

ไปที่ ผู้ดูแลระบบ → สำรองข้อมูล

หน้าสำรองข้อมูล — จำนวนตาราง แถวข้อมูล ขนาดโดยประมาณ และไฟล์ที่เก็บไว้
ภาพที่ 1 — หน้าสำรองข้อมูล — จำนวนตาราง แถวข้อมูล ขนาดโดยประมาณ และไฟล์ที่เก็บไว้ ผู้ดูแลระบบ
ปุ่มทำอะไรใช้เมื่อไร
ดาวน์โหลดไฟล์สำรอง (.sql)สร้างไฟล์แล้วดาวน์โหลดลงเครื่องทันทีก่อนอัปเดต ก่อนแก้ข้อมูลจำนวนมาก และตามรอบประจำ
บันทึกเก็บไว้บนเซิร์ฟเวอร์เก็บไฟล์ไว้บนเซิร์ฟเวอร์ ดาวน์โหลดทีหลังได้สำรองเร็ว ๆ ก่อนทำงานที่เสี่ยง
ไฟล์สำรองมีข้อมูลทั้งระบบ รวมรหัสผ่านที่เข้ารหัสไว้ ข้อมูลนักเรียน คะแนน และรายการชำระเงิน — เก็บในที่ปลอดภัย ห้ามเผยแพร่ และห้ามวางไว้ในโฟลเดอร์ที่เข้าถึงได้จากเว็บ

สำรองอะไรบ้าง

ส่วนอยู่ที่ไหนสำรองอย่างไร
ฐานข้อมูลMySQLใช้หน้าสำรองข้อมูลในระบบ หรือ mysqldump
ไฟล์ที่อัปโหลดโฟลเดอร์ resource/คัดลอกทั้งโฟลเดอร์ (วิดีโอ เอกสาร รูปโปรไฟล์ ปกรายวิชา)
ไฟล์ตั้งค่าcore/config.local.phpคัดลอกไฟล์เดียว
การสำรองในระบบครอบคลุมเฉพาะฐานข้อมูล — ต้องสำรองโฟลเดอร์ resource/ แยกต่างหากด้วย มิฉะนั้นวิดีโอ เอกสาร และรูปทั้งหมดจะหายไป

สำรองแยกเฉพาะระบบโรงเรียน

หน้า ระบบนักเรียน → สำรองข้อมูล ส่งออกเฉพาะตารางของระบบโรงเรียนและข้อสอบ ใช้ตอนต้องการส่งข้อมูลให้หน่วยงานอื่นโดยไม่ต้องส่งทั้งระบบ

สำรองข้อมูลระบบโรงเรียน — เลือกส่งออกเฉพาะตารางที่เกี่ยวข้อง
ภาพที่ 2 — สำรองข้อมูลระบบโรงเรียน — เลือกส่งออกเฉพาะตารางที่เกี่ยวข้อง ผู้ดูแลระบบ

รอบการสำรองที่แนะนำ

ลักษณะการใช้งานความถี่เก็บย้อนหลัง
ใช้งานทุกวัน มีคะแนนและการเงินทุกวันอย่างน้อย 30 วัน
ใช้เฉพาะช่วงภาคเรียนทุกสัปดาห์ + ก่อนวันสำคัญตลอดปีการศึกษา
ก่อนอัปเดตระบบทุกครั้งจนกว่าจะแน่ใจว่าเวอร์ชันใหม่ไม่มีปัญหา
ก่อนนำเข้าข้อมูลจำนวนมากทุกครั้งจนกว่าจะตรวจผลนำเข้าเรียบร้อย
สิ้นปีการศึกษา1 ครั้งเก็บถาวร
เก็บไฟล์สำรองไว้คนละที่กับเซิร์ฟเวอร์อย่างน้อยหนึ่งชุด — ถ้าเซิร์ฟเวอร์เสียหาย ไฟล์ที่เก็บไว้บนเซิร์ฟเวอร์เดียวกันจะหายไปพร้อมกัน

กู้คืนข้อมูล

การกู้คืนไม่มีปุ่มในระบบ ต้องทำผ่านเครื่องมือจัดการฐานข้อมูล

ปิดการเข้าถึงชั่วคราว

แจ้งผู้ใช้ให้หยุดใช้งาน เพื่อไม่ให้มีข้อมูลใหม่เข้ามาระหว่างกู้คืน

สำรองสถานะปัจจุบันก่อน

แม้ข้อมูลจะเสียหาย ก็ควรเก็บสำเนาไว้ก่อน เผื่อกู้คืนแล้วผลไม่เป็นอย่างที่คิด

นำเข้าไฟล์ .sql

ผ่าน phpMyAdmin หรือคำสั่ง mysql -u ผู้ใช้ -p ชื่อฐานข้อมูล < ไฟล์.sql

คืนโฟลเดอร์ resource/

คัดลอกกลับให้ตรงกับช่วงเวลาของไฟล์ฐานข้อมูลที่กู้คืน

ตรวจสอบ

เข้าสู่ระบบแล้วตรวจว่ารายวิชา คะแนน และไฟล์แนบครบถ้วน

ฐานข้อมูลกับโฟลเดอร์ resource/ ต้องเป็นช่วงเวลาเดียวกัน — ถ้ากู้ฐานข้อมูลของเมื่อวานแต่ใช้ไฟล์ของวันนี้ จะมีรายการที่ชี้ไปหาไฟล์ที่ไม่มีอยู่

อัปเดตระบบ

ไปที่ ผู้ดูแลระบบ → อัพเดทระบบ

หน้าอัพเดทระบบ — ตรวจสอบเวอร์ชันใหม่ ติดตั้ง และดูประวัติการอัปเดต
ภาพที่ 3 — หน้าอัพเดทระบบ — ตรวจสอบเวอร์ชันใหม่ ติดตั้ง และดูประวัติการอัปเดต ผู้ดูแลระบบ
สำรองข้อมูลก่อน

ขั้นตอนนี้ข้ามไม่ได้ — ดาวน์โหลดไฟล์ .sql และสำรอง resource/

กด "ตรวจสอบอัพเดท"

ระบบเทียบเวอร์ชันปัจจุบันกับเซิร์ฟเวอร์อัปเดต

อ่านรายการเปลี่ยนแปลง

ดูว่ามีอะไรเปลี่ยนบ้าง โดยเฉพาะส่วนที่องค์กรใช้งานอยู่

เลือกช่วงเวลาที่คนใช้น้อย

ระหว่างอัปเดตระบบอาจใช้งานไม่ได้ชั่วครู่

ติดตั้ง

ระบบดาวน์โหลดและติดตั้งให้ พร้อมปรับโครงสร้างฐานข้อมูลที่จำเป็น

ตรวจหลังอัปเดต

เข้าหน้าแรก ลองเปิดรายวิชา ทำข้อสอบ และดูรายงาน ว่าทุกอย่างปกติ

ไฟล์ core/config.local.php และโฟลเดอร์ resource/ ไม่ถูกทับเวลาอัปเดต ส่วน core/config.core.php และ .htaccess อาจถูกทับ — ถ้าเคยแก้ไฟล์สองตัวนี้เอง ให้เก็บสำเนาไว้ก่อน

ถ้าอัปเดตไม่สำเร็จ

อาการสาเหตุที่พบบ่อยวิธีแก้
ดาวน์โหลดไฟล์อัปเดตไม่ได้เซิร์ฟเวอร์ปิดการเชื่อมต่อออกภายนอกให้ผู้ดูแลเซิร์ฟเวอร์เปิด outbound HTTPS หรืออัปเดตด้วยมือ
เขียนไฟล์ไม่ได้สิทธิ์โฟลเดอร์ไม่พอตรวจว่าผู้ใช้ที่รัน PHP เขียนไฟล์ในโฟลเดอร์ระบบได้
อัปเดตค้างกลางคันหมดเวลาทำงานของ PHPเพิ่ม max_execution_time และ memory_limit แล้วลองใหม่
อัปเดตแล้วหน้าเว็บพังไฟล์ไม่ครบหรือโครงสร้างฐานข้อมูลไม่ตรงกู้คืนจากไฟล์สำรอง แล้วติดต่อผู้ดูแลระบบของ Aleanor
ประวัติการอัปเดตทั้งหมดดูได้ในหน้าเดียวกัน ใช้ตรวจว่าอัปเดตครั้งล่าสุดเมื่อไรและจากเวอร์ชันใดไปเวอร์ชันใด

ย้ายเซิร์ฟเวอร์

เตรียมเซิร์ฟเวอร์ปลายทาง

ตรวจว่ามี PHP 8.0 ขึ้นไป (พร้อมส่วนขยาย mysqli, json, session) และ MySQL 5.7 / MariaDB 10.3 ขึ้นไป

สำรองจากเครื่องเดิมให้ครบ 3 อย่าง

ฐานข้อมูล · โฟลเดอร์ resource/ · ไฟล์ core/config.local.php

คัดลอกไฟล์ระบบทั้งหมด

รวมโฟลเดอร์ resource/ ไปยังเครื่องใหม่

สร้างฐานข้อมูลและนำเข้า

สร้างฐานข้อมูลเปล่าแล้วนำเข้าไฟล์ .sql

แก้ config.local.php

ปรับค่าเชื่อมต่อฐานข้อมูลให้ตรงกับเครื่องใหม่

ตรวจสิทธิ์โฟลเดอร์

โฟลเดอร์ resource/ และ core/ ต้องเขียนได้

ตรวจ URL ที่ตั้งไว้

อัปเดต Callback URL ของ LINE/Google, Webhook ของ Payment Gateway และ Base URL ของ VC ให้เป็นโดเมนใหม่

ทดสอบให้ครบ

เข้าสู่ระบบ เปิดวิดีโอ ทำข้อสอบ ส่งอีเมลทดสอบ และดูรายงาน

อย่าลืมอัปเดต URL ที่ตั้งไว้กับบริการภายนอก — LINE Callback, Google Redirect URI และ Webhook ของ Payment Gateway ถ้าไม่แก้ การเข้าสู่ระบบด้วยโซเชียลและการยืนยันการชำระเงินจะใช้งานไม่ได้

งานบำรุงรักษาประจำ

ความถี่สิ่งที่ควรทำ
ทุกวันสำรองฐานข้อมูล (ถ้าใช้งานหนัก) · ตรวจกระดิ่งแจ้งเตือนว่ามีคำสั่งซื้อหรืองานรอตรวจค้างหรือไม่
ทุกสัปดาห์ตรวจพื้นที่จัดเก็บที่หน้าผู้ดูแลระบบ · ดูบันทึกกิจกรรมว่ามีอะไรผิดปกติ
ทุกเดือนตรวจสอบว่ามีเวอร์ชันใหม่หรือไม่ · ทบทวนรายชื่อผู้ใช้และระงับบัญชีที่ไม่ใช้แล้ว
ทุกภาคเรียนทบทวนรายการปลดล็อกเกรด · ลบไฟล์สำรองเก่าที่ไม่จำเป็น · ตรวจนโยบายการเก็บข้อมูลอ่อนไหว
ทุกปีการศึกษาสำรองแบบถาวร 1 ชุด · ตั้งปีการศึกษาใหม่ · อัปเดตสถานะนักเรียนที่จบ