การสำรองข้อมูลระบบจัดการเรียนการสอนออนไลน์ (BUU LMS)

องค์ประกอบระบบจัดการเรียนการสอนออนไลน์ (BUU LMS)
ระบบจัดการเรียนการสอนออนไลน์ (Learning Management System : LMS) ทำทำงานบนเพลตฟอร์ม MOODLE เป็นเว็บไซต์แอพพลิเคชัน ทำงานบนเครื่องแม่ข่าย มีโครงสร้างการจัดเก็บของระบบ ดังนี้
1. Source code คือ ส่วนจัดเก็บไฟล์โปรแกรมของระบบจะวางอยู่ในโฟลเดอร์ /var/www/html/moodle
2. Moodledata คือ ส่วนจัดเก็บไฟล์สื่อต่างๆ เช่น เอกสาร รูปภาพ วีดีโอ จัดเก็บอยู่ที่ /var/moodledata
3. Database คือ ส่วนจัดเก็บฐานข้อมูลระบบโดยใช้ฐานข้อมูล MySQL
ระบบจัดการเรียนการสอนอิเล็กทรอนิกส์ได้รับการจัดการเครื่องแม่ข่ายใหม่โดยใช้เครื่องมือ Docker เข้ามาช่วยในการบริหารจัดการโดยการประสานไปยังฝ่ายโครงสร้างพื้นฐานเพื่อเตรียมเครื่องแม่ข่ายและติดตั้งเครื่องมือ Docker การตั้งค่ามีการสร้าง docker container สำหรับให้บริการระบบทั้งหมด 4 container คือ
1. Moodle-01
2. Moodle-02
3. Moodle-03
4. Moodle-04

โดยทั้ง 4 container คือแอพพลิเคชันที่ให้บริการระบบฯ ให้สามารถรองรับการเชื่อมต่อจำนวนมากในเวลาเดียวกันได้โดยมี load balance จัดการการเข้าใช้งาน

ในแต่ละ container จะตั้งค่าการแชร์ไฟล์ (Mounts) กับโฟลเดอร์จัดเก็บไฟล์โปรแกรม (Source Code) และโฟลเดอร์จัดเก็บไฟล์ (Moodledata) ทีอยู่ใน Local Filesystem ทำให้แต่ละ container จัดเก็บไฟล์ที่แหล่งจัดเก็บเดียวกันแบบทีความสัมพันธ์คือ เมื่อไฟล์ใน Local Filesystem มีการเปลี่ยนแปลงจะส่งผลให้ไฟล์ที่อยู่ในแต่ละ container เปลี่ยนแปลงตามไปด้วย

แผนภาพแสดงการแชร์ไฟล์โดยวิธีการ Bind mount ระหว่าง container และส่วน Local Filesystem

ภาพแสดงตัวอย่างการตั้งค่าการแชร์ไฟล์ด้วยวิธีการ bind mount

การสำรองข้อมูล

  1. เปิดโหมดบำรุงรักษา ผู้ดูแลระบบเข้าสู่บบผ่านหน้าเว็บไซต์จากนั้นทำการเปิดโหมดบำรุงรักษาเพื่อจำกัดไม่ให้ผู้ใช้งานเข้ามาใช้งานในระหว่างดำเนินการสำรองข้อมูล
    1.1 โดยเข้าไปที่เมนู
    Site administration > Server > Maintainance mode
    1.2 เลือก enable mode
    1.3 เลือก save changes
  2. สำรองข้อมูล
    2.1 เปิดโปรแกรม git bash
    2.2 เข้าสู่ระบบด้วยการพิมคำสั่ง ssh yourUserName@10.5.1.36 เมื่อเข้าสู้ระบบแล้วจะอยู่ที่ path /home/yourUserName
    2.3 สำรองข้อมูล source code ด้วยคำสั่ง
    tar –cvf moodle.tar /var/www/html/moodle
    2.4 สำรองข้อมูล moodledata ด้วยคำสั่ง
    tar –cvf moodledata.tar /var/moodledata
    2.5 สำรองฐานข้อมูลด้วยการเรียกใช้ container mysql
    2.5.1. เข้าใช้ container mysql ด้วยคำสั่ง mysql exec –it mysql bash
    2.5.2. สำรองฐานข้อมูล คำสั่ง mysqldump -u root -p moodle > modle-backup-2019-09-18.sql
    2.5.3. พิมพ์คำสั่ง exit เพื่อออกจาก container mysql
    2.5.4. กลับมาที่เครื่อง Local พิมพ์คำสั่งดาวน์โหลดไฟล์สำรองฐานข้อมูลจาก container mysql ด้วยคำสั่ง docker cp <containerId>:/file/path/modle-backup-2019-09-18.sql ./
    คือการใช้คำสั่ง ให้คัดลอกไฟล์ modle-backup-2019-09-18.sql ให้มายังตำแหน่งปัจจุบัน
    2.6 ปิดโหมดบำรุงรักษา เมื่อทำการคัดลอกไฟล์เสร็จแล้วต่อจากนี้สามารถปิดโหมดบำรุงรักษาเพื่อเปิดระบบให้ผู้ใช้สามารถทำงานต่อได้
    2.7 อัพโหลดไฟล์ข้อมูลเข้าเครื่องพื้นที่จัดเก็บข้อมูล
    2.7.1. ใช้คำสั่ง screen เป็นเครื่องมือช่วยการอัพโหลดให้เป็นไปอย่างต่อเนื่องไม่เกิดปัญหาอัพโหลด timeout
    2.7.2. เชื่อมต่อ sftp ด้วยคำสั่ง sftp user@10.4.6.21
    2.7.3. อัพโหลดไฟล์ด้วยคำสั่ง mput moodledata.tar moodle.tar modle-backup-2019-09-18.sql
    2.7.4. ในระหว่างรอการอัพโหลดสามารถสลับไปทำอย่างอื่นได้ด้วยคำสั่ง Ctrl-a Ctrl-a เพื่อสลับไปทำคำสั่งอื่นได้ระหว่างรอ และสามารถกดคำสั่ง Ctrl-a Ctrl-a เพื่อกลับมาติดตามผลการอัพโหลด
  3. เนื่องจากไฟล์ moodledata มีขนาดใหญ่การกระทำใดๆ เช่น การบีบอัด คัดลอกไฟล์ การอัพโหลดไฟล์ จะใช้เวลาในการจัดการนานพอสมควร จากที่ได้ทำการสำรองข้อมูลนั้นแต่ละครั้งที่กระทำกับข้อมูล เช่นการบีบอัด อัพโหลดจะใช้เวลาอย่างละประมาณ 3 ชั่วโมง รวมเป็น 6 ชั่วโมงโดยประมาณ

Leave A Reply

Your email address will not be published. Required fields are marked *