ตัวเลือกไบนารีการซื้อขายคิดเห็น

This เป็นที่สองในชุดที่ผมจะทำใน MySQL Workbench สาธารณูปโภคจัดการ MySQL ด้วยสคริปงูหลาม. / คุณอาจต้องการที่จะอ่านครึ่งแรกของปีนี้โพสต์ / ato เข้าใจว่า MySQL Workbench สาธารณูปโภค / การทำงานและวิธีการที่คุณสามารถเข้าถึงสคริปต์สคริปต์เหล่านี้ถูกเขียนขึ้นโดยชัคเบลล์ (พนักงาน MySQL) และมีอยู่เป็นแบบสแตนด์อะโลนสคริปต์ (ดูบล็อก Chucks สำหรับข้อมูลเพิ่มเติม) หรือเป็นส่วนหนึ่งของ MySQL Workbench / a utility. I กำลังจะแสดงให้คุณวิธีหนึ่งที่คุณสามารถใช้สคริปต์ mysqlfailover ในการตรวจสอบการจำลองแบบสแต็คของคุณโดยอัตโนมัติไปยังฐานข้อมูล failover ทาสเมื่อต้นแบบของคุณล้มเหลวคุณจะต้องมีทั้งฐานข้อมูลหลักและทาสของคุณทำงานด้วย GTIDs เปิดใช้งานฉันจะให้ภาพรวมคร่าวๆของ GTIDs และวิธีการที่จะเริ่มต้นการทำแบบจำลองที่มีการเปิดใช้งาน GTIDคำอัตโนมัติ failover ในชื่อเรื่องอาจจะมีบิตทำให้เข้าใจผิดว่าเป็นกระบวนการล้มเหลวเป็นไปโดยอัตโนมัติ แต่มันจะใช้เวลาไม่กี่นาทีมันเป็นไปโดยอัตโนมัติ แต่ไม่ทันทีนอกจากนี้คุณอาจใช้สคริปต์ mysqlfailover บนหลักที่มีหลายทาส แต่ในตัวอย่างนี้ผมจะมีต้นแบบหนึ่งและเป็นหนึ่งใน slave. Lets เริ่มต้นด้วยการตรวจสอบอย่างรวดเร็วของ GTIDs หรือตัวบ่งชี้การทำธุรกรรมทั่วโลกGTIDs เป็นที่รู้จักใน MySQL 5.6.5ด้วย GTIDs, แต่ละรายการสามารถระบุและติดตามในขณะที่มันมีความมุ่งมั่นบนเซิร์ฟเวอร์ที่มาและนำมาใช้โดยทาสใด ๆ ซึ่งหมายความว่ามันไม่จำเป็นเมื่อใช้ GTIDs ในการอ้างถึงไฟล์บันทึกหรือตำแหน่งภายในไฟล์เหล่านั้นเมื่อเริ่มต้นทาสใหม่หรือความล้มเหลวมากกว่าที่จะเป็นหลักใหม่ที่ง่ายมากงานเหล่านี้. / ปริญญาตรีระบุการทำธุรกรรมทั่วโลก (GTID) เป็นตัวระบุที่ไม่ซ้ำกันสร้างขึ้นและเกี่ยวข้องกับการทำธุรกรรมแต่ละเมื่อมันมีความมุ่งมั่นในเซิร์ฟเวอร์ของแหล่งกำเนิด (ปริญญาโท)ระบุนี้จะไม่ซ้ำไม่เพียง แต่ไปยังเซิร์ฟเวอร์ที่มันเกิดขึ้น แต่จะไม่ซ้ำกันในเซิร์ฟเวอร์ทั้งหมดในการตั้งค่าการจำลองแบบที่กำหนดมี 1 ต่อ 1 แมประหว่างการทำธุรกรรมทั้งหมดและ GTIDs. The GTID คือมีรูปแบบนี้: GTID sourceid: transactionid กับ sourceid ระบุเซิร์ฟเวอร์ที่มีต้นกำเนิด (ในกรณีนี้เซิร์ฟเวอร์หลัก) และ transactionid เป็นจำนวนตามลำดับของการทำธุรกรรมที่มีความมุ่งมั่นบนเซิร์ฟเวอร์ที่มายกตัวอย่างเช่นที่ยี่สิบสาม (23) การทำธุรกรรมที่จะมุ่งมั่นสร้างสรรค์บนเซิร์ฟเวอร์ที่มี UUID 3E11FA47-71CA-11E1-9E33-C80AA9429562 / b นี้มี GTID: ตัวอย่างนี้ผมจะใช้ฐานข้อมูล MySQL ที่มีอยู่ส่งออกข้อมูลที่ติดตั้งรุ่นล่าสุดของ MySQL (ในกรณีนี้ 5.6.8) ให้เปิดใช้งาน GTIDs แล้วสาธิตสคริปต์ mysqlfailoverโพสต์นี้จะเป็นเวลานานหนึ่ง แต่ผมจะไม่พยายามที่จะไปลงรายละเอียดมากที่สุดเท่าที่ผมตามปกติผมเขียนนี้หลังจากที่ผมได้ทดสอบแล้วนี้เพื่อให้ผมเขียนจากความทรงจำและหวังว่าฉันเคยลืมขั้นตอนใด ๆนี่คือการตั้งค่าปัจจุบันของเราสำหรับเซิร์ฟเวอร์หลักและทาสของฉันฉันได้ทำงานรุ่น MySQL 5.5.27การส่งออกข้อมูลที่ฉันจะไปเพียงแค่ใช้ mysqldump แต่ฉันจะไม่ส่งออกใด ๆ ของตาราง MySQL (เช่น informationschema, MySQL, performanceschema และการทดสอบ)เมื่อฉันปรับรุ่นจากรุ่นใหญ่ใหม่ของ MySQL (เช่นจาก 5.5. 5.6) ผมชอบที่จะเริ่มต้นด้วยการติดตั้งใหม่เมื่อเทียบกับการพยายามที่จะปรับรุ่นจากรุ่นก่อนหน้า(สำหรับฐานข้อมูลขนาดใหญ่นี้อาจจะไม่เป็นที่มีประสิทธิภาพหรือแม้กระทั่งเป็นไปได้ แต่เนื่องจากการถ่ายโอนฐานข้อมูลของฉันเป็นเพียง 26 เมกะไบต์นี้จะทำงานสำหรับฉัน.) ตั้งแต่ฉันมีเพียงแค่ผู้ใช้ MySQL ไม่กี่ฉันให้คำสั่ง SQL ที่ฉันต้องสร้างใหม่อีกครั้งผู้ใช้เหล่านี้และสิทธิ์ของพวกเขาในแฟ้มข้อความเห็นได้ชัดว่านี้ไม่ได้เป็นวิธีที่ดีที่สุดและปลอดภัยที่สุดในการทำเช่นนี้ แต่นี้เป็นระบบที่บ้านของฉันจึงไม่สำคัญในกรณีของฉันถ้าคุณต้องการคุณก็สามารถอัพเกรด 5.5-5.6 และไม่ส่งออกข้อมูลและคำแนะนำสำหรับการอัพเกรดด้วยวิธีนี้อาจจะพบได้ผ่านการติดตั้งและการเชื่อมโยงนี้การอัพเกรด MySQL. You ต้องให้แน่ใจว่ามี arent อัพเดทฐานข้อมูลขณะที่คุณอยู่ทำ mysqldump ของคุณคุณสามารถล็อคฐานข้อมูลที่มีคำสั่งนี้จากพรอมต์ MySQL ตารางล้างด้วย READ LOCK แล้วปลดล็อคกับตารางปลดล็อคนี่คือคำสั่ง mysqldump ที่ผมใช้ผมเก็บไดเรกทอรีข้อมูลของฉันในสองฮาร์ดไดรฟ์ USB ภายนอกที่เราได้ตั้งขึ้นเป็นแบบ RAID ในแต่ละเครื่องผมใช้การเชื่อมโยงสัญลักษณ์จากไดเรกทอรีข้อมูล MySQL ของฉัน (/ usr / local / MySQL / ข้อมูล) จะชี้ไปยังไดเรกทอรีบน RAID กับคำสั่งนี้คำสั่ง ln - s / เล่ม / ServerRAID / mysqldata / ข้อมูล / usr / local / MySQL / ข้อมูล)ตั้งแต่ผมกำลังสร้างใหม่ติดตั้งฉันเพียงแค่เปลี่ยนชื่อไดเรกทอรีบนโจมตี mv ที่ / เล่ม / ServerRAID / mysqldata / ข้อมูล / เล่ม / ServerRAID / mysqldata / ข้อมูลเก่าเมื่อตอนที่ผมติดตั้ง MySQ มันจะสร้างไดเรกทอรีข้อมูลใหม่จากนั้นผมก็สามารถย้ายไดเรกทอรีข้อมูลใหม่ที่จะ RAID และสร้างการเชื่อมโยงนอกจากนี้คุณยังสามารถใช้วิธีนี้เพื่อย้ายไดเรกทอรีข้อมูลของคุณไปยังอีกภายในหรือ SSD drive. I แล้วเริ่ม MySQL, เข้าสู่ระบบสร้างผู้ใช้ของฉันและต้นแบบเสร็จเรียบร้อยแล้วและพร้อมที่จากนั้นผมก็ทำซ้ำขั้นตอนเดียวกันบนเครื่องทาสเนื่องจากไม่มีใครได้รับการปรับปรุงต้นแบบตั้งแต่การถ่ายโอนข้อมูลของฉันต้นแบบและทาสควรจะเป็นสำเนาถูกต้องของแต่ละอื่น ๆถ้าคุณกำลังใช้เครื่องเสมือนเมื่อคุณได้สร้างเครื่องเสมือนแรกที่จะนำมาใช้เป็นหลักของคุณคุณก็สามารถทำซ้ำ VM ที่จะเป็นทาสของเครื่องเพียงให้แน่ใจว่าการเปลี่ยนแปลงตัวเลือกเซิร์ฟเวอร์รหัสในไฟล์ config MySQL คุณ (my. cnf หรือ my. ini) จะเป็น number. It ที่แตกต่างกันเป็นเวลาที่จะเปิด GTID039s และจะได้รับการจำลองแบบเริ่มต้นหากคุณมีต้นแบบและทาสการกำหนดค่าแล้วคุณสามารถดูได้ที่ลิงค์นี้ในการเริ่มต้นการจำลองแบบโดยใช้ GTID039s dev. mysql / doc / RefMan / 5.6 / th / จำลอง gtids-howto. html. Binary เข้าสู่ระบบควรจะเปิดใช้งานบนต้นแบบและคุณยังจะต้องการที่จะช่วยให้การเข้าสู่ระบบไบนารีทาสทาสดังนั้นเมื่อมีการเลื่อนตำแหน่งให้เป็นหลักคุณสามารถทำให้เจ้านายเก่าทาสกับต้นแบบใหม่ดูที่ลิงค์นี้สำหรับตัวเลือกการเข้าสู่ระบบไบนารีและ variables.