MariaDB HA WIth MaxScale
สารบัญ:
- ข้อกำหนดเบื้องต้น
- ติดตั้ง MySQL
- กำหนดค่าเซิร์ฟเวอร์หลัก
- กำหนดค่าเซิร์ฟเวอร์ Slave
- ทดสอบการกำหนดค่า
- ข้อสรุป
การเรพลิเคท MySQL เป็นกระบวนการที่ช่วยให้ข้อมูลจากเซิร์ฟเวอร์ฐานข้อมูลหนึ่งสามารถคัดลอกไปยังเซิร์ฟเวอร์หนึ่งหรือมากกว่านั้นโดยอัตโนมัติ
MySQL รองรับโทโพโลยีการจำลองแบบจำนวนมากด้วยโทโพโลยีโทโพโลยี / Slave เป็นหนึ่งในโทโพโลยีที่รู้จักกันดีที่สุดซึ่งเซิร์ฟเวอร์ฐานข้อมูลหนึ่งทำหน้าที่เป็นมาสเตอร์ในขณะที่หนึ่งหรือมากกว่าหนึ่งเซิร์ฟเวอร์ทำหน้าที่เป็นทาส โดยค่าเริ่มต้นการจำลองแบบไม่ตรงกันที่ต้นแบบส่งเหตุการณ์ที่อธิบายถึงการปรับเปลี่ยนฐานข้อมูลเพื่อเข้าสู่ระบบไบนารีและทาสขอกิจกรรมเมื่อพวกเขาพร้อม
บทช่วยสอนนี้ครอบคลุมตัวอย่างพื้นฐานของการจำลองแบบ MySQL Master / Slave ด้วยหนึ่งต้นแบบและหนึ่งเซิร์ฟเวอร์ทาสบน Ubuntu 18.04 ขั้นตอนเดียวกันนี้ใช้กับ MariaDB
โทโพโลยีการจำลองแบบชนิดนี้เหมาะที่สุดสำหรับการปรับใช้แบบจำลองการอ่านสำหรับการปรับขนาดการอ่านการสำรองฐานข้อมูลสดสำหรับการกู้คืนจากความเสียหายและสำหรับงานการวิเคราะห์
ข้อกำหนดเบื้องต้น
ตัวอย่างนี้สมมติว่าคุณมีเซิร์ฟเวอร์สองเครื่องที่ใช้งาน Ubuntu 18.04 ซึ่งสามารถสื่อสารกันผ่านเครือข่ายส่วนตัว หากผู้ให้บริการโฮสต์ของคุณไม่ได้ให้ที่อยู่ IP ส่วนตัวคุณสามารถใช้ที่อยู่ IP สาธารณะและกำหนดค่าไฟร์วอลล์ของคุณเพื่ออนุญาตการรับส่งข้อมูลบนพอร์ต 3306 จากแหล่งที่เชื่อถือได้เท่านั้น
เซิร์ฟเวอร์ในตัวอย่างนี้มี IP ดังต่อไปนี้:
Master IP: 192.168.121.190 Slave IP: 192.168.121.236
ติดตั้ง MySQL
ค่าเริ่มต้นคลังเก็บ Ubuntu 18.04 ประกอบด้วย MySQL รุ่น 5.7 เพื่อหลีกเลี่ยงปัญหาใด ๆ ที่ดีที่สุดคือการติดตั้ง MySQL รุ่นเดียวกันบนเซิร์ฟเวอร์ทั้งสอง
ติดตั้ง MySQL บนเซิร์ฟเวอร์ Master:
sudo apt-get update
sudo apt-get install mysql-server
ติดตั้ง MySQL บนเซิร์ฟเวอร์ Slave โดยใช้คำสั่งเดียวกัน:
sudo apt-get update
sudo apt-get install mysql-server
กำหนดค่าเซิร์ฟเวอร์หลัก
ขั้นตอนแรกคือการกำหนดค่าเซิร์ฟเวอร์ MySQL หลัก เราจะทำการเปลี่ยนแปลงต่อไปนี้:
- ตั้งค่าเซิร์ฟเวอร์ MySQL ให้ฟังบน IP ส่วนตัวตั้งรหัสเซิร์ฟเวอร์ที่ไม่ซ้ำ.. เปิดใช้งานการบันทึกแบบไบนารี
ในการทำเช่นนั้นให้เปิดไฟล์คอนฟิกูเรชัน MySQL และไม่ใส่เครื่องหมายข้อคิดเห็นหรือตั้งค่าต่อไปนี้:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
ต้นแบบ: /etc/mysql/mysql.conf.d/mysqld.cnf
bind-address = 192.168.121.190 server-id = 1 log_bin = /var/log/mysql/mysql-bin.log
เมื่อเสร็จแล้วให้เริ่มบริการ MySQL เพื่อให้การเปลี่ยนแปลงมีผล:
sudo systemctl restart mysql
ขั้นตอนต่อไปคือการสร้างผู้ใช้การจำลองแบบใหม่ ล็อกอินเข้าสู่เซิร์ฟเวอร์ MySQL ในฐานะผู้ใช้รูทโดยพิมพ์:
sudo mysql
จากภายใน MySQL prompt ให้รันเคียวรี SQL ต่อไปนี้ที่จะสร้างผู้ใช้เร
replica
และให้สิทธิ์
REPLICATION SLAVE
แก่ผู้ใช้:
CREATE USER 'replica'@'192.168.121.236' IDENTIFIED BY 'replica_password';
GRANT REPLICATION SLAVE ON *.* TO 'replica'@'192.168.121.236';
ตรวจสอบให้แน่ใจว่าคุณเปลี่ยน IP ด้วยที่อยู่ IP สลาฟของคุณ คุณสามารถตั้งชื่อผู้ใช้ตามที่คุณต้องการ
ในขณะที่อยู่ในพรอมต์ MySQL ให้ใช้คำสั่งต่อไปนี้เพื่อพิมพ์ชื่อไฟล์ไบนารีและตำแหน่ง
SHOW MASTER STATUS\G
*************************** 1. row *************************** File: mysql-bin.000001 Position: 629 Binlog_Do_DB: Binlog_Ignore_DB: Executed_Gtid_Set: 1 row in set (0.00 sec)
จดชื่อไฟล์ 'mysql-bin.000001' และตำแหน่ง '629' คุณจะต้องมีค่าเหล่านี้เมื่อกำหนดค่าเซิร์ฟเวอร์ทาส ค่าเหล่านี้อาจแตกต่างกันไปในเซิร์ฟเวอร์ของคุณ
กำหนดค่าเซิร์ฟเวอร์ Slave
เช่นเดียวกับเซิร์ฟเวอร์หลักด้านบนเราจะทำการเปลี่ยนแปลงต่อไปนี้กับเซิร์ฟเวอร์ทาส:
- ตั้งค่าเซิร์ฟเวอร์ MySQL ให้ฟังบน IPSet ส่วนตัวเซิร์ฟเวอร์ที่ไม่ซ้ำ IDEnable การบันทึกแบบไบนารี
เปิดไฟล์คอนฟิกูเรชัน MySQL และแก้ไขบรรทัดต่อไปนี้:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
ทาส: /etc/mysql/mysql.conf.d/mysqld.cnf
bind-address = 192.168.121.236 server-id = 2 log_bin = /var/log/mysql/mysql-bin.log
เริ่มบริการ MySQL ใหม่:
sudo systemctl restart mysql
ขั้นตอนต่อไปคือการกำหนดค่าพารามิเตอร์ที่เซิร์ฟเวอร์ทาสจะใช้เพื่อเชื่อมต่อกับเซิร์ฟเวอร์หลัก เข้าสู่ระบบไปยังเปลือก MySQL:
sudo mysql
ขั้นแรกหยุดเธรดสลาฟ:
STOP SLAVE;
รันเคียวรีต่อไปนี้ที่จะตั้งค่า slave เพื่อทำซ้ำมาสเตอร์:
CHANGE MASTER TO
MASTER_HOST='192.168.121.190',
MASTER_USER='replica',
MASTER_PASSWORD='replica_password',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=629;
ตรวจสอบให้แน่ใจว่าคุณใช้ที่อยู่ 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)
ข้อสรุป
ในบทช่วยสอนนี้เราได้แสดงให้คุณเห็นว่าคุณทำการจำลองแบบ MySQL Master / Slave
อย่าลังเลที่จะแสดงความคิดเห็นหากคุณมีคำถามใด ๆ
ubuntu 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 เพิ่มขึ้นอ
วิธีการกำหนดค่า BIOS ของเครื่องพีซี
ในตอนที่ 7 เราจะจบซีรี่ส์ "Build a Great Media Editing PC" โดยแสดงวิธีตั้งค่า BIOS
วิธีการกำหนดค่า mysql master
การเรพลิเคท MySQL เป็นกระบวนการที่อนุญาตให้คุณคัดลอกข้อมูลจากเซิร์ฟเวอร์ฐานข้อมูลหนึ่งไปยังเซิร์ฟเวอร์หนึ่งเซิร์ฟเวอร์ขึ้นไปโดยอัตโนมัติ ในบทช่วยสอนนี้เราจะอธิบายวิธีตั้งค่าการจำลองแบบ MySQL Master / Slave ด้วยหนึ่งมาสเตอร์และสลาฟเซิร์ฟเวอร์หนึ่งรายการบน CentOS 7