วันจันทร์ที่ 2 พฤษภาคม พ.ศ. 2554

Backup และ Restore ฐานข้อมูลผ่าน command

การ Backup และ Restore ฐานข้อมูลผ่าน command lineในการสำรองข้อมูล (Backup) หรือการคืนค่าข้อมูล (Restore) หลายท่านน่าจะเคยทำผ่าน web application เช่น phpMyAdmin มาบ้างแล้ว แต่ด้วยข้อจำกัดของ HTTP นั้นจะมีปัญหาสำหรับฐานข้อมูลที่มีขนาดใหญ่ ดังนั้นการใช้คำสั่งผ่าน command line นั้นจึงมีประสิทธิภาพมากที่สุด

การสำรองข้อมูลใน MySQL นั้นทางผู้พัฒนาเองได้ให้เครื่องมือช่วยมาด้วยชื่อว่า mysqldump สามารถทำการสำรองข้อมูลตามต้องการได้ โดยการใช้งานสั่งได้โดยทำงานผ่าน command line โดยมีรูปแบบ

BASH
mysqldump -u [username] -p[password] [database] > [filename]

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

BASH
mysqldump -u root -pMyPass test > backup.sql
เป็นลักษณะการสั่งให้สำรองฐานข้อมูลลงในไฟล์ ในระบบปฎิบัติการ Unix/Linux นั้นเราสามารถใช้คำสั่งบีบอัดร่วมได้เช่น

BASH
mysqldump -u root -pMyPass test | gzip > backup.sql.gz
หรือ

BASH
mysqldump -u root -pMyPass test | bzip2 > backup.sql.bz2

และยังเรายังสามารถสำรองฐานข้อมูลทั้งหมดด้วย
BASH
mysqldump -u root -pMyPass --all-databases | gzip > backup.sql.gz
และยังมีค่าอื่นเพื่อระบุรูปแบบได้ตามต้องการ เช่น
--add-drop-table เพื่อสั่งให้ drop ตารางที่มีอยู่ก่อน
--no-data เพื่อสั่งให้สำรองเฉพาะโครงสร้างของตาราง
--add-locks เพื่อสั่งให้มีการล็อคตารางและคลายล็อคตาราง

ส่วนการคืนค่าข้อมูลก็สามารถทำได้ด้วยการใช้คำสั่ง mysql มีรูปแบบการใช้งาน
BASH
mysql -u [username] -p[password] [database] < backup.sql
ตัวอย่างการใช้งานเช่น
BASH
mysql -u root -pMyPass test < backup.sql
ส่วนถ้าเป็นไฟล์บีบอัดเช่น
BASH
gunzip < backup.sql.gz | mysql -u root -pMyPass test
หรือ
BASH
bzip2 < backup.sql.bz2 | mysql -u root -pMyPass test
หวังว่าจะมีประโยชน์สำหรับทุกท่าน

ไม่มีความคิดเห็น:

แสดงความคิดเห็น