Home | Back


MySQL Backup ใน Linux (Debian)

Tuesday, 30 September 2008



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

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

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

ในการทำสำรองข้อมูลนั้น บางครั้งมานั่งสั่งเองมันอาจจะไม่สะดวก มีโอกาสที่ผู้ดูแลเครือข่ายอาจจะลืมสำรอง เราก็สามารถทำการเขียน 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 ให้สามารถรันได้ดังนี้ครับ

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

File : /etc/crontab

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



Home | Back