ตั้งเวลาสำรองฐานข้อมูล MySQL บน Linux

วิธีการสำรอง (Backup) ฐานข้อมูล MySql  นั้นมีหลายแบบ อีกวิธีนึงที่ไม่ค่อยยุ่งยากมากนักคือสำรองเป็นไฟล์ .gz เพื่อบีบอัดไว้ไว้ใน Linux Server ของตัวเอง โดยให้สำรองข้อมูลทุกวันตามเวลาที่กำหนด และการตั้งชื่อไฟล์ก็อาจจะตั้งตามวันที่สำรองในวันนั้นเลยจะได้รู้ว่าเป็นของวันไหน

ยกตัวอย่างดังนี้นะครับ

– Host name : localhost

– Database name : webdb

– Username : root

– Password : mypassword

– จะ Backup ไปไว้ที่ /my_backup/db/  (สร้าง folder เตรียมไว้ก่อนเลยนะครับ)

จากนั้นคำสั่งจะใช้คำสั่ง mysqldump ร่วมกับ gzip เพื่อบีบอัพไฟล์ไปด้วยเลย เมื่อรวมกับข้อมูลในตัวอย่างด้านบนรูปแบบคำสั่งจะเป็นตามด้านล่างนี้ครับ

เมื่อรันคำสั่งด้านลนแล้วก็ลองเข้าไปใน Path ที่เรา Backup ไว้ว่ามีไฟล์หรือไม่ เอาละสมมติว่าไฟล์ที่เรา Backup นั้นได้มาเป็นชื่อ  “backup_170930.sql.gz”  และเราลองมาทำสอบ Restore กลับมาดูว่าไฟล์นั้นสมบูรณ์และมันสามารถนำกลับมาใช้อย่างถูกต้องหรือไม่ ให้ใช้คำสั่งดังนี้ครับ

ทีนี้เราอยากจะให้มัน Backup ทุกวันเอาเป็นช่วงเวลา 2:30 คนน่าจะใช้น้อยสุดก็เพียงแต่นำคำสั่งนี้ไปใช้ร่วมกับ Crontab โดยให้พิมพ์คำสั่ง

จากนั้นนำคำสั่งนี้ไปใส่ไว้ใน Crontab

สังเกตุตรง “/usr/local/bin/mysqldump” จะเป็นการอ้าง Path เต็มนะครับ (ตรงนี้บาง Server อาจจะอยู่ที่ Path อื่นคงต้องดูกันอีกทีนะครับ) เพราะว่าบางครั้งอยู่ใน Crontab แล้วมันไม่สามารถ Run ได้ ถ้าเคสนี้ก็ Zip ผ่านแต่ไฟล์จะว่างเปล่า เลข 30 คือนาที ส่วนเลข 2 คือชั่วโมงครับ

ทีนี้ก็จะได้ระบบ Backup ฐานข้อมูล MySql ไว้ใช้งานแล้วครับ แต่ถ้าจะให้ดีควร Backup ไว้นอก Server ด้วยก็ดีเผื่อเกิดข้อผิดพลาดร้ายแรงเช่น ไฟไหม้หรือ HDD พังเป็นต้นครับ ส่วนใครหา path ของ mysqldump ลองดูตามรายการนี้เผื่อมีครับ

ก็หวังว่าบทความนี้จะมีประโยชน์ไม่มากก็น้อยนะครับผม

(ตั้ม) ศิริชัย ธีรภัทรสกุล เป็นเว็บโปรแกรมเมอร์, บล็อกเกอร์, และเจ้าของกิจการ ชอบถ่ายรูป อ่านหนังสือ และออกกำลังกาย “จงมีความกล้าที่จะลงมือทำ และอยู่กับปัจจุบัน ณ ขณะ (จงโฟกัส)"

Post a Comment