backup mysql database ด้วย mysqldump

  ติดต่อ

  สำหรับการ backup database ขนาดใหญ่แล้ว ผมคิดว่า mysqldump นั้นมีประสิทธิภาพมากที่สุดแล้ว....  

สำหรับ database เล็กๆ ใช้ phpmyadmin ก็สะดวกดี แต่ถ้า database ขนาดใหญ่ หลายล้าน records ล่ะ ก็คงไม่สะดวก ยิ่ง Server config ให้ PHP เป็น safe mode ก็จะมีปัญหากับ time-out ซึ่งทำให้ใช้ phpMyAdmin ไม่ได้

เขียน PHP scripts ให้ backup database โดยการ generate เป็น ไฟล์ SQL เก็บเอาไว้
มันก็ใช้งานได้ดีอยู่.. แต่มันทำงานได้ช้ามาก (เกือบ 1 ชั่วโมง สำหรับ database ขนาด 300 MB)

สำหรับการ backup database ขนาดใหญ่แล้ว ผมคิดว่า mysqldump นั้นมีประสิทธิภาพมากที่สุดแล้ว
ทั้งๆที่มากับ mysql อยู่แล้ว ทำไมจึงมองข้ามก็ไม่รู้ :) วันนี้ก็เลยมาลองใช้สิ่งที่ MySQL จัดเตรียมมาให้แล้ว

 

การ backup
คำสั่งสำหรับ backup ฐานข้อมูล ของ mysql คือ mysqldump รูปแบบการใช้งานมีดังต่อไปนี้

shell> mysqldump [options] db_name [tables]
shell> mysqldump [options] --databases db_name1 [db_name2 db_name3...]
shell> mysqldump [options] --all-databases

สำหรับรายละเอียดของ options ต่างๆ ดูที่ http://dev.mysql.com/doc/refman/5.0/en/mysqldump.html

 ตัวอย่างการใช้งาน

#mysqldump -u root -p mydatabase > db.sql

 สำหรับบน Linux และ NetWare จะมี mysqlhotcopy ให้ใช้ด้วย พัฒนาโดยคุณ Tim Bunce เขียนด้วย PERL เพราะท่านเล่น lock และ flush จากนั้นก็ copy file มาซะงั้น

 

การ restore

#mysql -u root -p database < db.sql

ง่ายๆ และรวดเร็วดี :)


Links
How to backup a MySQL database with mysqldump แนะนำ
mysqldump man page
8.12. mysqldump — A Database Backup Program

บันทึกนี้เขียนที่ GotoKnow โดย 

หมายเลขบันทึก: 41245, เขียน: , แก้ไข, , สัญญาอนุญาต: สงวนสิทธิ์ทุกประการ, ความเห็น: 1, อ่าน: คลิก

คำสำคัญ (Tags) #mysql#php#database#mysqldump#backup#restore

บันทึกล่าสุด 

ความเห็น (1)

naigod
IP: xxx.144.160.247
เขียนเมื่อ 

ขอบคุณมากๆ ครับสำหรับความรู้ดีๆ