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
Dieser Artikel fasst die Wissenspunkte zu MySql-I...
Einfache Implementierung von Mysql-Anweisungen zu...
In Anwendungen mit Paging-Abfragen sind Abfragen,...
Durchscheinender Rand Ergebnis: Implementierungsc...
Inhaltsverzeichnis Was ist die Listener-Eigenscha...
Im vorherigen Artikel haben wir drei gängige Meth...
Inhaltsverzeichnis Kurze Einleitung 1. Überprüfen...
<br />Wenn die Seite <img src=""...
In diesem Artikelbeispiel wird der spezifische Co...
Ich habe mir vor kurzem ein Video von einem Auslä...
1. Ändern Sie die Firewall-Einstellungen und öffn...
In diesem Artikel wird anhand eines Beispiels ein...
Dieser Befehl ändert die Datentabelle ff_vod und ...
Inhaltsverzeichnis Was ist Rract? Hintergrund Rea...
Tomcat konfigurieren Installieren Sie zuerst Tomc...