Inhaltsverzeichnis
2. Passwortfreie SSH-Anmeldung
3. Installieren Sie den Manager
I. Übersicht
1. Konzept
MHA (MasterHigh Availability) ist ein hervorragender Satz an Failover- und Master-Slave-Replikationssoftware in einer MySQL-Hochverfügbarkeitsumgebung.
Die Entstehung von MHA besteht darin, das Single-Point-Problem von MySQL zu lösen.
Während des MySQL-Failover-Prozesses kann MHA den Failover-Vorgang automatisch innerhalb von 0–30 Sekunden abschließen.
MHA kann während des Failover-Prozesses die größtmögliche Datenkonsistenz gewährleisten, um eine echte Hochverfügbarkeit zu erreichen.
2. Zusammensetzung
MHA-Manager-Verwaltungsknoten
Der MHA-Knotendatenknoten muss auf jedem Knoten installiert werden
3. Eigenschaften
Während des automatischen Failover-Prozesses versucht MHA, das Binärprotokoll vom ausgefallenen Hauptserver zu speichern, um sicherzustellen, dass es nicht zu einem größtmöglichen Datenverlust kommt
Durch die Verwendung einer halbsynchronen Replikation kann das Risiko eines Datenverlusts erheblich verringert werden. Wenn nur ein Slave das neueste Binärprotokoll erhalten hat, kann MHA das neueste Binärprotokoll auf alle anderen Slave-Server anwenden und so die Datenkonsistenz aller Knoten sicherstellen.
Derzeit unterstützt MHA eine Master- und mehrere Slave-Architektur mit mindestens drei Diensten, also einem Master und zwei Slaves.
4. Funktionsprinzip
Speichern Sie binäre Protokollereignisse (Binlog-Ereignisse) vom abgestürzten Master.
Identifizieren Sie das Relay-Protokoll (Relay-Protokoll), das die neuesten aktualisierten Slave-Protokoll-
Anwendungsunterschiede zu anderen Slave- Anwendungen enthält . Heraufstufen eines Slaves zu einem neuen Slave
aus den vom Master gespeicherten binären Protokollereignissen
Der Master ermöglicht es anderen Slaves, sich
zur Replikation mit dem neuen Master zu verbinden.
2. Fall
192.168.100.3 Manager (MHA) mgt
192.168.100.4 Master Master
192.168.100.5 Slave Slave1
192.168.100.6 Slave Slave2
3. Erstellen Sie MHA
1. Grundlegende Umgebung
Schalten Sie die Firewall aus
Stellen Sie den permissiven Selinux-Modus ein
Statische IP konfigurieren
192.168.100.3 Manager (MHA) mgt
192.168.100.4 Master Master
192.168.100.5 Slave Slave1
192.168.100.6 Slave Slave2
Hostnamen ändern
192.168.100.3 mgt
192.168.100.4 Master
192.168.100.5 Slave1
192.168.100.6 Slave2
2. Passwortfreie SSH-Anmeldung
192.168.100.3
ssh-keygen
für i in 4 5 6;do ssh-copy-id [email protected].$i;done
192.168.100.4
ssh-keygen
für i in 3 5 6;do ssh-copy-id [email protected].$i;done
192.168.100.5
ssh-keygen
für i in 4 3 6;do ssh-copy-id [email protected].$i;done
192.168.100.6
ssh-keygen
für i in 4 5 3;do ssh-copy-id [email protected].$i;done
Konfigurieren Sie Hosts auf allen Knoten
vim /etc/hosts
for i in 4 5 6 ;do scp/etc/hosts 192.168.100.$i:/etc;done
192.168.100.3 mgt
192.168.100.4 Master
192.168.100.5 Slave1
192.168.100.6 Slave2
Test
auf i in 3 4 5;do ssh 192.168.100.$i ;done (getestet auf 192.168.100.3)
für i in Master Slave1 Slave2;do ssh $i ;done
3. Master-Slave-Replikation
Meister
vim /etc/my.cnf
[mysqld]
server-id = 1
log-bin = master-bin
log-slave-updates = true
ystemctl restart mariadb
mysql -e „Grant Replication Slave auf *.* an ‚myslave‘@‘192.168.100.%‘, identifiziert durch ‚123.com‘;“
mysql -e „Gewähren Sie alle Berechtigungen für *.* an „mha“@„192.168.100.%“, identifiziert durch „123.com“;“
mysql -e „Gewähren Sie alle Berechtigungen für *.* an „mha“@„192.168.100.3“, identifiziert durch „123.com“;“
mysql -e „Gewähren Sie alle Berechtigungen für *.* an „mha“@„192.168.100.5“, identifiziert durch „123.com“;“
mysql -e „Gewähre alle Privilegien für *.* an ‚mha‘@‘192.168.100.6‘, identifiziert durch ‚123.com‘;“
mysql -e "Masterstatus anzeigen";
Sklave1
server-id=2
log-bin=master-bin
Relay-log=relay-log-bin
Relay-log-index=relay-log-bin.index
mysql -e „Grant Replication Slave auf *.* an ‚myslave‘@‘192.168.100.%‘, identifiziert durch ‚123.com‘;“
mysql -e „Gewähren Sie alle Berechtigungen für *.* an „mha“@„192.168.100.%“, identifiziert durch „123.com“;“
mysql -e „Gewähren Sie alle Berechtigungen für *.* an „mha“@„192.168.100.3“, identifiziert durch „123.com“;“
mysql -e „Gewähre alle Privilegien für *.* an ‚mha‘@‘192.168.100.4‘, identifiziert durch ‚123.com‘;“
mysql -e „Gewähre alle Privilegien für *.* an ‚mha‘@‘192.168.100.6‘, identifiziert durch ‚123.com‘;“
mysql -e "Master in master_host='192.168.100.4',master_user='myslave',master_password='123.com',master_log_file='master-bin.000003' ändern,mysql -e „Slave-Start“
Sklave2
server-id=3
log-bin=master-bin
Relay-log=relay-log-bin
Relay-log-index=relay-log-bin.index
mysql -e „Grant Replication Slave auf *.* an ‚myslave‘@‘192.168.100.%‘, identifiziert durch ‚123.com‘;“
mysql -e „Gewähren Sie alle Berechtigungen für *.* an „mha“@„192.168.100.%“, identifiziert durch „123.com“;“
mysql -e „Gewähren Sie alle Berechtigungen für *.* an „mha“@„192.168.100.3“, identifiziert durch „123.com“;“
mysql -e „Gewähre alle Privilegien für *.* an ‚mha‘@‘192.168.100.4‘, identifiziert durch ‚123.com‘;“
mysql -e „Gewähren Sie alle Berechtigungen für *.* an „mha“@„192.168.100.5“, identifiziert durch „123.com“;“
mysql -e "Master in master_host='192.168.100.4',master_user='myslave',master_password='123.com',master_log_file='master-bin.000003' ändern,mysql -e „Slave-Start“
4. MHA-Installation
1. Umwelt
Installieren Sie die Perl-Umgebung auf allen Knoten
yum install epel-release -y &&yum install epel-release -y(第二次是更新)
yum -y install perl-DBD-MySQL perl-ExtUtils-MakeMaker perl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager perl-Time-HiRes perl-CPAN
2. Knoten installieren
Knoten auf allen Knoten installieren (heruntergeladenes Quellcodepaket)
tar xf mha4mysql-node-0.57.tar.gz
cd mha4mysql-node-0.57
perl Makefile.PL && make && make install
cd /usr/local/bin (gefunden, dass die Datei existiert)
yum install epel-release -y && yum install epel-release -y && yum -y install perl-DBD-MySQL perl-ExtUtils-MakeMaker perl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager perl-Time-HiRes perl-CPAN&&tar xf mha4mysql-node-0.57.tar.gz && cd mha4mysql-node-0.57 && perl Makefile.PL && make && make install && cd /usr/local/bin && ls
3. Installieren Sie den Manager
tar xf mha4mysql-manager-0.57.tar.gz
cd /root/mha4mysql-manager-0.57
perl Makefile.PL && make && make install
cp sample/scripts/master_ip_failover /usr/local/bin/
cp sample/scripts/master_ip_online_change /usr /local/bin/cd /usr/local/bin
vim master_ip_failover
Skriptbeschreibung (master_ip_failover)
master_ip_failover Skript für die VIP-Verwaltung während der automatischen Umschaltung
master_ip_online_change Skript für die VIP-Verwaltung während der Online-Umschaltung
power_manager Skript zum Herunterfahren des Hosts nach Auftreten eines Fehlers
send_report Skript zum Senden eines Alarms nach einem Failover
Erstellung der Konfigurationsdatei
mkdir /etc/masterha
vim /etc/masterha/app1.cnf
mkdir /var/log/masterha/app1
Testen Sie MHA
masterha_check_ssh --conf=/etc/masterha/app1.cnf
masterha_check_repl --conf=/etc/masterha/app1.cnf
Start-up
nohup masterha_manager --conf=/etc/masterha/app1.cnf --remove_dead_master_conf --ignore_last_failover < /dev/null > /var/log/masterha/app1/manager.log 2>&1 &
Zu diesem Zeitpunkt zeigt der Master vip-ip nicht an
Nach dem Stoppen des Masters verfügt Slave1 über VIP-IP
Überprüfen Sie den Status von Slave1
Sklave2
Implementieren Sie MySQL-Hochverfügbarkeits-MHA