นึกถึงเคล็ดลับดีๆ นึกถึง trickpod.com

Backup MySQL บน CentOS

วันนี้บังเอิญไปเจอวิธีการสำรองข้อมูล MySQL บนระบบปฏิบัติการลินุกซ์ CentOS ซึ่งต้องยอมรับว่าตัวผมเองก็ไม่ถนัดแนวๆนี้เท่าไร แต่เชื่อว่าบทความนี้มีประโยชน์สำหรับผู้ดูแลเครื่องแม่ข่าย (Server) อย่างแน่นอนครับ

Backup MySQL บน CentOS โดย Thicha Puantae

1.สร้างไฟล์ backup.sh ไว้ที่ /var/Backup
2.เพิ่มคำสั่งในไฟล์ backup.sh ดังนี้

mysqldump -h SERVER -u USER –password=PASS DATA –no-create-db –add-drop-table -e > /var/Backup/tempData/FILENAME.sql

อธิบาย : เป็นคำสั่งสำรองข้อมูล mysql โดยแก้ไขตัวแปรดังนี้
SERVER ให้ใส่ IP Server
USER คือ user name ของ database
PASS ใส่ password ของ database
DATA ใส่ชื่อ data ที่จะ backup
/var/Backup/tempData/ คือที่อยู่ที่จะเก็บไฟล์
FILENAME ใส่ชื่อไฟล์ที่จะ backup
สามารถเพิ่มได้หลายบรรทัดถ้ามีการสำรองหลาย Database

timeaccess=`date +%Y-%m-%d`

อธิบาย : เป็นการกำหนดรูปแบบชื่อไฟล์ไว้ในตัวแปรก่อนนำไปตั้งชื่อไฟล์

tar -cvzf /var/Backup/Data/Backup-$timeaccess.tar.gz /var/Backup/tempData/

อธิบาย : สั่งให้รวมไฟล์เป็นไฟล์เดียวด้วย tar แล้วทำการบีบอัดข้อมูลด้วย gzip
โดยเรียกใช้ตัวแปร $timeaccess มากำหนดชื่อไฟล์ ชื่อไฟล์ที่ได้จะเป็น Backup-2011-09-26.tar.gz

3.เพิ่มคำสั่งใน crontab เพื่อให้สำรองข้อมูลทุกวันตอนเที่ยงคืนดังนี้
พิมพ์ crontab -e จะเปิดไฟล์ config ขึ้นมาให้เพิ่มคำสั่ง

0 0 * * * sh /var/Backup/backup.sh

เสร็จแล้ว save แล้วพิมพ์ crontab -l เพื่อตรวจสอบคำสั่งที่สร้างไว้

คีย์การใช้งาน crontab

Esc เพื่อออกมาสู่โหมดปกติ i เพื่อเข้าโหมดแก้ไข x ลบ ตัวอักษรที่ cursor วางอยู่ ทีละอักษร ในโหมดปกติ dd ลบบรรทัด ทั้งบรรทัด ที่ cursor วางอยู่ทีละแถว ในโหมดปกติ :q! ออกโดยไม่ต้องแก้ไขอะไร :wq! เก็บบันทึกข้อความที่แก้ไขแล้วออกจากโปรแกรม

สรุป ใช้ crontab สั่งให้รับไฟล์ sh /var/Backup/backup.sh ทุกเที่ยงคืน ทำการสำรองข้อมูลโดยใช้ mysqldump ได้ sql ไฟล์มาเก็บไว้ที่ /var/Backup/tempData/ แล้วทำการบีบอัดข้อมูลทั้งหมดมาเก็บไว้ใน /var/Backup/Data/

ลองดูนะครับ ถ้าไม่ได้ตรงไหน ตามไปถามต่อได้ที่ https://www.facebook.com/note.php?note_id=245444018841600

Facebook Twitter Email

เคล็ดลับที่เกี่ยวข้อง

Facebook comments:

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>