Database Backups

Ruk-Com PaaS ได้จัดเตรียม certified database stacks ทั้งหมดไว้ด้วยความสะดวกสบายและสคริปต์ที่ตรงประเด็นสำหรับการสำรองข้อมูล ดังนั้นการประมวลผลนี้เรียบง่ายเพียงแค่ระบุพารามิเตอร์ที่ต้องการและสามารถทำได้โดยใช้เวลาเพียงไม่กี่นาที ในที่นี้ไม่จำเป็นที่จะต้องมีความรู้เฉพาะทาง เพียงแค่ทำตามขั้นตอนการติดตั้ง setup steps เพื่อทำการตั้งค่า crontab ที่เหมาะสม

นอกจากนี้ เราจะแสดงให้เห็นว่าคุณสามารถที่จะทำงานร่วมกับการสร้างการสำรองข้อมูลได้อย่างไร

สำหรับการสอนนี้ เราจะใช้ฐานข้อมูล MySQL/MariaDB เป็นตัวอย่าง อย่างไรก็ตามขั้นตอนที่จำเป็นต่าง ๆ นั้นมีความคล้ายกับฐานข้อมูลประเภทอื่นใน Ruk-Com Platform

การตั้งเวลาการสำรองข้อมูล

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

1. source code ของสคริปต์นั้นสามารถดูได้โดยตรงจากแดชบอร์ด คลิกที่ปุ่ม Config ที่อยู่ถัดจากฐานข้อมูลเพื่อเปิด built-in file manager และค้นหาไฟล์ /var/lib/jelastic/bin/backup_script.sh

สคริปต์การสำรองข้อมูลนั้นไม่รองรับสำหรับ Redis stack ที่ใช้ในการจัดเก็บ key-value โดยปกติแล้วมักใช้เป็นเพียงแค่ระบบ Caching หรือเก็บข้อมูลชั่วคราว

2.เพื่อดำเนินการสคริปต์โดยอัตโนมัติ เราจะใช้ link cron scheduler ที่มีอยู่ใน Container แบบสำเร็จรูป เปิดไฟล์ /var/spool/cron/mysql และให้ใช้ cron expression ตามรูปแบบต่อไปนี้

ในสคริปด้านบนจะเห็นว่าเราได้ทำตัวอย่างไว้แล้วในแต่ละ feature สามารถเอา Comment ออกเพื่อเปิดให้ Crontab ทำงาน หลังจากนั้นตั้งค่าส่วนต่างๆตามนี้

  • {frequency} – กำหนดเวลาของการเรียกใช้สคริปต์ (รายละเอียดดูได้จากลิงก์แนวทางด้านบน), เช่น */10 * * * * เพื่อสำรองข้อมูลทุก ๆ 10 นาที
  • {path-to-script} – ชี้ไปยังสคริปต์ที่ต้องการ (สคริปต์การสำรองข้อมูลค่าเริ่มต้นได้ตั้งไว้ที่ /var/lib/jelastic/bin/backup_script.sh)
  • {script-parameters} – จัดเตรียมพารามิเตอร์ที่กำหนดเองสำหรับคริปต์ที่กำหนด; สิ่งต่อไปนี้มีอยู่ในกรณีของเรา:
    • -m {mode} เพื่อสำรองข้อมูลทั้งหมดหรือบางส่วนของฐานข้อมูล (“-m dumpall” หรือ “-m dump” ตามลำดับ)
    • -c {count} กำหนดตัวเลขของการสำรองข้อมูลอันเก่าเพื่อจัดเก็บ (เช่น “-c 3” เพื่อเก็บการสำรองข้อมูลเก่า 3 ชุดเช่น 1 2 3 1 2 3 ไฟล์จะถูกทับไปเรื่อยๆเพื่อไม่ให้เปลืองพื้นที่
    • -u {user} และ -p {password} รหัสผ่านสำหรับเข้าถึงสำหรับฐานข้อมูล (จะได้รับทาง Email หลังจากสร้าง Env เสร็จ)

ถ้า {password} ของคุณมีตัวอักขระพิเศษ ควรครอบด้วย ” นอกจากนี้ เนื่องจากความเฉพาะของ cron คุณจำเป็นที่จะต้องเพิ่มอักษรแบบ escaping อย่างสัญลักษณ์ % โดยการเพิ่ม backslash เข้าไปก่อนหน้า ตัวอย่างเช่น -p “passw\\%rd”

  • -d {databases} และ -t {tables} เพื่อระบุรายการเลือกของฐานข้อมูล (“-d db1[,db2,db3….]”) หรือ ตารางที่อยู่ในฐานข้อมูล (“-d db -t table1[,table2,table3….]”) เพื่อสำรองข้อมูล

3. ตัวอย่าง ถ้าคุณต้องการสำรองข้อมูลทั้งหมดจากฐานข้อมูลทุก ๆ 10 นาที ด้วยการช่วยเหลือจากสคริปต์เริ่มตั้น ถ้าเช่นนั้นสตริงควรเป็นตามนี้

บันทึกการตั้งค่าเพื่อนำไปใช้

4.เพื่อที่จะจัดเก็บข้อมูลบนโหนดของ Container อื่นหรือการรีโมทเซิร์ฟเวอร์สามารถที่จะกำหนดค่า mount point ที่เหมาะสม สำหรับฐานข้อมูลของคุณ

ข้อมูลต่าง ๆ ที่มีอยู่ในโฟลเดอร์ mount point จะถูกแทนที่ด้วยไฟล์จากไดเรกทอรีที่มากจากการรีโมท

ตรวจสอบการสำรองข้อมูล

รอให้สคริปดำเนินการ (ขึ้นอยู่กับความถี่ของ cron ที่ได้กำหนดค่าไว้) และไปที่โฟลเดอร์ /var/lib/jelastic/backup 

ถ้าดำเนินการสำรองข้อมูลเสร็จสิ้น คุณจะเห็น bz2 จัดเก็บไว้ในไดเรกทอรี

ดาวน์โหลดการสำรองข้อมูล

มีตัวเลือกที่หลากหลายสำหรับการดาวโหลดไฟล์จาก Ruk-Com Container

1. ในทางตรงทีสุดคือการใช้ configuration file manager โดยตรงในแดชบอร์ด

ค้นหาไฟล์ที่ต้องการ วางเมาส์ไว้เหนือตำแหน่ง และกดดาวน์โหลดจากเมนูที่แสดง

2.ตัวเลือกอีกอย่างคือใช้การเชื่อมต่อ SFTP/FISH protocol

รายละเอียดการเข้าถึงที่จำเป็นสามารถดูได้ในแดชบอร์ด

3.นอกจากนี้ยังสามารถติดตั้ง FTP add-on สำหรับฐานข้อมูลเพื่อจัดการไฟล์ผ่าน FTP 

public IP address นั้นจำเป็นสำหรับตัวเลือกนี้ หากมีความจำเป็นมันจะเชื่อมต่อกับโหนดโดยอัตโนมัติระหว่างการติดตั้งส่วนเสริม

คุณสามารถเลือกตัวเลือกใดก็ได้ ตามความต้องการของคุณ

การกู้คืนฐานข้อมูล

ในกรณีที่จำเป็น คุณสามารถกู้คืนฐานข้อมูลจากการสำรองข้อมูลได้อย่างง่าย จากตัวอย่าง MySQL ของเรา ให้ทำตามขั้นตอนที่จำเป็นต่อไปนี้ : 

1. เข้าไปยังพาเนล phpMyAdmin ด้วยรายละเอียดจากอีเมลที่ได้รับหลังจากการสร้าง DB Node

2. ไปที่แท็บ Import ติ๊กตัวเลือก Browse your computer และใช้ปุ่ม Choose File เพื่ออัปโหลดการสำรองข้อมูลที่จำเป็น

กดปุ่ม Go ที่อยู่ด้านล่างของหน้า

3.เมื่อการนำเข้าสำเร็จเรียบร้อย คุณจะเห็นการแจ้งเตือนขึ้นในพาเนลแอดมิน

นั่นก็คือทั้งหมด ตอนนี้คุณสามารถมั่นใจได้ว่าข้อมูลทั้งหมดจะได้รับการ Backup เป็นระยะตามช่วงเวลาที่ต้องการและในกระณีที่จำเป็น สามารถกู้คืนหรือนำกลับมาใช้ใหม่ได้อย่างง่ายดาย