Gtid + Mha + Binlog-Serverkonfiguration: 1: Testumgebung Betriebssystem: CentOS 6.5 192.168.1.21 mysql1 M1 2: Konfigurieren Sie die relevanten Parameter von /etc/my.cnf und konfigurieren Sie sie separat in jedem der drei Knoten binlog-format=ROW log-slave-updates=true gtid-mode=ein erzwingen-gtid-Konsistenz=true master-info-repository=TABELLE relay-log-info-repository=TABELLE Sync-Master-Info = 1 Slave-Parallelarbeiter = 2 Binlog-Prüfsumme=CRC32 Master-Verify-Prüfsumme = 1 Slave-SQL-Verify-Prüfsumme = 1 binlog-rows-query-log_events=1 Legen Sie das Root-Passwort fest und erstellen Sie einen Replikationsbenutzer: mysql> mysql verwenden; mysql> GEWÄHREN SIE ALLE PRIVILEGIEN FÜR *.* AN root@"%", IDENTIFIZIERT DURCH "oracle123"; mysql> Benutzer aktualisieren, Passwort festlegen = Passwort('oracle123'), wobei Benutzer='root'; mysql> Berechtigungen leeren; mysql> GRANT Replikations-Slave ON *.* TO 'repl'@'%' identifiziert durch 'oracle'; mysql> Berechtigungen leeren; 3: Konfigurieren Sie die Gtid-Replikation in mysql2 und mysql3 ÄNDERN SIE MASTER IN MASTER_HOST = '192.168.1.21', MASTER_PORT = 3306, MASTER_USER = "repl", MASTER_PASSWORD = "Oracle", MASTER_AUTO_POSITION = 1; Slave starten; mysql> Slave-Status anzeigen\G *************************** 1. Reihe *************************** Slave_IO_State: Wartet darauf, dass der Master ein Ereignis sendet Master_Host: 192.168.1.21 Master_Benutzer: repl Master_Port: 3306 Verbindungswiederholung: 60 Master_Log_File: mysql-bin.000003 Read_Master_Log_Pos: 524 Relay-Log-Datei:mysql-relay-bin.000002 Relay_Log_Pos: 734 Relay_Master_Log_File: mysql-bin.000003 Slave_IO_Running: Ja Slave_SQL_Running: Ja Replicate_Do_DB: ...... Master_SSL_Crlpfad: Abgerufen_Gtid_Set: 9ee7c7af-cbf3-11e5-bf75-000c2923e459:1-2 Ausgeführtes_Gtid_Set: 9ee7c7af-cbf3-11e5-bf75-000c2923e459:1-2 Auto_Position: 1 1 Zeile im Satz (0,00 Sek.) 4: Installieren Sie Mha U/min -Uvh epel-release-6-8.noarch.rpm SSH-Äquivalent konfigurieren: Auf allen Knoten ausführen ssh-keygen -t rsa ssh-copy-id -i /root/.ssh/id_rsa.pub root@mysql1 ssh-copy-id -i /root/.ssh/id_rsa.pub root@mysql2 ssh-copy-id -i /root/.ssh/id_rsa.pub root@mysql3 Testen Sie die SSH-Anmeldung auf 3 Knoten: ssh myqsl1 ssh myqsl2 ssh myqsl3 Binlog-Serverkonfiguration: in mysql3 mkdir -p /mysql/backup/binlog /usr/local/mysql/bin/mysqlbinlog -R --raw --host=192.168.1.20 --user='root' --password='oracle123' --stop-never mysql- bin.000003 & Die letzte Binlog-Datei wird ausgehend von dieser Binlog-Datei angegeben. Beachten Sie auch, dass der Binlog-Server ebenfalls beendet wird, wenn der MySQL-Prozess auf mysql1 beendet wird. Einige Pakete müssen zur Unterstützung über die Yum-Netzwerkquelle installiert werden. Wenn während der Installation Probleme auftreten, können Sie versuchen, die Yum-Quelle mit „yum update“ zu aktualisieren oder den Cache mit „yum clean all“ zu leeren. Installieren Sie mha4mysql-node auf jedem Knoten yum -y installiere perl-DBD-MySQL ncftp Installieren Sie mha-manager auf mysql3 yum installiere Perl yum installiere cpan yum installiere perl-Config-Tiny yum installiere Perl-Time-HiRes yum installiere Perl-Log-Dispatch yum installiere Perl-Parallel-ForkManager Wenn Sie perl-Log-Dispatch installieren, meldet das Installationspaket perl-Parallel-ForkManager einen Fehler: Sie müssen zuerst epel installieren (siehe https://fedoraproject.org/wiki/EPEL) rpm -Uvh mha4mysql-manager-0.56-0.el6.noarch.rpm 5: Mha in MySQL3 konfigurieren mkdir -p /etc/masterha/app1 vi /etc/masterha/app1.cnf [Serverstandard] Benutzer=root Passwort=oracle123 manager_workdir=/etc/masterha/app1 manager_log=/etc/masterha/app1/manager.log remote_workdir=/etc/masterha/app1 ssh_user=root repl_user=Erneuter repl_password=Oracle Ping-Intervall = 3 master_ip_failover_script=/etc/masterha/app1/master_ip_failover [Server1] Hostname = 192.168.1.21 #ssh_port=9999 master_binlog_dir=/mysql/logs check_repl_delay = 0 #Um zu verhindern, dass der Master ausfällt, tritt beim Umschalten auf den Slave eine Verzögerung auf, es kann jedoch nicht umgeschaltet werden candidates_master = 1 [Server2] Hostname = 192.168.1.22 #ssh_port=9999 master_binlog_dir=/mysql/logs Kandidat_Master = 1 [server3] Hostname = 192.168.1.23 #ssh_port=9999 master_binlog_dir=/mysql/logs kein_Master = 1 ignore_fail=1 #Wenn dieser Knoten ausfällt, ist MHA nicht verfügbar. Fügen Sie diesen Parameter hinzu, damit er auch bei einem Ausfall des Slaves verwendet werden kann [binlog1] #binlog-Server erfordert mysqlbinlog-Befehl hostname=192.168.1.23 master_binlog_dir=/mysql/backup/binlog #Speicherort des Binlogs lesen ignore_fail=1 kein_Master = 1 vi /etc/masterha/app1/master_ip_failover #!/usr/bin/env perl streng verwenden; Warnungen verwenden FATAL => 'alle'; verwenden Sie Getopt::Long; Mein $Befehl, $ssh_user, $orig_master_host, $orig_master_ip, $orig_master_port, $new_master_host, $new_master_ip, $new_master_port ); mein $vip = '192.168.1.20';#Virtuelle IP mein $gateway = '192.168.1.1'; #Gateway-IP meine $-Schnittstelle = "eth0"; mein $key = "1"; mein $ssh_start_vip = "/sbin/ifconfig $interface:$key $vip;/sbin/arping -I $interface -c 3 -s $vip $gateway >/dev/null 2>&1"; mein $ssh_stop_vip = "/sbin/ifconfig $interface:$key down"; GetOptions( 'Befehl=s' => \$Befehl, 'ssh_user=s' => \$ssh_user, 'orig_master_host=s' => \$orig_master_host, 'orig_master_ip=s' => \$orig_master_ip, 'orig_master_port=i' => \$orig_master_port, 'neuer_master_host=s' => \$neuer_master_host, 'neue_Master-IP=s' => \$neue_Master-IP, 'neuer_Masterport=i' => \$neuer_Masterport, ); beenden &main(); Unterhaupt { drucken "\n\nIM SKRIPTTEST====$ssh_stop_vip==$ssh_start_vip===\n\n"; wenn ( $command eq "stop" || $command eq "stopssh" ) { # $orig_master_host, $orig_master_ip, $orig_master_port werden übergeben. # Wenn Sie die Master-IP-Adresse in der globalen Katalogdatenbank verwalten, # orig_master_ip hier ungültig machen. mein $exit_code = 1; auswerten { print "Deaktivieren des VIP auf dem alten Master: $orig_master_host \n"; &stop_vip(); $exit_code = 0; }; wenn ($@) { warnen "Fehler aufgetreten: $@\n"; beenden $exit_code; } beenden $exit_code; } elsif ( $Befehl gleich "start" ) { # alle Argumente werden übergeben. # Wenn Sie die Master-IP-Adresse in der globalen Katalogdatenbank verwalten, # aktivieren Sie hier die neue Master-IP. # Sie können hier auch Schreibzugriff gewähren (Benutzer erstellen, read_only=0 setzen usw.). mein $exit_code = 10; auswerten { print "Aktivieren des VIP - $vip auf dem neuen Master - $new_master_host \n"; &start_vip(); $exit_code = 0; }; wenn ($@) { warnen $@; beenden $exit_code; } beenden $exit_code; } elsif ( $Befehl gleich "Status" ) { print "Überprüfe den Status des Skripts.. OK \n"; `ssh $ssh_user\@$orig_master_host \" $ssh_start_vip \"`; Ausgang 0; } anders { &Verwendung(); Ausgang 1; } } # Ein einfacher Systemaufruf, der das VIP auf dem neuen Master aktiviert unter start_vip() { `ssh $ssh_user\@$new_master_host \" $ssh_start_vip \"`; } # Ein einfacher Systemaufruf, der das VIP auf dem old_master deaktiviert unter stop_vip() { `ssh $ssh_user\@$orig_master_host \" $ssh_stop_vip \"`; } Unterverwendung { drucken "Verwendung: master_ip_failover --command=start|stop|stopssh|status --orig_master_host=host --orig_master_ip=ip -- orig_master_port=Port --new_master_host=Host --new_master_ip=IP --new_master_port=Port\n"; } chmod 777 /etc/masterha/app1/ Konfigurationsdateitest: # masterha_check_ssh --conf=/etc/masterha/app1.cnf Do, 26. Mai 2016, 23:25:35 - [Warnung] Globale Konfigurationsdatei /etc/masterha_default.cnf nicht gefunden. Wird übersprungen. Do, 26. Mai 2016, 23:25:35 - [Info] Standardkonfiguration der Anwendung wird aus /etc/masterha/app1.cnf gelesen. Do., 26. Mai 2016, 23:25:35 Uhr – [Info] Serverkonfiguration wird aus /etc/masterha/app1.cnf gelesen. Do, 26. Mai 2016, 23:25:35 - [Info] SSH-Verbindungstests werden gestartet. Do 26. Mai 2016 23:25:35 - [debug] Do., 26. Mai 2016, 23:25:35 - [Debug] Verbindung per SSH von [email protected](192.168.1.21:22) zu [email protected](192.168.1.22:22).. Do, 26. Mai 2016, 23:25:35 – [Debug] ok. Do., 26. Mai 2016, 23:25:35 - [Debug] Verbindung per SSH von [email protected](192.168.1.21:22) zu [email protected](192.168.1.23:22).. Do, 26. Mai 2016, 23:25:35 – [Debug] ok. Do 26. Mai 2016 23:25:36 - [debug] Do., 26. Mai 2016, 23:25:35 - [Debug] Verbindung per SSH von [email protected](192.168.1.22:22) zu [email protected](192.168.1.21:22).. Do, 26. Mai 2016, 23:25:35 – [Debug] ok. Do., 26. Mai 2016, 23:25:35 - [Debug] Verbindung per SSH von [email protected](192.168.1.22:22) zu [email protected](192.168.1.23:22).. Do, 26. Mai 2016, 23:25:36 – [debug] ok. Do 26. Mai 2016 23:25:36 - [debug] Do., 26. Mai 2016, 23:25:36 – [Debuggen] Verbindung per SSH von [email protected](192.168.1.23:22) zu [email protected](192.168.1.21:22).. Do, 26. Mai 2016, 23:25:36 – [debug] ok. Do., 26. Mai 2016, 23:25:36 – [Debuggen] Verbindung per SSH von [email protected](192.168.1.23:22) zu [email protected](192.168.1.22:22).. Do, 26. Mai 2016, 23:25:36 – [debug] ok. Do, 26. Mai 2016, 23:25:36 – [Info] Alle SSH-Verbindungstests wurden erfolgreich bestanden. #masterha_check_repl --conf=/etc/masterha/app1.cnf Do, 26. Mai 2016, 22:52:30 - [Warnung] Globale Konfigurationsdatei /etc/masterha_default.cnf nicht gefunden. Wird übersprungen. Do, 26. Mai 2016, 22:52:30 - [Info] Standardkonfiguration der Anwendung wird aus /etc/masterha/app1.cnf gelesen. Do, 26. Mai 2016, 22:52:30 - [Info] Serverkonfiguration wird aus /etc/masterha/app1.cnf gelesen. Do, 26. Mai 2016, 22:52:30 – [Info] MHA::MasterMonitor Version 0.56. Do 26. Mai 22:52:31 2016 - [info] GTID Failover-Modus = 1 Do 26. Mai 22:52:31 2016 - [info] Tote Server: Do 26. Mai 22:52:31 2016 - [info] Aktive Server: Do 26. Mai 22:52:31 2016 - [info] 192.168.1.21(192.168.1.21:3306) Do 26. Mai 22:52:31 2016 - [info] 192.168.1.22(192.168.1.22:3306) Do 26. Mai 22:52:31 2016 - [info] 192.168.1.23(192.168.1.23:3306) Do 26. Mai 22:52:31 2016 - [info] Lebende Sklaven: Do 26. Mai 22:52:31 2016 - [info] 192.168.1.22(192.168.1.22:3306) Version=5.6.28-log (älteste Hauptversion zwischen Slaves) log-bin: aktiviert Do 26. Mai 22:52:31 2016 - [info] GTID ON Do 26. Mai 22:52:31 2016 - [info] Replikation von 192.168.1.21(192.168.1.21:3306) Do 26. Mai 22:52:31 2016 - [info] Hauptkandidat für den neuen Master (candidate_master ist gesetzt) Do 26. Mai 22:52:31 2016 - [info] 192.168.1.23(192.168.1.23:3306) Version=5.6.28-log (älteste Hauptversion zwischen Slaves) log-bin: aktiviert Do 26. Mai 22:52:31 2016 - [info] GTID ON Do 26. Mai 22:52:31 2016 - [info] Replikation von 192.168.1.21(192.168.1.21:3306) Do 26. Mai 22:52:31 2016 - [info] Kein Kandidat für den neuen Master (no_master ist gesetzt) Do 26. Mai 22:52:31 2016 - [info] Aktueller Alive Master: 192.168.1.21(192.168.1.21:3306) Do, 26. Mai 2016, 22:52:31 - [Info] Slave-Konfigurationen werden geprüft. Do., 26. Mai 2016, 22:52:31 - [Info] read_only=1 ist auf Slave 192.168.1.22(192.168.1.22:3306) nicht festgelegt. Do., 26. Mai 2016, 22:52:31 - [Info] read_only=1 ist auf Slave 192.168.1.23(192.168.1.23:3306) nicht festgelegt. Do., 26. Mai 2016, 22:52:31 - [Info] Einstellungen für die Replikationsfilterung werden überprüft. Do 26. Mai 22:52:31 2016 - [info] binlog_do_db= , binlog_ignore_db= Do, 26. Mai 2016, 22:52:31 - [Info] Replikationsfilterprüfung ok. Do 26. Mai 22:52:31 2016 - [info] GTID (mit Auto-POS) wird unterstützt. Alle SSH- und Node-Paketprüfungen werden übersprungen. Do 26. Mai 22:52:31 2016 - [info] HealthCheck: SSH zu 192.168.1.23 ist erreichbar. Do 26. Mai 22:52:31 2016 - [Info] Binlog-Server 192.168.1.23 ist erreichbar. Do, 26. Mai 2016, 22:52:31 - [Info] Überprüfung der Wiederherstellungsskriptkonfigurationen auf 192.168.1.23 (192.168.1.23:3306). Do 26. Mai 2016 22:52:31 - [Info] Befehl wird ausgeführt: save_binary_logs --command=test --start_pos=4 --binlog_dir=/mysql/backup/binlog --output_file=/etc/masterha/app1/save_binary_logs_test --manager_version=0.56 --start_file=mysql-bin.000004 Do., 26. Mai 2016, 22:52:31 - [Info] Verbindung zu [email protected](192.168.1.23:22) wird hergestellt.. Erstelle /etc/masterha/app1, falls es nicht existiert.. ok. Überprüfen, ob auf das Ausgabeverzeichnis zugegriffen werden kann oder nicht. OK. Binlog gefunden unter /mysql/backup/binlog, bis mysql-bin.000004 Do, 26. Mai 2016, 22:52:31 - [Info] Überprüfung der Binlog-Einstellungen abgeschlossen. Do, 26. Mai 2016, 22:52:31 - [Info] Überprüfen der SSH-Publickey-Authentifizierungseinstellungen auf dem aktuellen Master. Do 26. Mai 22:52:31 2016 - [info] HealthCheck: SSH zu 192.168.1.21 ist erreichbar. Do 26. Mai 22:52:31 2016 - [info] 192.168.1.21(192.168.1.21:3306) (aktueller Master) +--192.168.1.22(192.168.1.22:3306) +--192.168.1.23(192.168.1.23:3306) Do., 26. Mai 2016, 22:52:31 - [Info] Überprüfen der Replikationsintegrität auf 192.168.1.22. Do, 26. Mai 2016, 22:52:31 - [Info] ok. Do., 26. Mai 2016, 22:52:31 - [Info] Überprüfen der Replikationsintegrität auf 192.168.1.23. Do, 26. Mai 2016, 22:52:31 - [Info] ok. Do, 26. Mai 2016, 22:52:31 - [Info] Überprüfen des Status von master_ip_failover_script: Do 26. Mai 2016 22:52:31 - [info] /etc/masterha/app1/master_ip_failover --command=status --ssh_user=root --orig_master_host=192.168.1.21 --orig_master_ip=192.168.1.21 --orig_master_port=3306 IM SKRIPTTEST====/sbin/ifconfig eth1:1 down==/sbin/ifconfig eth1:1 192.168.1.20;/sbin/arping -I eth1 -c 3 -s 192.168.1.20 192.168.1.1 >/dev/null 2>&1=== Den Status des Skripts wird geprüft.. OK Do, 26. Mai 2016, 22:52:34 - [Info] OK. Do, 26. Mai 2016, 22:52:34 – [Warnung] shutdown_script ist nicht definiert. Do., 26. Mai 2016, 22:52:34 - [Info] Habe Exitcode 0 erhalten (Master nicht tot). Der Zustand der MySQL-Replikation ist in Ordnung. Starten und Herunterfahren von MHA nohup masterha_manager --conf=/etc/masterha/app1.cnf > /etc/masterha/app1/manager.log < /dev/null 2>&1 & Überprüfen Sie, ob es gestartet ist: masterha_check_status --conf=/etc/masterha/app1.cnf app1 (pid:11447) läuft (0:PING_OK), Master:192.168.1.21 Haltestelle Mha: masterha_stop --conf=/etc/masterha/app1.cnf App1 erfolgreich gestoppt. [3]+ Beenden 1 nohup masterha_manager --conf=/etc/masterha/app1.cnf > /etc/masterha/app1/manager.log < /dev/null 2>&1 prüfen: Hinweis: Nachdem jeder Test abgeschlossen ist, müssen Sie die Protokolle unter /etc/masterha/app1 bereinigen und dann den Mha-Manager starten. 1: Schließen Sie mysql auf mysql1, überprüfen Sie von dort aus die Synchronisation der Slave-Datenbank und die mha-Protokollausgabe 2: Stellen Sie mysql1 wieder als Slave von mysql2 her. Die Änderungsanweisung für den Master befindet sich in /etc/masterha/app1/manager.log. Beim Konfigurieren der GTID-Replikation tritt ein 1032-Fehler auf. Verwenden Sie die folgende Methode, um ihn zu beheben mysql> zeige globale Variablen wie „%gtid%“; +---------------------------------+---------------------------------------------------------------------------------+ | Variablenname | Wert | +---------------------------------+---------------------------------------------------------------------------------+ | binlog_gtid_simple_recovery | AUS | | enforce_gtid_consistency | EIN | | gtid_executed | 88b05570-2599-11e6-880a-000c29c18cf5:1-3, 9ee7c7af-cbf3-11e5-bf75-000c2923e459:1-4 | | gtid_mode | EIN | | gtid_owned | | | gtid_purged | | | vereinfachtes_binlog_gtid_recovery | AUS | +---------------------------------+---------------------------------------------------------------------------------+ Sklave stoppen; setze gtid_next='9ee7c7af-cbf3-11e5-bf75-000c2923e459:4'; beginnen; begehen; setze gtid_next='automatisch'; Slave starten; Slave-Status anzeigen\G; Die obige Mysql GTID Mha-Konfigurationsmethode ist der gesamte Inhalt, den der Editor mit Ihnen teilt. Ich hoffe, es kann Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen. Das könnte Sie auch interessieren:
|
<<: JavaScript zum Erzielen eines Dropdown-Menüeffekts
>>: Tutorial zur Installation und Verwendung von Docker MQTT
Hintergrund Temporäre Tablespaces werden verwende...
Im Allgemeinen werden Klickereignisse in verschie...
html,Adresse, Blockzitat, Körper, dd, div, dl,dt,...
Inhaltsverzeichnis 1. Einleitung 2. Sichern Sie d...
Die Ausführungsreihenfolge der SQL-Abfrageanweisu...
Zugehörige Dokumente Ein Teil dieses Artikels wir...
Vorwort Glauben Sie mir, solange Sie sich an die ...
Inhaltsverzeichnis Hintergrund 1. Dokumentbeschre...
Während dieser Zeit stieß ich bei der Arbeit an e...
Das Daten-URI-Schema ermöglicht es uns, Daten mith...
Methode 1: Verwenden Sie den Befehl lsof Mit dem ...
In diesem Artikelbeispiel wird der spezifische Co...
Ich glaube, die Befehle, die ich am häufigsten ve...
1. Befehlseinführung Der Befehl ifconfig (Netzwer...
Vorwort Tomcat ist ein weit verbreiteter Java-Web...