สำหรับ database เล็กๆ ใช้ phpmyadmin ก็สะดวกดี แต่ถ้า database ขนาดใหญ่ หลายล้าน records ล่ะ ก็คงไม่สะดวก ยิ่ง Server config ให้ PHP เป็น safe mode ก็จะมีปัญหากับ time-out ซึ่งทำให้ใช้ phpMyAdmin ไม่ได้
เขียน PHP scripts ให้ backup database โดยการ generate เป็น ไฟล์ SQL เก็บเอาไว้
มันก็ใช้งานได้ดีอยู่.. แต่มันทำงานได้ช้ามาก (เกือบ 1 ชั่วโมง สำหรับ database ขนาด 300 MB)
สำหรับ database ขนาดใหญ่แล้ว ผมคิดว่า mysqldump นั้นมีประสิทธิภาพมากที่สุดแล้ว
ทั้งๆที่มากับ mysql อยู่แล้ว ทำไมจึงมองข้ามก็ไม่รู้
วันนี้ก็เลยมาลองใช้สิ่งที่ MySQL จัดเตรียมมาให้แล้ว
การ backup
คำสั่งสำหรับ backup ฐานข้อมูล ของ mysql คือ mysqldump รูปแบบการใช้งานมีดังต่อไปนี้
สำหรับรายละเอียดของ options ต่างๆ ดูที่ http://dev.mysql.com.../mysqldump.html
ตัวอย่างการใช้งาน
dump database
dump เฉพาะ tables customer
สำหรับบน Linux จะมี mysqlhotcopy ให้ใช้ด้วย พัฒนาโดยคุณ Tim Bunce เขียนด้วย PERL เพราะท่านเล่น lock และ flush จากนั้นก็ copy file มาซะงั้น
อันนี้เป็นตัวอย่างที่ผมใ้ช้อยู่
จะได้ db-backup_20071926_070420.sql.bz2
การ restore
ใช้
ง่ายๆ และรวดเร็วดี
อันนี้ในกรณี restore ทั้ง database
แต่ถ้าต้องการเลือก database ใช้ mysqlimport
Links
How to backup a MySQL database with mysqldump แนะนำ
mysqldump man page
8.12. mysqldump — A Database Backup Program
เขียน PHP scripts ให้ backup database โดยการ generate เป็น ไฟล์ SQL เก็บเอาไว้
มันก็ใช้งานได้ดีอยู่.. แต่มันทำงานได้ช้ามาก (เกือบ 1 ชั่วโมง สำหรับ database ขนาด 300 MB)
สำหรับ database ขนาดใหญ่แล้ว ผมคิดว่า mysqldump นั้นมีประสิทธิภาพมากที่สุดแล้ว
ทั้งๆที่มากับ mysql อยู่แล้ว ทำไมจึงมองข้ามก็ไม่รู้
การ backup
คำสั่งสำหรับ backup ฐานข้อมูล ของ mysql คือ mysqldump รูปแบบการใช้งานมีดังต่อไปนี้
Quote
shell> mysqldump [options] db_name [tables]
shell> mysqldump [options] --databases db_name1 [db_name2 db_name3...]
shell> mysqldump [options] --all-databases
shell> mysqldump [options] --databases db_name1 [db_name2 db_name3...]
shell> mysqldump [options] --all-databases
สำหรับรายละเอียดของ options ต่างๆ ดูที่ http://dev.mysql.com.../mysqldump.html
ตัวอย่างการใช้งาน
#mysqldump -u root -p mydatabase > db.sql
dump database
mysqldump -u root -p mydatabase -tables customer > db.sql
dump เฉพาะ tables customer
สำหรับบน Linux จะมี mysqlhotcopy ให้ใช้ด้วย พัฒนาโดยคุณ Tim Bunce เขียนด้วย PERL เพราะท่านเล่น lock และ flush จากนั้นก็ copy file มาซะงั้น
อันนี้เป็นตัวอย่างที่ผมใ้ช้อยู่
mysqldump -u root -pMyPassword --all-database --lock-all-table | bzip2 -c > db-backup_$(date +%Y%m%d_%H%M%S).sql.bz2
จะได้ db-backup_20071926_070420.sql.bz2
การ restore
ใช้
#mysql -u root -p database < db.sql
ง่ายๆ และรวดเร็วดี
แต่ถ้าต้องการเลือก database ใช้ mysqlimport
mysql -u root -pMyPassword MyDatabase < db.sql
Links
How to backup a MySQL database with mysqldump แนะนำ
mysqldump man page
8.12. mysqldump — A Database Backup Program
0 Comments On This Entry
← September 2010 →
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 |
Search My Blog
Recent Entries
My Blog Links
Recent Comments
Tags
test
test
Help
Leave Comment








