O'Reilly Webcast: MySQL Replication - Audit, Test & Verify
สารบัญ:
- ข้อกำหนดเบื้องต้น
- การติดตั้ง MariaDB
- การกำหนดค่าเซิร์ฟเวอร์หลัก
- การกำหนดค่าเซิร์ฟเวอร์ Slave
- ทดสอบการกำหนดค่า
- ข้อสรุป
การเรพลิเคท MySQL เป็นกระบวนการคัดลอกข้อมูลจากเซิร์ฟเวอร์ฐานข้อมูลหนึ่งตัว (มาสเตอร์) ไปยังเซิร์ฟเวอร์หนึ่งตัวหรือมากกว่า (ทาส)
MySQL รองรับโทโพโลยีการจำลองแบบต่าง ๆ ด้วยโทโพโลยีโทโพโลยี / โทโพโลยีเป็นหนึ่งในโทโพโลยีที่รู้จักกันดีซึ่งเซิร์ฟเวอร์ฐานข้อมูลหนึ่งทำหน้าที่เป็นมาสเตอร์ในขณะที่หนึ่งหรือมากกว่าหนึ่งเซิร์ฟเวอร์ทำหน้าที่เป็นทาส โดยค่าเริ่มต้นการจำลองแบบไม่ตรงกันที่ต้นแบบส่งเหตุการณ์ที่อธิบายถึงการปรับเปลี่ยนฐานข้อมูลเพื่อเข้าสู่ระบบไบนารีและทาสขอกิจกรรมเมื่อพวกเขาพร้อม
ในคู่มือนี้เราจะแสดงวิธีการตั้งค่าการจำลองแบบ MariaDB Master / Slave ด้วยต้นแบบหนึ่งตัวและเซิร์ฟเวอร์ทาสหนึ่งตัวบน Debian 10 MariaDB เป็นการใช้งานเริ่มต้นของ MySQL ใน Debian ขั้นตอนเดียวกันนี้ใช้กับ Oracle MySQL
โทโพโลยีการจำลองแบบชนิดนี้เหมาะที่สุดสำหรับการปรับใช้แบบจำลองการอ่านสำหรับการปรับขนาดการอ่านการสำรองฐานข้อมูลสดสำหรับการกู้คืนจากความเสียหายและสำหรับงานการวิเคราะห์
ข้อกำหนดเบื้องต้น
เราสมมติว่าคุณมีเซิร์ฟเวอร์สองเครื่องที่ใช้ Debian 10 สื่อสารกันผ่านเครือข่ายส่วนตัว หากผู้ให้บริการโฮสต์ของคุณไม่สนับสนุนที่อยู่ IP ส่วนตัวคุณสามารถใช้ที่อยู่ IP สาธารณะและกำหนดค่าไฟร์วอลล์ของคุณเพื่ออนุญาตการรับส่งข้อมูลบนพอร์ต 3306 จากแหล่งที่เชื่อถือได้เท่านั้น
เซิร์ฟเวอร์ที่ใช้ในตัวอย่างนี้มีที่อยู่ IP ต่อไปนี้:
Master IP: 10.10.8.12 Slave IP: 10.10.8.164
การติดตั้ง MariaDB
ค่าเริ่มต้นที่เก็บ Debian 10 มี MariaDB เวอร์ชัน 10.3 ทางที่ดีที่สุดคือติดตั้ง MariaDB เวอร์ชั่นเดียวกันบนเซิร์ฟเวอร์ทั้งสองเพื่อหลีกเลี่ยงปัญหาที่อาจเกิดขึ้น
ติดตั้ง MariaDB ทั้งบนมาสเตอร์และสลาฟโดยออกคำสั่งต่อไปนี้:
sudo apt-get update
sudo apt-get install mariadb-server
การกำหนดค่าเซิร์ฟเวอร์หลัก
ขั้นตอนแรกคือการตั้งค่าเซิร์ฟเวอร์หลัก เราจะทำการเปลี่ยนแปลงต่อไปนี้:
- ตั้งค่าเซิร์ฟเวอร์ MariaDB ให้รับฟังบน IP ส่วนตัวตั้งรหัสเซิร์ฟเวอร์ที่ไม่ซ้ำการเปิดใช้งานการบันทึกไบนารี
เปิดไฟล์คอนฟิกูเรชัน MariaDB และไม่ใส่เครื่องหมายข้อคิดเห็นหรือตั้งค่าบรรทัดต่อไปนี้:
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
ต้นแบบ: /etc/mysql/mariadb.conf.d/50-server.cnf
bind-address = 10.10.8.12 server-id = 1 log_bin = /var/log/mysql/mysql-bin.log
เมื่อเสร็จแล้วให้บันทึกไฟล์และเริ่มบริการ MySQL ใหม่เพื่อให้การเปลี่ยนแปลงมีผล:
sudo systemctl restart mariadb
ขั้นตอนต่อไปคือการสร้างผู้ใช้การจำลองแบบใหม่ ล็อกอินเข้าสู่เซิร์ฟเวอร์ MariaDB ในฐานะผู้ใช้รูท:
sudo mysql
รันเคียวรี SQL ต่อไปนี้เพื่อสร้างผู้ใช้ที่ชื่อ
replica
และให้สิทธิ์
REPLICATION SLAVE
แก่ผู้ใช้:
CREATE USER 'replica'@'10.10.8.164' IDENTIFIED BY 'replica_password';
GRANT REPLICATION SLAVE ON *.* TO 'replica'@'10.10.8.164';
ตรวจสอบให้แน่ใจว่าคุณเปลี่ยน IP ด้วยที่อยู่ IP สลาฟของคุณ คุณสามารถตั้งชื่อผู้ใช้ตามที่คุณต้องการ
ในขณะที่อยู่ในพรอมต์ MySQL ให้ใช้คำสั่งต่อไปนี้เพื่อพิมพ์ชื่อไฟล์ไบนารีและตำแหน่ง
SHOW MASTER STATUS\G
*************************** 1. row *************************** File: mysql-bin.000001 Position: 328 Binlog_Do_DB: Binlog_Ignore_DB: 1 row in set (0.001 sec)
จดชื่อไฟล์ 'mysql-bin.000001' และตำแหน่ง '328' ค่าเหล่านี้มีความจำเป็นเมื่อกำหนดค่าเซิร์ฟเวอร์ทาสและอาจแตกต่างกันในเซิร์ฟเวอร์ของคุณ
การกำหนดค่าเซิร์ฟเวอร์ Slave
เราจะทำการเปลี่ยนแปลงบนทาสเซิร์ฟเวอร์เหมือนกับการเปลี่ยนแปลงบนมาสเตอร์:
- ตั้งค่าเซิร์ฟเวอร์ MySQL ให้ฟังบน IP ส่วนตัวตั้งรหัสเซิร์ฟเวอร์ที่ไม่ซ้ำกัน
เปิดไฟล์คอนฟิกูเรชัน MariaDB และแก้ไขบรรทัดต่อไปนี้:
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
ทาส: /etc/mysql/mariadb.conf.d/50-server.cnf
bind-address = 10.10.8.164 server-id = 2 log_bin = /var/log/mysql/mysql-bin.log
เริ่มบริการ MariaDB ใหม่:
sudo systemctl restart mariadb
ขั้นตอนต่อไปคือการกำหนดค่าพารามิเตอร์ที่เซิร์ฟเวอร์ทาสจะใช้เพื่อเชื่อมต่อกับเซิร์ฟเวอร์หลัก เข้าสู่ระบบเชลล์ MariaDB:
sudo mysql
เริ่มต้นด้วยการหยุดกระทู้ทาส:
STOP SLAVE;
เรียกใช้แบบสอบถามต่อไปนี้เพื่อกำหนดค่าการจำลองแบบ Master / Slave:
CHANGE MASTER TO
MASTER_HOST='10.10.8.12',
MASTER_USER='replica',
MASTER_PASSWORD='replica_password',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=328;
ตรวจสอบให้แน่ใจว่าคุณใช้ที่อยู่ IP ชื่อผู้ใช้และรหัสผ่านที่ถูกต้อง ชื่อไฟล์บันทึกและตำแหน่งจะต้องเหมือนกับค่าที่คุณได้รับจากเซิร์ฟเวอร์หลัก
เมื่อเสร็จแล้วเริ่มหัวข้อทาส
ทดสอบการกำหนดค่า
ณ จุดนี้คุณควรมีการตั้งค่าการจำลองแบบ Master / Slave ที่ใช้งานได้
หากต้องการตรวจสอบว่าทุกอย่างถูกตั้งค่าอย่างถูกต้องให้สร้างฐานข้อมูลใหม่บนเซิร์ฟเวอร์หลัก:
sudo mysql
CREATE DATABASE replicatest;
เข้าสู่ระบบไปยังเปลือก MySQL ทาส:
sudo mysql
รันคำสั่งต่อไปนี้เพื่อแสดงรายการฐานข้อมูลทั้งหมด:
SHOW DATABASES;
คุณจะสังเกตเห็นว่าฐานข้อมูลที่คุณสร้างขึ้นบนเซิร์ฟเวอร์หลักได้รับการจำลองแบบบนสลาฟ:
+--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | replicatest | | sys | +--------------------+ 5 rows in set (0.00 sec)
ข้อสรุป
ในบทช่วยสอนนี้เราได้แสดงให้คุณเห็นการสร้างแบบจำลอง MariaDB Master / Slave บน Debian 10
อย่าลังเลที่จะแสดงความคิดเห็นหากคุณมีคำถามใด ๆ
debian mysql mariadbSun's Mickos: ฉันสบายดีกับ MySQL ของ MySQL 5.1 Rant
ผู้บริหารอาวุโสของ Sun ในวันจันทร์ลดลงความขัดแย้งกับสาธารณะล่าสุด วิพากษ์วิจารณ์โดยผู้ร่วมก่อตั้ง MySQL Michael Johnson "Monty" Widenius ซึ่งเป็นนักพัฒนาซอฟต์แวร์ฐานข้อมูลแบบโอเพนซอร์สของ MySQL ได้ปล่อย MySQL 5.1 เวอร์ชั่นล่าสุดของ Sun Microsystems ด้วยโพสต์โพสต์โพสต์ trashing ของเขาเมื่อวันที่ 29 พฤศจิกายนที่ผ่านมา Widenius เตือนให้ผู้ใช้ "ระมัดระวังเกี่ยวกับ MySQL 5.1" เพราะ "มีข้อผิดพลาดร้ายแรงที่รู้จักและไม่รู้จักหลายอย่างในคุณสมบัติใหม่ ๆ ที่ยังไม่ได้กล่าวถึง ความเห็นของ Widenius เพิ่มขึ้นอ
MySQL เปิดตัว MySQL Update เป็น Oracle Deal Looms
MySQL 5.4 เพิ่มการปรับปรุงขีดความสามารถให้กับฐานข้อมูล open-source
SkySQL, MariaDB จะรวม
สอง บริษัท ที่ให้การสนับสนุนบุคคลที่สามสำหรับฐานข้อมูล MySQL แบบโอเพนซอร์สของออราเคิลรวมทั้ง MySQL Undershoot MariaDB ได้ประกาศให้ทราบ มีแผนจะควบรวมกิจการ