เมื่อทำการพัฒนา ฉันจำเป็นต้องซิงโครไนซ์ฐานข้อมูล MySQL ทั้งสองระบบมีการติดตั้งเหมือนกัน ทั้งสองระบบคือ FreeBSD5.4 ติดตั้ง Apache 2.0.55 และ PHP 4.4.0 แล้ว MySQL เวอร์ชัน 4.1.15 ซึ่งเป็นเวอร์ชันล่าสุด .
1. ติดตั้งและกำหนดค่า
เซิร์ฟเวอร์สองตัว ติดตั้ง MySQL แยกต่างหากและติดตั้งในไดเร็กทอรี /usr/local/MySQL (ขั้นตอนการติดตั้งจะถูกละเว้น โปรดดูเอกสารที่เกี่ยวข้อง) .0.2 ตามลำดับ เราใช้ 192.168.0.1 เป็นฐานข้อมูลหลักและ 192.168.0.2 เป็นเซิร์ฟเวอร์ทาส เราใช้การซิงโครไนซ์ทางเดียว นั่นคือข้อมูลของต้นแบบคือข้อมูลของต้นแบบ จากนั้นทาสจะไปยังต้นแบบเพื่อ ประสานข้อมูลกลับ
การกำหนดค่าของเซิร์ฟเวอร์ทั้งสองเหมือนกัน มาคัดลอกไฟล์การกำหนดค่าหลักกัน ไฟล์การกำหนดค่าเริ่มต้นอยู่ในไดเร็กทอรี /usr/local/MySQL/share/MySQL ซึ่งรวมถึง my-large.cnf, my-medium.cnf my -small.cnf และนักเขียนคนอื่นๆ เราแค่ทดสอบ เพียงใช้ my-medium.cnf หลังจากติดตั้ง MySQL แล้ว ไฟล์การกำหนดค่าเริ่มต้นจะถูกระบุในไดเรกทอรีการจัดเก็บฐานข้อมูล เราใช้ 4.1.X ดังนั้นไฟล์การกำหนดค่าควรอยู่ในไดเร็กทอรี /usr/local/MySQL/var ดังนั้นให้คัดลอกไฟล์การกำหนดค่าไปที่นั่น
cp /usr/local/MySQL/share/MySQL/my-medium.cnf /usr/local/MySQL/var/my.cnf
เซิร์ฟเวอร์ทั้งสองดำเนินการคัดลอกไฟล์การกำหนดค่าเดียวกัน
2. กำหนดค่าเซิร์ฟเวอร์หลัก
เราจำเป็นต้องกำหนดค่า 192.168.0.1 เป็นเซิร์ฟเวอร์ MySQL หลัก (ต้นแบบ) จากนั้นเราจะต้องพิจารณาว่าฐานข้อมูลใดที่เราจำเป็นต้องซิงโครไนซ์และผู้ใช้รายใดที่จะใช้สำหรับการซิงโครไนซ์ ผู้ใช้รูทสำหรับการซิงโครไนซ์ที่นี่ และต้องซิงโครไนซ์ฐานข้อมูล abc เท่านั้น
เปิดไฟล์การกำหนดค่า:
vi /usr/local/MySQL/var/my.cnf
ค้นหาข้อมูลนี้:
# รหัสเฉพาะที่ต้องการระหว่าง 1 ถึง 2^32 - 1# มีค่าเริ่มต้นเป็น 1 หากไม่ได้ตั้งค่าโฮสต์หลัก# แต่จะไม่ทำงานเป็นรหัสหลักหากละเว้นเซิร์ฟเวอร์-id = 1 //1 เป็นรหัสหลัก, 2 เป็นรหัสสำรอง
เพิ่มสองบรรทัด:
sql-bin-update-same // แบบฟอร์มการซิงโครไนซ์ binlog-do-db = abc // ฐานข้อมูลที่จะซิงโครไนซ์
รีสตาร์ทเซิร์ฟเวอร์ MySQL ที่ 192.168.0.1:
/usr/local/MySQL/bin/MySQLadmin ปิดระบบ /usr/local/MySQL/bin/MySQLd_safe --user=MySQL &
3. กำหนดค่าเซิร์ฟเวอร์ทาส เซิร์ฟเวอร์
ทาสของเราดำเนินการซิงโครไนซ์ข้อมูลกลับไปยังเซิร์ฟเวอร์หลักเป็นหลัก
vi /usr/local/MySQL/var/my.cnf
ค้นหาข้อมูลที่คล้ายกันด้านล่าง:
# รหัสเฉพาะที่ต้องการระหว่าง 1 ถึง 2^32 - 1# ค่าเริ่มต้นเป็น 1 หากไม่ได้ตั้งค่าโฮสต์หลัก# แต่จะไม่ทำงานเป็นรหัสหลักหากละเว้นเซิร์ฟเวอร์-id = 1
เปลี่ยน server-id ด้านบนเป็น 2 และเพิ่มข้อมูล:
server-id = 2 // MySQL นี้เป็นเซิร์ฟเวอร์ทาส master-host = 192.168.0.1 // IP ของเซิร์ฟเวอร์หลัก master-user = root // ผู้ใช้ที่เชื่อมต่อกับเซิร์ฟเวอร์หลัก master-password = '' / / รหัสผ่านสำหรับการเชื่อมต่อกับเซิร์ฟเวอร์หลัก master -port = 3306 // เชื่อมต่อพอร์ต master-connect-retry = 10 // จำนวนการลองใหม่ซ้ำ-do-db = abc // ฐานข้อมูลที่จะซิงโครไนซ์ log-slave-updates // แบบฟอร์มการซิงโครไนซ์
รีสตาร์ทเซิร์ฟเวอร์ MySQL ที่ 192.168.0.2:
/usr/local/MySQL/bin/MySQLadmin ปิดระบบ /usr/local/MySQL/bin/MySQLd_safe --user=MySQL &
4. เพื่อทดสอบการติดตั้ง
ก่อนอื่นให้ตรวจสอบบันทึกโฮสต์ของทาส:
cat /usr/local/MySQL/var/xxxxx_err (xxx คือชื่อโฮสต์)
ตรวจสอบว่าการเชื่อมต่อเป็นปกติหรือไม่ หากคุณเห็นข้อความเช่นนี้ แสดงว่าคุณสำเร็จแล้ว
051031 11:42:40 MySQLd beginning051031 11:42:41 InnoDB: เริ่มต้น; หมายเลขลำดับบันทึก 0 43634/usr/local/MySQL/libexec/MySQLd: พร้อมสำหรับการเชื่อมต่อเวอร์ชัน: ซ็อกเก็ต '4.1.15-log': '/ พอร์ต tmp/MySQL.sock': 3306 การกระจายแหล่งที่มา 051031 11:42:41 [หมายเหตุ] เธรด Slave SQL เริ่มต้นได้ เริ่มต้นการจำลองแบบในบันทึก 'FIRST' ที่ตำแหน่ง 0 บันทึกการถ่ายทอด './new4-relay-bin.000001' ตำแหน่ง: 4051031 11:43:21 [หมายเหตุ] เธรด Slave I/O: เชื่อมต่อกับต้นแบบ '[email protected]:3306' การจำลองเริ่มต้นในบันทึก 'FIRST' ที่ตำแหน่ง 4
ดูข้อมูลเกี่ยวกับมาสเตอร์
/usr/local/MySQL/bin/MySQL -u รูท
ดูสถานะหลัก:
MySQL> แสดงสถานะหลัก;
ตรวจสอบข้อมูลกระบวนการ MySQL ภายใต้ Master:
MySQL> แสดงรายการกระบวนการ;
ดูข้อมูลเกี่ยวกับทาส:
/usr/local/MySQL/bin/MySQL -u รูท
ดูสถานะทาส:
MySQL> แสดงสถานะทาส;
ตรวจสอบข้อมูลกระบวนการ MySQL ภายใต้ทาส:
MySQL> แสดงรายการกระบวนการ;
จากนั้นคุณสามารถสร้างโครงสร้างตารางในไลบรารี abc ของต้นแบบและแทรกข้อมูล จากนั้นตรวจสอบว่าทาสได้ซิงโครไนซ์ข้อมูลหรือไม่ และคุณสามารถตรวจสอบได้ว่าการตั้งค่าสำเร็จหรือไม่
สุดท้ายนี้ หากคุณสนใจ คุณสามารถศึกษาการสำรองข้อมูลแบบดับเบิลคลิกแบบ hot หรือการใช้งานการซิงโครไนซ์ของต้นแบบหนึ่งตัวและทาสหลายตัวได้