Linux – Hochverfügbarkeits-MHA für MySQL

Inhaltsverzeichnis

I. Übersicht

1. Konzept

2. Zusammensetzung

3. Eigenschaften

4. Funktionsprinzip

2. Fall

3. Erstellen Sie MHA

1. Grundlegende Umgebung

2. Passwortfreie SSH-Anmeldung

3. Master-Slave-Replikation

Meister

Sklave1

4. MHA-Installation

1. Umwelt

2. Knoten installieren

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

Supongo que te gusta

Origin blog.csdn.net/a872182042/article/details/132305645
Recomendado
Clasificación