Mysql5.5 Dual-Maschine-Hot-StandbyDurchführungInstallieren Sie zwei MysqlInstallieren Sie MySQL 5.5 sudo apt-get update apt-get install aptitude Eignungsinstallation MySQL-Server-5.5 oder sudo apt-cache search mariadb-server apt-get install -y mariadb-server-5.5 Deinstallieren sudo apt-get entfernen mysql-* dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P Konfigurieren von Berechtigungen vim /etc/mysql/my.cnf #Bind-Adresse = 127.0.0.1 mysql -u root -p gewähre alles auf *.* an root@'%', identifiziert durch 'root' mit Berechtigungsoption; Berechtigungen leeren; Konfigurieren Sie zwei MySQL-Server für die Master-Master-Synchronisierung Knoten 1 konfigurieren
Server-ID = 1 #Knoten-ID log_bin = mysql-bin.log #logbinlog_format = "ROW" #Logformat auto_increment_increment = 2 #ID-Intervall automatisch erhöhen (= Anzahl der Knoten, um ID-Konflikte zu vermeiden) auto_increment_offset = 1 #Startwert der Auto-Increment-ID (Knoten-ID) binlog_ignore_db=mysql #Nicht synchronisierte Datenbank binlog_ignore_db=information_schema binlog_ignore_db=Leistungsschema Starten Sie MySQL neu Dienst MySQL Neustart mysql -u root -p Notieren Sie die Binlog-Protokollposition von Knoten 1 Masterstatus anzeigen; mysql-bin.000001 245 mysql, Informationsschema, Leistungsschema Knoten 2 konfigurieren
Server-ID = 2 log_bin = mysql-bin.log relay_log = mysql-relay-bin.log #Relay-Protokoll log_slave_updates = ON #Nachdem das Relay-Protokoll ausgeführt wurde, werden die Änderungen im Protokoll aufgezeichnet read_only = 0 binlog_format = "ZEILE" auto_increment_increment = 2 auto_increment_offset = 2 binlog_ignore_db=mysql binlog_ignore_db=Informationsschema binlog_ignore_db=Leistungsschema replicate_ignore_db=mysql replicate_ignore_db=Informationsschema replicate_ignore_db=Leistungsschema Konfigurieren von Master und Slave mysql -u root -p ÄNDERN SIE MASTER IN MASTER_HOST='192.168.1.21', MASTER_USER='root', MASTER_PASSWORD='root', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=245; #Synchronisation starten, Slave starten #Überprüfen Sie den Synchronisierungsstatus Slave_IO_Running und Slave_SQL_Running, beide müssen Ja sein Slave-Status anzeigen; Notieren Sie die Binlog-Protokollposition von Knoten 2 Masterstatus anzeigen; mysql-bin.000001 1029 mysql, Informationsschema, Leistungsschema Konfigurieren Sie den Master (Knoten 1)
relay_log = mysql-relay-bin.log log_slave_updates = EIN schreibgeschützt = 0 replicate_ignore_db=mysql replicate_ignore_db=Informationsschema replicate_ignore_db=Leistungsschema Synchronisierung aktivieren mysql -u root -p ÄNDERN SIE MASTER IN MASTER_HOST='192.168.1.20', MASTER_USER='root', MASTER_PASSWORD='root', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=1029; #Synchronisation starten, Slave starten #Überprüfen Sie den Synchronisierungsstatus Slave_IO_Running und Slave_SQL_Running, beide müssen Ja sein Slave-Status anzeigen; Ausnahmebehandlung
Installieren und Konfigurieren von Keepalived Installieren Sie Keepalived #Hängt ab von sudo apt-get install -y libssl-dev sudo apt-get install -y openssl sudo apt-get install -y libpopt-dev sudo apt-get install -y libnl-dev libnl-3-dev libnl-genl-3.dev apt-get-Installations-Daemon apt-get installiere libc-dev apt-get installiere libnfnetlink-dev apt-get installiere libnl-genl-3.dev #installieren Sie apt-get install keepalived #Kompilieren und installieren Sie cd /usr/local wget https://www.keepalived.org/software/keepalived-2.2.2.tar.gz tar -zxvf keepalived-2.2.2.tar.gz mv keepalived-2.2.2 keepalived ./configure --prefix=/usr/local/keepalived sudo make und make install #Öffnen Sie das Protokoll sudo vim /etc/rsyslog.d/50-default.conf *.=Info;*.=Hinweis;*.=Warnung;\ auth,authpriv.none;\ cron,daemon.none;\ mail,news.none -/var/log/nachrichten sudo service rsyslog Neustart tail -f /var/log/messages sudo mkdir /etc/sysconfig sudo cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/ sudo cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/ sudo cp /usr/local/keepalived/sbin/keepalived /sbin/ sudo mkdir /etc/keepalived sudo cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/ Konfigurieren der Knoteninformationen Knoten 1 192.168.1.21
global_defs { router_id MYSQL_HA #Aktueller Knotenname} vrrp_instance VI_1 { Status BACKUP #Beide Konfigurationsknoten sind BACKUP Schnittstelle eth0 #Netzwerkschnittstelle zum Binden der virtuellen IP virtual_router_id 51 #VRRP-Gruppenname, die Einstellungen beider Knoten müssen identisch sein, um anzuzeigen, dass jeder Knoten zur selben VRRP-Gruppe gehört Priorität 101 #Priorität des Knotens, ändern Sie die Priorität des anderen Knotens auf eine niedrigere advert_int 1 #Sendeintervall für Multicast-Informationen, die Einstellungen beider Knoten müssen identisch sein nopreempt #Nicht preempten, nur auf Maschinen mit hoher Priorität einstellen und nicht auf Maschinen mit niedriger Priorität einstellen Authentifizierung { #Authentifizierungsinformationen festlegen, beide Knoten müssen konsistent sein auth_type PASS Auth_Passwort 123456 } virtual_ipaddress { #Geben Sie die virtuelle IP an, beide Knoten müssen auf die gleiche Adresse eingestellt sein: 192.168.1.111 } } virtual_server 192.168.1.111 3306 { #Konfiguration des virtuellen Linux-Servers (LVS) delay_loop 2 #alle 2 Sekunden den Status des realen Servers prüfen lb_algo wrr #LVS-Planungsalgorithmus, rr|wrr|lc|wlc|lblc|sh|dh lb_kind DR #LVS-Clustermodus, NAT|DR|TUN persistence_timeout 60 #Sitzungshaltezeit Protokoll TCP #Ist das verwendete Protokoll TCP oder UDP real_server 192.168.1.21 3306 { Gewicht 3 #Gewicht notify_down /usr/local/bin/mysql.sh #Skript, das ausgeführt wird, nachdem ein Dienstausfall erkannt wurde TCP_CHECK { connect_timeout 10 #Verbindungs-Timeout nb_get_retry 3 #Anzahl der Wiederverbindungen delay_before_retry 3 #Wiederverbindungsintervall connect_port 3306 #Integritätscheck-Port} } } Knoten 2 192.168.1.20
global_defs { router_id MYSQL_HA #Aktueller Knotenname} vrrp_instance VI_1 { Status BACKUP #Beide Konfigurationsknoten sind BACKUP Schnittstelle eth0 #Netzwerkschnittstelle zum Binden der virtuellen IP virtual_router_id 51 #VRRP-Gruppenname, die Einstellungen beider Knoten müssen identisch sein, um anzuzeigen, dass jeder Knoten zur selben VRRP-Gruppe gehört Priorität 100 #Knotenpriorität, die andere Priorität sollte niedriger sein advert_int 1 #Sendeintervall für Multicast-Informationen, die Einstellungen beider Knoten müssen identisch sein nopreempt #Nicht preempten, nur auf Maschinen mit hoher Priorität einstellen und nicht auf Maschinen mit niedriger Priorität einstellen Authentifizierung { #Authentifizierungsinformationen festlegen, beide Knoten müssen konsistent sein auth_type PASS Auth_Passwort 123456 } virtual_ipaddress { #Geben Sie die virtuelle IP an, beide Knoten müssen auf die gleiche Adresse eingestellt sein: 192.168.1.111 } } virtual_server 192.168.1.111 3306 { #Konfiguration des virtuellen Linux-Servers (LVS) delay_loop 2 #alle 2 Sekunden den Status des realen Servers prüfen lb_algo wrr #LVS-Planungsalgorithmus, rr|wrr|lc|wlc|lblc|sh|dh lb_kind DR #LVS-Clustermodus, NAT|DR|TUN persistence_timeout 60 #Sitzungshaltezeit Protokoll TCP #Ist das verwendete Protokoll TCP oder UDP real_server 192.168.1.20 3306 { Gewicht 3 #Gewicht notify_down /usr/local/bin/mysql.sh #Skript, das ausgeführt wird, nachdem ein Dienstausfall erkannt wurde TCP_CHECK { connect_timeout 10 #Verbindungs-Timeout nb_get_retry 3 #Anzahl der Wiederverbindungen delay_before_retry 3 #Wiederverbindungsintervall connect_port 3306 #Integritätscheck-Port} } } Schreiben von Skripten zur Ausnahmebehandlung
#!/bin/sh alles töten, am Leben bleiben Zuweisen von Berechtigungen
Dienst Keepalived Neustart Protokolle anzeigen tail -f /var/log/messages Virtuelle IP anzeigen IP-Adresse # oder IP a oder ifconfig #Der Masterknoten hat eine virtuelle IP eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast Status UP-Gruppe Standard qlen 1000 Link/Ether 52:54:9e:17:53:e5 brd ff:ff:ff:ff:ff:ff:ff inet 192.168.1.21/24 brd 192.168.1.255 Bereich global eth0 valid_lft für immer preferred_lft für immer inet 192.168.1.111/32 Bereich global eth0 valid_lft für immer preferred_lft für immer Beenden Sie den MySQL-Dienst auf dem Masterknoten. Dienst MySQL stoppen Protokollinformationen #Masterknoten 10. Aug 15:00:30 i-7jaope92 Keepalived_healthcheckers[4949]: TCP-Verbindung zu [192.168.1.20]:3306 fehlgeschlagen!!! 10. August 15:00:30 i-7jaope92 Keepalived_healthcheckers[4949]: Dienst [192.168.1.20]:3306 wird aus VS [192.168.1.111]:3306 entfernt 10. Aug. 15:00:30 i-7jaope92 Keepalived_healthcheckers[4949]: Ausführen von [/usr/local/bin/mysql.sh] für Dienst [192.168.1.20]:3306 in VS [192.168.1.111]:3306 10. August 15:00:30 i-7jaope92 Keepalived_healthcheckers[4949]: Verlorenes Quorum 1-0=1 > 0 für VS [192.168.1.111]:3306 10. August 15:00:30 i-7jaope92 Keepalived_vrrp[4950]: VRRP_Instance(VI_1) sendet 0 Priorität 10. August 15:00:30 i-7jaope92 Kernel: [100918.976041] IPVS: __ip_vs_del_service: eingeben #Slave-Knoten Aug 10 15:00:31 i-6gxo6kx7 Keepalived_vrrp[718]: VRRP_Instance(VI_1) Übergang in den MASTER-STATUS 10. Aug 15:00:32 i-6gxo6kx7 Keepalived_vrrp[718]: VRRP_Instance(VI_1) wechselt in den MASTER STATE Die virtuelle IP wandert vom Master-Knoten zum Slave-Knoten IP-Adresse eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast Status UP-Gruppe Standard qlen 1000 Link/Ether 52:54:9e:e7:26:5c brd ff:ff:ff:ff:ff:ff:ff inet 192.168.1.20/24 brd 192.168.1.255 Bereich global eth0 valid_lft für immer preferred_lft für immer inet 192.168.1.111/32 Bereich global eth0 valid_lft für immer preferred_lft für immer Mysql-Verbindungstest
mysql -h 192.168.1.111 -u root -p Dies ist das Ende dieses Artikels zum Erstellen von MySQL + Keepalived-Hochverfügbarkeit auf Ubuntu (Dual-Active Hot Standby). Weitere verwandte Inhalte zu MySQL + Keepalived-Hochverfügbarkeit finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: HTML-Framework_Powernode Java Academy
>>: Eine allgemeine Methode zur Implementierung eines unendlichen Textkarussells mit nativem CSS
Die nativen Komponenten des WeChat-Miniprogramms ...
Ich war in einer Besprechung, als ein Kollege anr...
In diesem Blog besprechen wir zehn Leistungseinst...
Was ist my.ini? my.ini ist die in der MySQL-Daten...
In diesem Artikel wird der spezifische Code von j...
In diesem Artikelbeispiel wird der spezifische Co...
Die Verwendung von „Computed“ in vue3. Da vue3 mi...
Vorwort Um den Unterschied zwischen dem Hinzufüge...
1. Feste Breite + adaptiv Erwarteter Effekt: fest...
Phrasenelemente wie <em></em> können d...
Vorwort Ich war kürzlich damit beschäftigt, ein K...
Wir alle wissen, dass Jmeter eine native Ergebnis...
Mehrere typische Werte von innodb_flush_method fs...
1. Umwelt Ubuntu 16.04 läuft auf einer virtuellen...
= Nur beim Setzen und Aktualisieren wirkt es wie ...