วันจันทร์ที่ 4 มกราคม พ.ศ. 2559

คำสั่ง Backup + Restore + Repair ฐานข้อมูล


คำสั่ง Backup + Restore + Repair ฐานข้อมูล

mysqldump --opt --default-character-set=tis620 --force --allow-keywords --single-transaction -u root -p<bank> hos > /var/backup/hosxp_backup.sql

cd /var/backup --------> gzip hos.sql

mysqldump --opt --default-character-set=tis620 --force --allow-keywords --single-transaction -u root -p<bank> ck_db > /var/backup/ck_db.sql

cd /var/backup --------> gzip ck_db.sql


repair database    -------------->   mysqlcheck -uroot -p --auto-repair --optimize --all-databases


การ 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
หรือ
zyN8pQ==
_

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
หวังว่าจะมีประโยชน์สำหรับทุกท่าน

ซ่อมตาราง
mysqlcheck -u root -p --auto-repair referdb

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

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