ฉันมีเซิร์ฟเวอร์ Ubuntu ที่มี Mysql daatabase ฉันต้องการตั้งค่าการสำรองข้อมูลอัตโนมัติของฐานข้อมูลนี้ในตอนกลางคืนบนเซิร์ฟเวอร์อื่น (ตัวอย่างเช่น)
ฉันไม่รู้ว่าอะไรจะเป็นเครื่องมือที่ดีที่สุดสำหรับสิ่งนั้น หากใครมีคำแนะนำ ...
ขอบคุณล่วงหน้า.
ฉันมีเซิร์ฟเวอร์ Ubuntu ที่มี Mysql daatabase ฉันต้องการตั้งค่าการสำรองข้อมูลอัตโนมัติของฐานข้อมูลนี้ในตอนกลางคืนบนเซิร์ฟเวอร์อื่น (ตัวอย่างเช่น)
ฉันไม่รู้ว่าอะไรจะเป็นเครื่องมือที่ดีที่สุดสำหรับสิ่งนั้น หากใครมีคำแนะนำ ...
ขอบคุณล่วงหน้า.
คำตอบ:
วิธีที่ง่ายที่สุดในการทำให้งานนี้เป็นแบบอัตโนมัติคือการรวมกันระหว่าง MySQL Dumps และ cronjob คุณสามารถค้นหาข้อมูลจำนวนมากได้จากหัวข้อนี้ในเว็บไซต์นี้และเว็บไซต์อื่น ๆ แต่เพื่อความสมบูรณ์:
สร้างไฟล์ mysqldump.sh
ซึ่งจะมีคำสั่ง mysql dump เราจะกำหนดเวลาในงาน cron (แทนที่ผู้ใช้รหัสผ่านและเส้นทางเพื่อให้ตรงกับสภาพแวดล้อมของคุณ):
mysqldump -u root -p<mysql_root_password> --all-databases | gzip > /desired/backup/folder/mysqldb_`date +%F`.sql.gz
แก้ไข:หากคุณต้องการให้สคริปต์จัดเก็บข้อมูลสำรองในสถานที่ห่างไกลเพียงติดตั้งอุปกรณ์ที่เกี่ยวข้องหรือแชร์และใช้เส้นทางเชื่อมต่อในสคริปต์
ทดสอบสคริปต์
ตรวจสอบให้แน่ใจว่าสคริปต์มีสิทธิ์ดำเนินการ:
chmod +x /path/to/mysqldump.sh
รันสคริปต์:
sh /path/to/mysqldump.sh
และทดสอบว่าทำงานอย่างถูกต้อง (ไฟล์สำรองจะถูกสร้างในโฟลเดอร์สำรองที่ระบุ)
สร้างและกำหนดเวลางาน cron ใหม่
ในประเภทพรอมต์คำสั่ง
sudo crontab -e
และเพิ่มบรรทัดต่อไปนี้ที่ด้านล่างของไฟล์:
30 23 * * * /path/to/mysqldump.sh
สิ่งนี้จะรันสคริปต์ทุกวันเวลา 23:30 น.
ขยายสคริปต์ง่ายๆนี้
มีหลายสิ่งที่คุณสามารถทำได้เพื่อปรับปรุงวิธีการสำรองข้อมูลนี้:
ดังนั้นอย่าจบที่นี่และทดลอง! :-)
ใช้เครื่องมือสำรองข้อมูลหรือบริการสำรองข้อมูลบนคลาวด์
แม้ว่าวิธีการข้างต้นเป็นวิธีที่ง่ายที่สุดและสามารถขยายให้เหมาะกับความต้องการเฉพาะของคุณได้ แต่ก็มีค่าที่ควรกล่าวถึงว่ามีทางเลือกอื่น:
โปรดจำไว้ว่าฉันไม่ได้เกี่ยวข้องกับวิธีการแก้ไขปัญหาและบริการใด ๆ ที่กล่าวถึงข้างต้นและฉันใช้รายการเหล่านี้เพื่อการอ้างอิงเท่านั้นดังนั้นคุณต้องรับความเสี่ยงด้วยตนเอง
ลิงค์ที่มีประโยชน์ / การอ้างอิง:
Cron -> https://en.wikipedia.org/wiki/Cron
การถ่ายโอนข้อมูลของ MySQL -> https://dev.mysql.com/doc/refman/5.7/en/mysqldump.html
sudo crontab -e
และอย่าลืมทำการเรียกใช้สคริปต์:chmod +x /path/to/mysqldump.sh
date +%F
- ซึ่งจะเลือกปี + เดือน + วันที่ที่เหมาะสมกับสถานที่ของผู้ใช้โดยอัตโนมัติ (ตัวอย่างเช่นฉันจะได้รับYYYY-MM-DD
)