การทำสำรองข้อมูลของฐานข้อมูลถือว่าเป็นงานที่สำคัญสำหรับผู้ดูแลระบบเครือข่ายที่จะ
ต้องรับผิดชอบในการรักษาข้อมูลของหน่วยงาน การสำรองข้อมูลของ MySQL นั้นจะมี
คำสั่งง่าย ๆ ในการ สำรองข้อมูลดังนี้

# mysqldump --host=10.0.1.10 --user=root --password=data123 engineer > engineer.sql

โดย ?host จะเป็นการระบุเครื่องที่เป็น database server ส่วน ?user จะระบุชื่อของ user
?password เป็นรหัสผ่าน ส่วนคำว่า engineer เป็นชื่อของฐานข้อมูลครับ สุดท้ายให้ส่งข้อมูล
ไปยังไฟล์ที่ชื่อ engineer.sql เราก็จะได้ไฟล์ที่เก็บ SQL ของฐานข้อมูลนั้น ๆ ในกรณีที่ต้องการ
backup ทุกฐานข้อมูลเลยก็ให้ใช้

# mysqldump --host=10.0.1.10 --user=root --password=data123 --all-databases > database.sql

เมื่อทำการ backup แล้ว ในส่วนของการ restore ให้ใช้คำสั่งดังนี้ครับ

# mysql --host=10.0.1.10 --user=root --password=data123 < database.sql

ในการทำสำรองข้อมูลนั้น บางครั้งมานั่งสั่งเองมันอาจจะไม่สะดวก มีโอกาสที่ผู้ดูแลเครือข่าย
อาจจะลืมสำรอง เราก็สามารถทำการเขียน script ให้ทำการสำรองข้อมูลโดยอัตโนมัติได้
โดยผมจะสร้างไฟล์ที่ชื่อ /backup/backup_sql สำหรับทำการสำรองข้อมูล โดยมี script ดังนี้

File : /backup/backup_sql

rm /backup/x.sql -f
mysqldump –host=10.0.1.10 –user=root –password=data123 –all-databases > /backup/x.sql
if [ -f /backup/x.sql ]
then
rm /backup/database2.sql -f
mv /backup/database1.sql /backup/database2.sql
mv /backup/x.sql /backup/database1.sql
fi
exit 0

เมื่อสร้าง script เสร็จแล้วอย่าลืมกำหนด permission ให้สามารถรันได้ดังนี้ครับ

# chmod a+x /backup/backup_sql

จากนั้นไปเพิ่มในไฟล์ /etc/crontab เพื่อตั้งเวลาสำหรับเรียก script ดังนี้ครับ

File : /etc/crontab

20 3	* * * 	root	/bin/sh /backup/backup_sql

สุดท้ายครับ สำหรับการ restore ฐานข้อมูลแบบทั้ง server นั้น มันจะทำการ update ตัว user
ด้วย ซึ่งเมื่อทำการ restore แล้วอย่าลืมเข้าตัว phpmyadmin แล้วทำการ reload the privileges
และตัว user ที่ชื่อ debian-sys-maint จะต้องตั้ง password ใหม่โดยให้ไปเอา password ของ user
ที่ชื่อ debian-sys-maint ได้จากไฟล์ /etc/mysql/debian.cnf เอาล่ะ แค่นี้งานดูแลฐานข้อมูลก็
เป็นเรื่องเด็ก ๆ แล้วครับ