ฉันจะสำรองฐานข้อมูลหลายกิกะไบต์ใน MySQL ได้อย่างไร คะแนนโบนัสสำหรับการคืนค่าที่เร็วขึ้น


11

ฉันมีฐานข้อมูล 4GB ใน MySQL ฉันจะสำรองข้อมูลได้อย่างไร นอกจากนี้มีวิธีที่ฉันสามารถเร่งกระบวนการกู้คืนในกรณีที่ฉันต้องการกู้คืนหรือไม่?

ตอนนี้ฉันใช้งาน cron ทุกคืนที่โทรmysqldumpเพื่อทิ้งทุกอย่างและเก็บสำรองข้อมูล 3 วัน

คำตอบ:


14

เรามีประมาณ 90 GB ใน MySQL ดังนั้นนี่คือคำแนะนำ:

  • คุณสามารถลองโทรต่อไปนี้: mysqldump -u USER -pPASS --single-transaction -Q --databases foo bar(ใช้เอกสารเพื่อตรวจสอบว่าสวิตช์เหล่านั้นทำงานให้คุณหรือไม่)
  • หากคุณใช้ตาราง MYISAM เท่านั้นให้คัดลอกฐานข้อมูลไปยังไดรฟ์อื่นและไม่ใช้งานอาจเป็นทางเลือก สิ่งนี้จะไม่ทำงานกับ INNODB เนื่องจากจะเก็บไฟล์เพิ่มเติม นอกจากนี้คุณต้องทดสอบอย่างระมัดระวัง
  • เปิดใช้งานบันทึกไบนารีและสำรองข้อมูล (นี่อาจเป็นรายการโปรดของฉัน!)
  • ตั้งค่าการจำลองแบบและทำการสำรองข้อมูลบนหนึ่งในทาสของคุณแล้วปล่อยให้มันไล่ตามส่วนที่เหลือ มันค่อนข้างดีเมื่อมันทำงาน แต่ปัญหาก็คือการทำให้มันทำงานได้ การทำซ้ำไม่สนุกกับ MySQL :(
  • ระบบไฟล์ของคุณรองรับสแน็ปช็อตหรือไม่ ถ้าเป็นเช่นนั้นนั่นเป็นโอกาสที่ดีในการใช้งาน
  • ใช้วิธีการแก้ปัญหาในเชิงพาณิชย์เช่นอแมนดา

10

วิธีที่ดีที่สุดคือไม่รบกวนการทำงานปกติ สำหรับระบบที่มีความน่าเชื่อถือสูงและป้องกันข้อผิดพลาดคุณมี 2 ฐานข้อมูลที่ถูกซิงค์และคุณสำรองข้อมูลสำรอง (เช่นบทความ Howtoforge นี้ )

มิฉะนั้นอ่านคู่มือ : ใช้ myseldump ตามที่คุณทำอยู่ในปัจจุบันหรือใช้สคริปต์ mysqlhotcopy (ใช้เหมือน mysqldump) หรือหยุด DB และคัดลอกไฟล์ frm, MID, MYI (โดยใช้ rsync)

ฉันคิดว่ากลไกการหยุด + คัดลอกไฟล์เป็นวิธีที่เร็วที่สุดที่คุณจะได้รับ


3

หากฐานข้อมูลบางส่วนของคุณเป็นแบบอ่านอย่างเดียวหรือแก้ไขเพียงครั้งเดียวก็หาไม่ง่ายเพราะ cron มีความถี่น้อย


2

หากต้องการตอบคำถามของคุณตัวเลือกExtended_insert ใช้งานได้ดีสำหรับฉัน หากคุณมีทรัพยากรเพียงพอสำหรับการกู้คืน Extended_insert จะแทรกข้อมูลจำนวนมากในการสืบค้นเดียวทำให้การกู้คืนเร็วขึ้น


1

คุณควรพิจารณา Xtrabackup ของPercona จริงๆ

สคริปต์ตัวตัดคำ "innobackupex" สามารถจัดการ MyISAM ได้ แต่สำหรับการสำรองข้อมูลแบบไม่ล็อค / ออนไลน์ตารางของคุณควรเป็น InnoDB

ไชโย

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.