ฉันพบเว็บไซต์จำนวนหนึ่งที่พูดถึงเรื่องนี้ แต่ฉันก็ยังขาดรายละเอียดที่สำคัญบางประการ ขั้นตอนทั่วไปคือ
- วิ่ง
FLUSH TABLES WITH READ LOCK
- ใช้สแน็ปช็อต ZFS
- วิ่ง
UNLOCK TABLES
แหล่งต่าง ๆ รายงานว่า InnoDB FLUSH
ซึ่งผมใช้ไม่ได้จริงเกียรติ คู่มือผู้ใช้ MySQL บันทึกว่ามีFLUSH TABLES...FOR EXPORT
ตัวแปรสำหรับใช้กับ InnoDB แต่ต้องระบุแต่ละตารางแยกต่างหากแทนที่จะสำรองฐานข้อมูลทั้งหมด ฉันต้องการหลีกเลี่ยงการระบุแต่ละตารางเป็นรายบุคคลเนื่องจากมีโอกาสดีที่รายการของตารางจะไม่ซิงค์กับตารางที่มีอยู่จริง
ปัญหาอื่น ๆ mysql -h"$HOST" -u"$USERNAME" -p"$PASSWORD" --execute="FLUSH TABLES WITH READ LOCK"
ที่ผมมีคือผมวางแผนที่จะทำสิ่งที่ชอบ อย่างไรก็ตามการทำเช่นนี้จะปลดล็อกทันทีหลังจากออกจากเซสชัน มันสมเหตุสมผล แต่ก็ค่อนข้างน่ารำคาญเพราะฉันต้องกดปุ่มล็อกการอ่านเมื่อฉันถ่ายรูป
แนวคิดอื่น ๆ ของฉันคือใช้แบ็คอัพที่ร้อนแรงโดยใช้เครื่องมืออย่าง Percona XtraBackup และการสแน็ปช็อตการสำรองข้อมูล แต่ฉันไม่ต้องการจ่ายค่าใช้จ่ายในการเขียนข้อมูลทั้งหมดของฉันไปยังตำแหน่งที่สองเพื่อถ่ายภาพ