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

คำสำคัญ (Tags): #database#php#restore#backup#mysqldump#mysql
หมายเลขบันทึก: 41245เขียนเมื่อ 28 กรกฎาคม 2006 09:04 น. ()แก้ไขเมื่อ 1 มิถุนายน 2012 17:45 น. ()สัญญาอนุญาต: จำนวนที่อ่านจำนวนที่อ่าน:


ความเห็น (1)

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

 

พบปัญหาการใช้งานกรุณาแจ้ง LINE ID @gotoknow
ClassStart
ระบบจัดการการเรียนการสอนผ่านอินเทอร์เน็ต
ทั้งเว็บทั้งแอปใช้งานฟรี
ClassStart Books
โครงการหนังสือจากคลาสสตาร์ท