วิธีการตั้งค่าการจำลองแบบ MySQL ด้วยการหยุดทำงานน้อยที่สุด


12

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

คำตอบ:


15

ฉันถือว่าคุณใช้ InnoDB เป็นเครื่องมือเก็บข้อมูล ถ้าเป็นเช่นนั้นคุณจะต้องเปิดถังเข้าสู่ระบบ หากไม่ได้อยู่ตอนนี้คุณต้องรีสตาร์ท MySQL หลังจากแก้ไข my.cnf เป็นเพียงการหยุดทำงานหลังจากนั้นคุณสามารถถ่ายโอนฐานข้อมูลด้วยตำแหน่ง binlog โดยไม่บล็อกฐานข้อมูล:

mysqldump --skip-lock-tables --single-transaction --flush-logs --hex-blob --master-data=2 -A

จากการสำรองข้อมูลนี้ให้กู้คืนข้อมูลบนสลาฟ หลังจากนี้คุณสามารถทำตามบทช่วยสอนการจำลองแบบ MySQLและปล่อยให้ทาสติดตาม / เรียกใช้พร้อมกับหลัก


จะเกิดอะไรขึ้นหากบางโต๊ะไม่ใช้ Innodb และการสำรองข้อมูลข้างต้นจะยังคงใช้งานได้หรือไม่หากฉันใช้ - ฐานข้อมูลเพื่อถ่ายโอนชุดย่อยของฐานข้อมูลแทนที่จะเป็น -A
mathieu

หากบางตารางไม่ใช้ innodb การสำรองข้อมูลอาจไม่สอดคล้องกัน ดูที่นี่: stackoverflow.com/a/7461466/104398 ; การสำรองข้อมูลจะไม่มีฐานข้อมูลที่ข้ามไป หากคุณตั้งค่าการจำลองแบบตามการสำรองข้อมูลและตัวกรอง dont สิ่งที่ทำซ้ำ - การจำลองแบบของคุณจะแตกทันทีที่มีการดำเนินการบางอย่างในฐานข้อมูลที่ถูกละเว้น
pQd

ตกลงฉันแปลงตาราง myisam ที่เหลือเป็น Innodb และตรวจสอบให้แน่ใจว่ามีเพียงฐานข้อมูลที่ฉันต้องการเท่านั้นที่จะถูกจำลอง / สำรองข้อมูล
mathieu

3

เพื่อเริ่มต้นการจำลองแบบที่คุณต้องการสำเนาที่สอดคล้องกันของฐานข้อมูลของคุณบนทาส

ตารางของคุณคือ myisam หรือ innodb เพื่อค้นหาปัญหา

show table status

และดูที่คอลัมน์ 'เครื่องยนต์'

ถ้าตารางทั้งหมดเป็น Innodb มากกว่าที่คุณสามารถทำการตั้งค่าการหยุดทำงานเป็นศูนย์โดยใช้ mysqldump - ธุรกรรมเดี่ยวและนำเข้าที่ทาส

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

อีกทางหนึ่งหากคุณกำลังใช้ LVM (ตัวจัดการโลจิคัลวอลุ่ม) คุณสามารถหยุดฐานข้อมูลถ่าย LVM snapshot ได้ในไม่กี่วินาทีและเริ่ม db อีกครั้ง จากนั้นคุณสามารถทำสำเนาที่สอดคล้องกันจากภาพรวม


1

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

คุณสามารถถ่ายภาพดิสก์ได้หรือไม่ นั่นจะช่วยลดการหยุดทำงานหากคุณสามารถทำแบ็คอัพได้

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