สำรองเซิร์ฟเวอร์ MySQL


13

วิธีที่ดีที่สุดในการสำรองเซิร์ฟเวอร์ MySQL คืออะไร ฉันต้องการวิธีการที่ไม่ต้องการให้เซิร์ฟเวอร์ขัดข้อง เป็นสิ่งที่จำเป็นต้องใช้สำหรับการสำรองข้อมูลร้อนของ InnoDBหรือฉันสามารถใช้เครื่องมือสำรองข้อมูลที่มีให้ในเครื่องมือผู้ดูแลระบบ MySQL ข้อได้เปรียบข้อเสนอหนึ่งเหนือสิ่งอื่นใด?

คำตอบ:


12

เราใช้ mysqldump ซึ่งทำงานในขณะที่ MySQL กำลังทำงานอยู่ เราเริ่มใช้ mysqldump เพราะเป็นวิธีที่ง่ายที่สุดในการตั้งค่าเมื่อความต้องการของเรามีขนาดเล็กและดูเหมือนจะตอบสนองความต้องการเหล่านั้น ฐานข้อมูลของเราเติบโตขึ้นตั้งแต่นั้นมา แต่เรายังไม่เติบโต mysqldump ไม่ว่าจะเหมาะสมกับคุณคุณจะขึ้นอยู่กับขนาดของฐานข้อมูลของคุณโหลดปฏิบัติการตามปกติและอาจเป็นเรื่องอื่น ๆ


mysqldump ยอดเยี่ยม ซึ่งแตกต่างจากการทิ้งไบนารีของ RDMS อื่น ๆ โดยค่าเริ่มต้นไฟล์ mysqldump สร้างเป็นไฟล์ข้อความที่มีคำสั่ง sql เต็มเปี่ยม - ส่วนใหญ่สร้างคำสั่งตารางและ INSERTs สำหรับแถว ในฐานะที่เป็นไฟล์ข้อความธรรมดาพวกเขาสามารถจัดการบีบอัดหรือเข้ารหัสได้อย่างง่ายดาย
nedm

3
mysqldump หยุดพักเมื่อคุณมีฐานข้อมูลขนาดใหญ่และ / หรือเมื่อคุณพึ่งพา MyISAM เรามีฐานข้อมูล 400G บางตัวที่มีดัชนีจำนวนมากที่ต้องสร้างใหม่เมื่อนำเข้าดัมพ์เพื่อให้การกู้คืนจากการสำรองข้อมูลใช้เวลาเป็นวันต้นไม้ LVM snapshot ให้เวลาการกู้คืนที่ดีขึ้นมากเมื่อคุณเจริญเติบโต mysqldump
Nils-Anders Nøttseter

4

ลองดูที่ xtrabackup จาก percona - มันเป็นทางเลือกโอเพนซอร์สที่น่าสนใจสำหรับ mysqlhotcopy สำหรับฐานข้อมูล Innodb

คุณสามารถอ่านเพิ่มเติมได้ที่นี่


3

สามารถใช้mysqldumpได้ แต่จะไม่รับประกันชุดข้อมูลที่สอดคล้องเว้นแต่ว่าคุณจะล็อกตารางทั้งหมดในช่วงเวลาของการถ่ายโอนข้อมูล สิ่งนี้จะทำให้ฐานข้อมูลอยู่ในโหมดอ่านอย่างเดียวแต่จะทำให้มั่นใจได้ว่าการถ่ายโอนข้อมูลสอดคล้องกัน

คุณสามารถล็อคตารางด้วยคำสั่ง:

FLUSH TABLES WITH READ LOCK;

และเมื่อเสร็จแล้วคุณสามารถปลดล็อคด้วย:

UNLOCK TABLES;

7
mysqldump --single ธุรกรรมจะช่วยให้ภาพรวมที่สอดคล้องกัน
เดฟเชนีย์

5
- ธุรกรรมเดี่ยวใช้ได้เฉพาะเมื่อตารางทั้งหมดของคุณเป็น InnoDB ตาราง MyISAM ไม่รองรับธุรกรรม
Nils-Anders Nøttseter


2

การตั้งค่าการจำลองแบบ MySQL เป็นโบนัสคุณจะได้รับเซิร์ฟเวอร์เพื่อเรียกใช้งานการรายงานจำนวนมากและ mysqldump โดยไม่ส่งผลกระทบต่อฐานการผลิตหลักของคุณ


โปรดจำไว้ว่าการจำลองแบบอาจล่าช้าและไม่จำเป็นต้องทำการสำรองข้อมูล ณ จุดเวลาของต้นแบบของคุณ

2
การจำลองแบบไม่ใช่การสำรองข้อมูล หากคุณบังเอิญลบบางสิ่งในต้นแบบทาสจะลบมันด้วย ทาสนั้นใช้งาน mysqldump ได้ดีเพราะมันจะไม่ส่งผลกระทบต่อเซิร์ฟเวอร์ที่ใช้งานจริงของคุณ
Martijn Heemels


0

นอกจากนี้ยังมีเครื่องมือที่เรียกว่าmysqlhotcopyซึ่งฉันได้ดูในครั้งเดียวและคิดว่ามันมีสัญญามากมาย - ไม่เคยใช้มันเลย

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