gh-ost
เป็นโซลูชันการโยกย้ายสคีมาออนไลน์ที่ไม่มีการกระตุ้นสำหรับ MySQL มันสามารถทดสอบได้และให้การหยุดชั่วคราว, การควบคุม/การกำหนดค่าแบบไดนามิก, การตรวจสอบและสิทธิประโยชน์ในการดำเนินงานมากมาย
gh-ost
ผลิตภาระงานเบา ๆ บนต้นแบบตลอดการย้ายถิ่นโดยแยกออกจากภาระงานที่มีอยู่บนตารางที่อพยพ
มันได้รับการออกแบบตามประสบการณ์หลายปีด้วยโซลูชั่นที่มีอยู่และเปลี่ยนแปลงกระบวนทัศน์ของการอพยพของตาราง
เครื่องมือเปลี่ยนออนไลน์แบบออนไลน์ที่มีอยู่ทั้งหมดทำงานในลักษณะเดียวกัน: พวกเขาสร้างตาราง ผี ในภาพของตารางดั้งเดิมของคุณอพยพตารางนั้นในขณะที่ว่างเปล่าช้าและเพิ่มข้อมูลจากตารางดั้งเดิมของคุณไปยังตาราง ผี ในขณะเดียวกันการเผยแพร่อย่างต่อเนื่อง ( INSERT
ใด ๆ DELETE
UPDATE
ที่ใช้กับตารางของคุณ) ไปยังตาราง ผี ในที่สุดในเวลาที่เหมาะสมพวกเขาแทนที่ตารางดั้งเดิมของคุณด้วยตาราง ผี
gh-ost
ใช้รูปแบบเดียวกัน อย่างไรก็ตามมันแตกต่างจากเครื่องมือที่มีอยู่ทั้งหมดโดยไม่ใช้ทริกเกอร์ เราได้รับการยอมรับว่าทริกเกอร์เป็นแหล่งที่มาของข้อ จำกัด และความเสี่ยงมากมาย
แต่ gh-ost
ใช้สตรีมบันทึกไบนารีเพื่อจับการเปลี่ยนแปลงตารางและใช้กับอะซิงโครนัสบนตาราง ผี gh-ost
ใช้เวลาทำงานบางอย่างที่เครื่องมืออื่น ๆ ออกไปเพื่อให้ฐานข้อมูลดำเนินการ เป็นผลให้ gh-ost
มีการควบคุมกระบวนการโยกย้ายมากขึ้น สามารถระงับได้อย่างแท้จริง สามารถแยกโหลดการเขียนของการย้ายถิ่นจากภาระงานของมาสเตอร์ได้อย่างแท้จริง
นอกจากนี้ยังมีสิทธิพิเศษในการดำเนินงานมากมายที่ทำให้ปลอดภัยกว่าน่าเชื่อถือและสนุกกับการใช้งาน
gh-ost
โดยการทดสอบในแบบจำลอง gh-ost
จะออกโฟลว์เดียวกันกับที่จะมีในอาจารย์เพื่อย้ายตารางบนแบบจำลองโดยไม่ต้องเปลี่ยนตารางต้นฉบับออกจากแบบจำลองด้วยสองตารางที่คุณสามารถเปรียบเทียบและตอบสนองตัวเองว่าเครื่องมือทำงานได้อย่างถูกต้อง นี่คือวิธีที่เราทดสอบ gh-ost
ในการผลิตอย่างต่อเนื่องgh-ost
มันสิ้นสุดลงอย่างแท้จริงเขียนเกี่ยวกับ Master: ไม่มีสำเนาแถวและไม่มีการประมวลผลเหตุการณ์ต่อเนื่อง โดยการควบคุมปริมาณgh-ost
ได้ใหม่ได้แม้ในขณะที่การโยกย้ายยังคงทำงานอยู่ คุณสามารถบังคับให้เริ่มการควบคุมปริมาณgh-ost
gh-ost
ฟังบนซ็อกเก็ต Unix หรือ TCPgh-ost
สามารถสั่งให้เลื่อนไปได้ว่าอะไรคือขั้นตอนที่สำคัญที่สุดคือการแลกเปลี่ยนตารางจนกว่าจะถึงเวลาที่คุณพร้อมอย่างสะดวกสบาย ไม่จำเป็นต้องกังวลเกี่ยวกับการทางพิเศษแห่งประเทศไทยที่อยู่นอกเวลาทำการgh-ost
กับสภาพแวดล้อมเฉพาะของคุณได้โปรดดูเอกสารสำหรับข้อมูลเพิ่มเติม ไม่จริงอ่านเอกสาร
Cheatsheet มีทุกอย่าง คุณอาจสนใจที่จะเรียกใช้ gh-ost
ในโหมดต่างๆ:
gh-ost
gh-ost
ชอบอดีต)gh-ost
เคล็ดลับของเรา:
--test-on-replica
สองสามครั้งแรก ยังดีกว่าทำให้มันต่อเนื่อง เรามีแบบจำลองหลายครั้งที่เราย้ำตารางการผลิตทั้งหมดของเราโดยการโยกย้ายพวกเขาทีละคนตรวจสอบผลลัพธ์การตรวจสอบการย้ายถิ่นเป็นสิ่งที่ดี--execute
เคล็ดลับเพิ่มเติม:
--exact-rowcount
สำหรับการบ่งชี้ความคืบหน้าอย่างแม่นยำ--postpone-cut-over-flag-file
เพื่อควบคุมเวลาตัดเวลาดูอีกด้วย:
gh-ost
บน AWS RDSgh-ost
บนฐานข้อมูล Azure สำหรับ MySQL เดิมทีสิ่งนี้ได้รับการขนานนามว่า gh-osc
: GitHub Online Schema Change ในไลค์ของ Facebook Online Schema Change และ Pt-Online-Schema-Change
แต่แล้วการกลายพันธุ์ทางพันธุกรรมที่หายากก็เกิดขึ้นและ c
เปลี่ยนเป็น t
และนั่นก็ส่งเราไปสู่เส้นทางของการพยายามหาคำย่อใหม่ gh-ost
(ออกเสียง: ผี ) หมายถึงสคีมาออนไลน์ของ GitHub Transmogrifier/Translator/Transformer/Transfigurator
gh-ost
ได้รับใบอนุญาตภายใต้ใบอนุญาต MIT
gh-ost
ใช้ห้องสมุดบุคคลที่สามแต่ละแห่งมีใบอนุญาตของตนเอง พบได้ที่นี่
gh-ost
ได้รับการปล่อยตัวในสถานะที่มั่นคง แต่มีระยะทางที่จะไป เราเปิดรับคำขอดึง โปรดพูดคุยเกี่ยวกับความตั้งใจของคุณก่อนผ่านปัญหา
เราพัฒนา gh-ost
ที่ GitHub และเพื่อชุมชน เราอาจมีลำดับความสำคัญที่แตกต่างจากคนอื่น ๆ ในบางครั้งเราอาจแนะนำให้มีส่วนร่วมที่ไม่ได้อยู่ในแผนงานทันทีของเรา แต่อาจดึงดูดผู้อื่นได้
โปรดดูการเข้ารหัส GH-OS สำหรับคำแนะนำในการเริ่มต้นการพัฒนาด้วย GH-OST
gh-ost
ตอนนี้เป็น GA และมีเสถียรภาพ
gh-ost
มีอยู่ในรูปแบบไบนารีสำหรับ Linux และ Mac OS/X
ดาวน์โหลดรุ่นล่าสุดที่นี่
gh-ost
เป็นโครงการ GO; มันถูกสร้างขึ้นด้วย GO 1.15
ขึ้นไป เพื่อสร้างด้วยตัวเองใช้:
./bin/gh-ost
binarytar.gz
สิ่งประดิษฐ์ใน /tmp/gh-ost-release
โดยทั่วไปแล้วสาขา master
มีเสถียรภาพ แต่จะใช้เฉพาะการผลิตในการผลิต
gh-ost
ได้รับการออกแบบเขียนตรวจสอบและทดสอบโดยทีมงานโครงสร้างพื้นฐานฐานข้อมูลที่ GitHub: