当前位置:网站首页>MySQL High available MHA (accidentellement avec ma jeunesse)
MySQL High available MHA (accidentellement avec ma jeunesse)
2022-06-28 17:07:00 【Steve Lu】
Table des matières
- Un.、MHAGénéralités
- 2.、MHAPréparation de la construction
- Trois、Construction MySQL MHA
- 3.1 Configurer la réplication maître - esclave
- 3.1.1 Chaque pare - feu éteint
- 3.1.2 Modifier Master、Slave1、Slave2 Nom d'hôte du noeud
- 3.1.3 InMaster、Slave1、Slave2Ajouter une relation de cartographie hôte
- 3.1.4 Modifier Master、Slave1、Slave2 Node MysqlProfil principal/etc/my.cnf
- 3.1.5 In Master、Slave1、Slave2 Deux liens souples sont créés sur le noeud
- 3.1.6 Connectez - vous à la base de données pour l'autorisation
- 3.1.7 Configurer la synchronisation maître - esclave
- 3.2 ConfigurationMHA
- 3.2.1 Toutes les installations du serveurMHALogiciels
- 3.2.2 Configurer l'authentification sans mot de passe sur tous les serveurs
- 3.2.3 In manager Configuration sur le noeud MHA
- 3.2.4 manager Noeud modifier le profil ,Gestion mysql Serveur de noeuds
- 3.2.5 La première configuration doit être effectuée à Master Activer manuellement le virtuel sur le noeudIP
- 3.2.6 In manager Test sur le noeud ssh Pas d'authentification par mot de passe
- 3.2.7 In manager Test sur le noeud mysql Connexion maître - esclave
- 3.2.8 In manager Démarrage sur le noeud MHA
- 3.2.9 In manager Affichage sur le noeud MHA Statut Et MHA Log,Je vois. masterAdresse
- 3.2.10 InMysql1Voir ci - dessus VIP Adresse 192.168.109.100 Existe - t - il?
- 3.3 Défaillance analogique
- 3.4 Dépannage
Un.、MHAGénéralités
1.1 MHA Qu'est - ce que c'est?
MHA(MasterHigh Availability)C'est un excellentMySQLLogiciel de FAILOVER et de réplication maître - esclave dans des environnements très disponibles.
MHA C'est la solution.MySQL Questions en un seul point.
MySQLPendant le FAILOVER,MHAPeut faire0-30L'opération FAILOVER se termine automatiquement en quelques secondes.
MHALa cohérence des données peut être garantie dans la plus grande mesure pendant le processus de défaillance,Pour atteindre une disponibilité vraiment élevée.
1.2 MHA Composition
●MHA Node(Noeuds de données)
MHA Node Il fonctionne sur chaque MySQL Sur le serveur.
●MHA Manager(Gérer les noeuds)
MHA Manager Peut être déployé seul sur une machine autonome,Gérer plusieurs master-slave Cluster;Peut également être déployé sur un slave Sur le noeud.
MHA Manager Détectera périodiquement master Noeud.Quand master En cas de défaillance,Il peut automatiquement mettre à jour les données slave Promu au nouveau master, Et puis il y aura tous les autres slave Rediriger vers le nouveau master.L'ensemble du processus de FAILOVER est entièrement transparent pour l'application.
1.3 MHA Caractéristiques
- Pendant le FAILOVER automatique,MHATentative d'enregistrer le journal binaire à partir du serveur principal en panne,Garantie maximale que les données ne sont pas perdues
- Utiliser la réplication semi - synchrone,Le risque de perte de données peut être considérablement réduit,Si seulement unslaveLe dernier journal binaire a été reçu,MHAVous pouvez appliquer les derniers journaux binaires à tous les autresslaveSur le serveur,La cohérence des données peut donc être garantie pour tous les noeuds
- Pour l'instantMHAPrise en charge d'un schéma maître - esclave,Au moins trois services,C'est - à - dire un maître et deux esclaves
2.、MHAPréparation de la construction
2.1 Idées expérimentales
1.MHAArchitecture: ①Installation de la base de données ②Un maître et deux esclaves ③MHAConstruction
2.Simulation de défaillance :①Défaillance de la bibliothèque principale ②La Bibliothèque primaire alternative devient la Bibliothèque primaire ③Récupération de la base de données principale d'origine défectueuse pour rejoindreMHADevenir esclave de la Bibliothèque
2.2 Préparation de l'expérience
| Serveur de noeuds | Nom | Nom d'hôte | IPAdresse | Services et outils d'installation |
|---|---|---|---|---|
| MHA managerServeur de noeuds | centos7-4 | manager | 192.168.109.134 | MHA node Et manager Components |
| MasterServeur de noeuds | centos7-1 | mysql1 | 192.168.109.131 | MHA node Components |
| Slave1Serveur de noeuds | centos7-2 | mysql2 | 192.168.109.132 | MHA node Components |
| Slave2Serveur de noeuds | centos7-3 | mysql3 | 192.168.109.133 | MHA node Components |

Trois、Construction MySQL MHA
3.1 Configurer la réplication maître - esclave
3.1.1 Chaque pare - feu éteint
systemctl disable --now firewalld
setenforce 0
3.1.2 Modifier Master、Slave1、Slave2 Nom d'hôte du noeud
##Master Noeud##
hostnamectl set-hostname mysql1
su
##Slave1Noeud##
hostnamectl set-hostname mysql2
su
##Slave2Noeud##
hostnamectl set-hostname mysql3
su



3.1.3 InMaster、Slave1、Slave2Ajouter une relation de cartographie hôte
# Trois pour ajouter la même configuration
vim /etc/hosts
192.168.109.131 mysql1
192.168.109.132 mysql2
192.168.109.133 mysql3
#Et tester la connectivité


3.1.4 Modifier Master、Slave1、Slave2 Node MysqlProfil principal/etc/my.cnf
MasterNoeud,Ouvrir le journal binaire.
Slave1、Slave2 Noeud, Activer les journaux binaires et les journaux relais .
##Master Noeud##
vim /etc/my.cnf
[mysqld]
server-id = 1
log_bin = master-bin #Ouvrir le journal binaire,Préciser l'emplacement de stockage
log-slave-updates = true #AllowslaveDemaster Peut être écrit dans son propre journal binaire lors de la copie des données
systemctl restart mysqld #Redémarrermysql
##Slave1Noeud##
vim /etc/my.cnf
[mysqld]
server-id = 2 #Trois serveurs server-id Ça ne peut pas être pareil
log_bin = master-bin
relay-log = relay-log-bin
relay-log-index = slave-relay-bin.index
systemctl restart mysqld
##Slave2Noeud##
vim /etc/my.cnf
[mysqld]
server-id = 3 #Trois serveurs server-id Ça ne peut pas être pareil
log_bin = master-bin
relay-log = relay-log-bin
relay-log-index = slave-relay-bin.index
systemctl restart mysqld #Redémarrermysql




3.1.5 In Master、Slave1、Slave2 Deux liens souples sont créés sur le noeud
ln -s /usr/local/mysql/bin/mysql /usr/sbin/
ln -s /usr/local/mysql/bin/mysqlbinlog /usr/sbin/
# Voir les liens souples
ls /usr/sbin/mysql*

3.1.6 Connectez - vous à la base de données pour l'autorisation
C'est exact.slaveEtmanagerEffectuer l'autorisation
##----(1)Tous les noeuds de base de donnéesmysql Autorisation de synchronisation maître - esclave ------##
grant replication slave on *.* to 'myslave'@'192.168.109.%' identified by '000000'; # Utilisation synchrone depuis le serveur
##---(2) Tous les noeuds de base de données ,Autorisé àmanagerServeur-----##
grant all privileges on *.* to 'mha'@'192.168.109.%' identified by 'manager';
# Pour éviter les problèmes de connexion dus au nom d'hôte , Autoriser à nouveau l'adresse de connexion
grant all privileges on *.* to 'mha'@'mysql1' identified by 'manager';
grant all privileges on *.* to 'mha'@'mysql2' identified by 'manager';
grant all privileges on *.* to 'mha'@'mysql3' identified by 'manager';
flush privileges; #Rafraîchir les permissions


3.1.7 Configurer la synchronisation maître - esclave
In Master Noeud pour voir les binaires et les points de synchronisation(C'est - à - dire offset),In Slave1、Slave2 Le noeud effectue une opération de synchronisation.
##(1)In Master Noeud pour voir les binaires et les points de synchronisation(C'est - à - dire offset)##
mysql> show master status;
+-------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+-------------------+----------+--------------+------------------+-------------------+
| master-bin.000001 | 1747 | | | |
+-------------------+----------+--------------+------------------+-------------------+
##(2)In Slave1、Slave2 Le noeud effectue une opération de synchronisation##
change master to master_host='192.168.109.131',master_user='myslave',master_password='000000',master_log_file='master-bin.000001',master_log_pos=1747;
start slave; #Activer la synchronisation,En cas d'erreur signalée reset slave;
##(3)In Slave1、Slave2 Voir l'état du noeud##
show slave status\G
//Assurez - vous que IO Et SQL Les fils sont Yes,Indique que la synchronisation est normale.
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
#En général "Slave_IO_Running: No" Causes possibles:
1. Le réseau ne fonctionne pas.
2. my.cnfProblème de configuration(server-idJe répète.)
3. Mot de passe、fileNom du fichier、posDécalage incorrect
4. Le pare - feu n'est pas éteint
##(4)Les deux bibliothèques esclaves doivent être réglées en mode lecture seule##
set global read_only=1;
##(5)InMasterBase de données principale insérer des données, Synchronisation de la base de données de test ##
create database test1;
use test1;
create table shop(id int);
insert into shop values (1);
# Vérifier la synchronisation réussie à partir de la base de données
select * from test1.shop;







3.2 ConfigurationMHA
3.2.1 Toutes les installations du serveurMHALogiciels
Installé sur tous les serveurs MHA Environnement dépendant,Y compris:MHA manager Serveur de noeuds
#Installez d'abord epel Source
yum install epel-release --nogpgcheck -y
#InstallationMHADépendances connexes
yum install -y perl-DBD-MySQL \
perl-Config-Tiny \
perl-Log-Dispatch \
perl-Parallel-ForkManager \
perl-ExtUtils-CBuilder \
perl-ExtUtils-MakeMaker \
perl-CPAN


Installation MHA Paquets,Doit d'abord être installé sur tous les serveurs node Components
- Différent pour chaque version du système d'exploitation,Ici. CentOS7.4 Vous devez sélectionner 0.57 Version.
- Doit être installé sur tous les serveurs node Components,Enfin, MHA-manager Installation sur le noeud manager Components,Parce que manager Dépendance node Components.
#Télécharger les paquets requis à/optEn bas.
#Décompresser l'installation sur chaque serveurnodeComponents
cd /opt
#Décompresser
tar zxf mha4mysql-node-0.57.tar.gz
cd mha4mysql-node-0.57
perl Makefile.PL
#Compiler l'installation
make && make instal
#manager Après l'installation des composants/usr/local/bin Plusieurs outils sont générés ci - dessous,Comprend principalement les éléments suivants:
- masterha_check_ssh #Vérifiez MHA De SSH Configuration de l'état
- masterha_check_repl #Vérifiez MySQL État de la réplication
- masterha_manger #Démarrage managerScript pour
- masterha_check_status #Détecter le courant MHA État de fonctionnement
- masterha_master_monitor #Détection master Arrêt ou non
- masterha_master_switch #Contrôle du FAILOVER(Automatique ou manuel)
- masterha_conf_host #Ajouter ou supprimer des configurations server Information
- masterha_stop #Fermermanager
#node Les composants sont également installés après/usr/local/bin Plusieurs scripts seront générés ci - dessous(Ces outils sont généralement fabriqués par MHAManager Le script de,Aucune action humaine n'est nécessaire)Principalement comme suit:
- save_binary_logs #Enregistrer et copier master Journal binaire de
- apply_diff_relay_logs #Identifier les événements du Journal de relais qui diffèrent et appliquer les événements qui diffèrent à d'autres slave
- filter_mysqlbinlog #Enlever les ROLLBACK Événements(MHA Cet outil n'est plus utilisé)
- purge_relay_logs #Effacer le journal de relais(Ça ne bloque pas SQL Thread)


Enfin, MHA manager Installation sur le noeud manager Components


3.2.2 Configurer l'authentification sans mot de passe sur tous les serveurs
##(1)In manager Authentification sans mot de passe configurée sur le noeud pour tous les noeuds de base de données
ssh-keygen -t rsa #Appuyez sur la touche Entrée tout le chemin,Générer une clé."-t rsa" Spécifie le type de clé .
ssh-copy-id 192.168.109.131 # Passer la clé publique à tous les noeuds de base de données , Connexion sans mot de passe
ssh-copy-id 192.168.109.132
ssh-copy-id 192.168.109.133
##(2)In mysql1 Configurer sur le noeud de base de données mysql2 Et mysql3 Authentification sans mot de passe pour
ssh-keygen -t rsa
ssh-copy-id 192.168.109.132 # Passer la clé publique à deux noeuds esclaves , Connexion sans mot de passe
ssh-copy-id 192.168.109.133
##(3)In mysql2 Configurer sur le noeud de base de données mysql1 Et mysql3 Authentification sans mot de passe pour
ssh-keygen -t rsa
ssh-copy-id 192.168.109.131
ssh-copy-id 192.168.109.133
##(4)In mysql3 Configurer sur le noeud de base de données mysql1 Et mysql2 Authentification sans mot de passe pour
ssh-keygen -t rsa
ssh-copy-id 192.168.109.131
ssh-copy-id 192.168.109.132
In manager Authentification sans mot de passe configurée sur le noeud pour tous les noeuds de base de données




In mysql1、mysql2、mysql3 L'opération sur n'est pas une capture d'écran individuelle
3.2.3 In manager Configuration sur le noeud MHA
# Copier les scripts associés à /usr/local/bin Table des matières
cp -rp /opt/mha4mysql-manager-0.57/samples/scripts /usr/local/bin
//Il y aura quatre fichiers d'exécution après la copie
ll /usr/local/bin/scripts/
master_ip_failover #Lors de la commutation automatique VIP Scripts gérés
master_ip_online_change #Lors de la commutation en ligne vip Gestion
power_manager #Script pour arrêter l'hôte après un échec
send_report #Un script qui envoie une alarme après un échec
#Lors de la copie du commutateur automatique ci - dessus VIP Scripts gérés à /usr/local/bin Table des matières,Utilisez icimaster_ip_failoverScript pour gérer VIP Et FAILOVER
cp /usr/local/bin/scripts/master_ip_failover /usr/local/bin
#Modifier comme suit::(Supprimer le contenu original,Copier et modifier directementvipParamètres connexes.Peut être saisi avant la copie :set paste RésolutionvimColler un problème de désordre)
cd /usr/local/bin/
vim master_ip_failover # Lors de la modification de la commutation automatique VIP Scripts gérés
#!/usr/bin/env perl
use strict;
use warnings FATAL => 'all';
use Getopt::Long;
my (
$command, $ssh_user, $orig_master_host, $orig_master_ip,
$orig_master_port, $new_master_host, $new_master_ip, $new_master_port
);
#############################Ajouter une section de contenu#########################################
my $vip = '192.168.109.100'; #DésignationvipAdresse
my $brdc = '192.168.109.255'; #DésignationvipAdresse de diffusion de
my $ifdev = 'ens33'; #DésignationvipCarte réseau liée
my $key = '1'; #DésignationvipNuméro de série de la carte réseau virtuelle liée
my $ssh_start_vip = "/sbin/ifconfig ens33:$key $vip";
#Indique que la valeur de cette variable estifconfig ens33:1 192.168.109.100
my $ssh_stop_vip = "/sbin/ifconfig ens33:$key down";
#Indique que la valeur de cette variable estifconfig ens33:1 192.168.109.100 down
my $exit_code = 0; #Spécifie que le Code d'état de sortie est0
#my $ssh_start_vip = "/usr/sbin/ip addr add $vip/24 brd $brdc dev $ifdev label $ifdev:$key;/usr/sbin/arping -q -A -c 1 -I $ifdev $vip;iptables -F;";
#my $ssh_stop_vip = "/usr/sbin/ip addr del $vip/24 dev $ifdev label $ifdev:$key";
##################################################################################
GetOptions(
'command=s' => \$command,
'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,
'new_master_host=s' => \$new_master_host,
'new_master_ip=s' => \$new_master_ip,
'new_master_port=i' => \$new_master_port,
);
exit &main();
sub main {
print "\n\nIN SCRIPT TEST====$ssh_stop_vip==$ssh_start_vip===\n\n";
if ( $command eq "stop" || $command eq "stopssh" ) {
my $exit_code = 1;
eval {
print "Disabling the VIP on old master: $orig_master_host \n";
&stop_vip();
$exit_code = 0;
};
if ([email protected]) {
warn "Got Error: [email protected]\n";
exit $exit_code;
}
exit $exit_code;
}
elsif ( $command eq "start" ) {
my $exit_code = 10;
eval {
print "Enabling the VIP - $vip on the new master - $new_master_host \n";
&start_vip();
$exit_code = 0;
};
if ([email protected]) {
warn [email protected];
exit $exit_code;
}
exit $exit_code;
}
elsif ( $command eq "status" ) {
print "Checking the Status of the script.. OK \n";
exit 0;
}
else {
&usage();
exit 1;
}
}
sub start_vip() {
`ssh $ssh_user\@$new_master_host \" $ssh_start_vip \"`;
}
#A simple system call that disable the VIP on the old_master
sub stop_vip() {
`ssh $ssh_user\@$orig_master_host \" $ssh_stop_vip \"`;
}
sub usage {
print
"Usage: 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";
}
In manager Copier les scripts connexes sur le noeud à/usr/local/bin/ Table des matières

Oui.master_ip_failover(Lors de la commutation automatique VIP Script de gestion pour )Copier vers/usr/local/bin Table des matières,Utilisez icimaster_ip_failoverScript pour gérer VIP Et FAILOVER

Modifier/usr/local/bin/master_ip_failover Script,Supprimer le contenu original, Tout est ajouté à nouveau

3.2.4 manager Noeud modifier le profil ,Gestion mysql Serveur de noeuds
Création MHA Répertoire du logiciel et copie des fichiers de configuration,Utilisez iciapp1.cnfProfil pour gérer mysql Serveur de noeuds
mkdir /etc/masterha
#Copier le profil
cp /opt/mha4mysql-manager-0.57/samples/conf/app1.cnf /etc/masterha/
#Supprimer le contenu original,Copier et modifier directementIPAdresse
vim /etc/masterha/app1.cnf
[server default]
manager_log=/var/log/masterha/app1/manager.log
manager_workdir=/var/log/masterha/app1
master_binlog_dir=/usr/local/mysql/data
master_ip_failover_script=/usr/local/bin/master_ip_failover
master_ip_online_change_script=/usr/local/bin/master_ip_online_change
user=mha
password=manager
ping_interval=1
remote_workdir=/tmp
repl_password=000000
repl_user=myslave
secondary_check_script=/usr/local/bin/masterha_secondary_check -s 192.168.109.132 -s 192.168.109.133
shutdown_script=""
ssh_user=root
user=mha
[server1]
hostname=192.168.109.131
port=3306
[server2]
candidate_master=1
check_repl_delay=0
hostname=192.168.109.132
port=3306
[server3]
hostname=192.168.109.133
port=3306

app1.cnfNotes de profil:
[server default]
manager_log=/var/log/masterha/app1/manager.log #managerLog
manager_workdir=/var/log/masterha/app1 #managerTable des matières
master_binlog_dir=/usr/local/mysql/data/ #masterEnregistrerbinlogEmplacement,Le chemin ici est relié àmasterConfiguré dansbinlogLe chemin vers,Pour queMHAOn peut le trouver.
master_ip_failover_script=/usr/local/bin/master_ip_failover #Réglage automatiquefailoverScript de basculement du temps,C'est le script ci - dessus
master_ip_online_change_script=/usr/local/bin/master_ip_online_change #Définir le script de commutation lors de la commutation manuelle
user=mha #ParamètresmysqlUtilisateurs,Voilà.manager Utilisateurs créés lors de l'autorisation
password=manager #ParamètresmysqlMot de passe de l'utilisateur,Ce mot de passe est le mot de passe que vous avez créé pour surveiller l'utilisateur plus tôt
ping_interval=1 #Configuration de la bibliothèque principale de surveillance,EnvoyerpingIntervalle de temps entre les paquets,Par défaut3Secondes,Essayez trois fois sans réponse automatiquementfailover
remote_workdir=/tmp #Réglage de l'extrémité distantemysqlEn cas de commutationbinlogEnregistrer l'emplacement de
repl_password=123123 #Définir le mot de passe de l'utilisateur de réplication( Utilisateur et mot de passe créés lors de l'autorisation de synchronisation maître - esclave )
repl_user=myslave #Définir l'utilisateur pour copier l'utilisateur
report_script=/usr/local/send_report #Script pour définir les alarmes envoyées après le basculement
secondary_check_script=/usr/local/bin/masterha_secondary_check -s 192.168.72.60 -s 192.168.72.80 #Spécifiez le serveur esclave à vérifierIPAdresse
shutdown_script="" #Définir l'arrêt du script hôte défectueux après la défaillance(Le rôle principal de ce script est d'arrêter l'hôte pour empêcher les fissures cérébrales,Il n'est pas utilisé ici.,Peut utiliser le système lui - mêmepower_manager )
ssh_user=root #ParamètressshNom d'utilisateur de connexion pour
[server1] #master
hostname=192.168.72.192
port=3306
[server2] #slave1
hostname=192.168.72.60
port=3306
candidate_master=1
#Définir comme candidatmaster,Après avoir défini ce paramètre,Ceci sera promu de la Bibliothèque primaire à la Bibliothèque primaire après le basculement maître - esclave,Même si cette bibliothèque esclave n'est pas à jour dans le clusterslave
check_repl_delay=0
#Par défaut, si unslaveEn retardmaster Plus que100MDerelay logsEt si,MHANe sera pas sélectionnéslaveEn tant que nouveaumaster, Parce que pour çaslaveIl faut beaucoup de temps pour récupérer;Via les paramètrescheck_repl_delay=0,MHADéclenchez le basculement lors de la sélection d'un nouveaumasterLe délai de réplication sera ignoré,Ce paramètre est défini pourcandidate_master=1L'hôte est très utile,Parce que ce candidat doit être nouveau dans le processus de commutationmaster
[server3] #slave2
hostname=192.168.72.80
port=3306
3.2.5 La première configuration doit être effectuée à Master Activer manuellement le virtuel sur le noeudIP
/sbin/ifconfig ens33:1 192.168.72.100/24

3.2.6 In manager Test sur le noeud ssh Pas d'authentification par mot de passe
In manager Test sur le noeud ssh Pas d'authentification par mot de passe,Si la sortie finale normale est successfully
masterha_check_ssh -conf=/etc/masterha/app1.cnf

3.2.7 In manager Test sur le noeud mysql Connexion maître - esclave
In manager Test sur le noeud mysql Connexion maître - esclave,Et enfinMySQL Replication Health is OK La légende est normale
masterha_check_repl -conf=/etc/masterha/app1.cnf


3.2.8 In manager Démarrage sur le noeud MHA
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 &
Explication:
- –remove_dead_master_conf #Ce paramètre représente quand un changement maître - esclave se produit,L'ancienne bibliothèque principale ip Sera supprimé du profil.
- –manger_log #Emplacement du Journal.
- –ignore_last_failover #Par défaut,Si MHA Temps d'arrêt continu détecté,Et il n'y a pas assez d'intervalle entre les temps d'arrêt 8 En heures,Il n'y aura pas Failover, Cette restriction vise à éviter ping-pong Effets( Le passage d'avant en arrière provoque une fissure cérébrale ).Ce paramètre indique que la dernière MHA Fichier résultant du déclenchement de la commutation,Par défaut,MHA Le changement se produit après app1.failover.complete Enregistré dans le fichier journal ,La prochaine fois que vous changez de répertoire, si vous trouvez que le fichier existe dans ce répertoire, vous ne serez pas autorisé à déclencher le changement, Sauf si le fichier est supprimé après la première commutation ,Pour plus de commodité,C'est réglé à–ignore_last_failover.
Utiliser&Spooler Runner:Le résultat sera envoyé au terminal;UtiliserCtrl+CEnvoyerSIGINTSignal,Vaccination programmée;Fermers essionEnvoyerSIGHUPSignal,Programme fermé.
UtilisernohupExécuter le programme:Les résultats sont affichés par défaut ànohup.out;UtiliserCtrl+CEnvoyerSIGINTSignal,Programme fermé;FermersessionEnvoyerSIGHUPSignal,Vaccination programmée.
UtilisernohupEt&Coopérer pour démarrer le programme nohup ./test &:Immunisation simultanéeSIGINTEtSIGHUPSignal.

3.2.9 In manager Affichage sur le noeud MHA Statut Et MHA Log,Je vois. masterAdresse
#Voir MHA Statut,Vous pouvez voir le master - Oui. Mysql1 Noeud.
masterha_check_status --conf=/etc/masterha/app1.cnf
#Voir MHA Log, Vous pouvez également voir le master - Oui. 192.168.109.131
cat /var/log/masterha/app1/manager.log | grep "current master"

3.2.10 InMysql1Voir ci - dessus VIP Adresse 192.168.109.100 Existe - t - il?
Voir Mysql1 De VIP Adresse 192.168.109.100 Existe - t - il?,C'est VIP L'adresse ne sera pas parce que manager Noeud arrêté MHA Le Service disparaît

3.3 Défaillance analogique
InMysql1Stop!mysqlServices,MHA Sera automatiquement modifié app1.cnf Contenu du fichier,Qui va s'arrêter mysql1 Suppression de noeuds. mysql2 Il prend automatiquement le relais VIP,Devenir nouveaumaster
##(1)In Master Noeud Mysql1 Stop!mysqlServices
systemctl stop mysqld
Ou
pkill -9 mysql
##(2)In manager Surveillance de la journalisation des observations sur les noeuds
tail -f /var/log/masterha/app1/manager.log
Master 192.168.72.192(192.168.72.192:3306) is down! #Surveillance demasterTemps d'arrêt
Selected 192.168.72.60(192.168.72.60:3306) as a new master. #Electionsmysql2 Succès nouveau master
##(3)Après un changement automatique normal,MHA Le processus s'arrête.MHA Sera automatiquement modifié app1.cnf Contenu du fichier,Qui va s'arrêter mysql1 Suppression de noeuds.
vim /etc/masterha/app1.cnf #VoirmanagerProfil du noeud
##(4)Voir mysql2 Prise en charge ou non VIP
ifconfig
Algorithme de FAILOVER alternative Master Library:
1.Le jugement général est basé sur la bibliothèque(position/GTID)Juger le bien ou le mal,Les données varient,Le plus proche demasterDeslave,Devenir un maître alternatif.
2.Avec des données cohérentes,Dans l'ordre des profils,Sélectionnez une autre bibliothèque primaire.
3.Le réglage est pondéré(candidate_master=1),Force la désignation d'un maître alternatif en fonction du poids.
(1)Par défaut, si unslaveEn retardmaster 100MDerelay logsEt si,Même avec le poids,Ça ne marchera pas..
(2)Si check_repl_delay=0 Et si,Même si les journaux sont loin derrière,Il est également obligatoire de le sélectionner comme maître alternatif.





3.4 Dépannage
3.4.1 Réparationmysql1( C'est - à - dire réparer le noeud maître original )
systemctl restart mysqld

3.4.2 Réparer les données maître - esclave
# Sur le nouveau serveur de la bibliothèque principale Mysql2 Voir les fichiers de log binaires et les points de synchronisation dans
mysql> show master status;
+-------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+-------------------+----------+--------------+------------------+-------------------+
| master-bin.000001 | 1747 | | | |
+-------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
#Sur le serveur original de la bibliothèque principale mysql1 Effectuer une opération de synchronisation, Synchroniser les données dans la bibliothèque principale maintenant
change master to master_host='192.168.72.132',master_user='myslave',master_password='000000',master_log_file='master-bin.000001',master_log_pos=1747;
start slave;
Sur le nouveau serveur de la bibliothèque principale Mysql2 Voir les fichiers de log binaires et les points de synchronisation

Sur le serveur original de la bibliothèque principale mysql1 Effectuer une opération de synchronisation, Synchroniser les données dans la bibliothèque principale maintenant

3.4.3 In manager Modifier le profil sur le noeudapp1.cnf
[[email protected] ~]# vim /etc/masterha/app1.cnf
[server default]
manager_log=/var/log/masterha/app1/manager.log
manager_workdir=/var/log/masterha/app1
master_binlog_dir=/usr/local/mysql/data
master_ip_failover_script=/usr/local/bin/master_ip_failover
master_ip_online_change_script=/usr/local/bin/master_ip_online_change
password=manager
ping_interval=1
remote_workdir=/tmp
repl_password=000000
repl_user=myslave
secondary_check_script=/usr/local/bin/masterha_secondary_check -s 192.168.109.131 -s 192.168.109.133
shutdown_script=""
ssh_user=root
user=mha
[server1]
hostname=192.168.109.132
port=3306
[server2]
candidate_master=1
check_repl_delay=0
hostname=192.168.109.131
port=3306
[server3]
hostname=192.168.109.133
port=3306

3.4.4 In manager Démarrage sur le noeud MHA
[[email protected] ~]# 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 &
[1] 3223

Résoudre le problème de la Déclaration des erreurs d'incompatibilité des caractères chinois et anglais
dos2unix /usr/local/bin/master_ip_failover
边栏推荐
- 关于接口测试自动化的总结与思考
- After the first failure, AMEC rushed to the Hong Kong stock exchange for the second time, and the financial principal changed frequently
- C#/VB. Net to convert PDF to excel
- 知乎热问:一个程序员的水平能差到什么程度?
- Log management in MySQL log backup and recovery
- 12 SQL optimization schemes summarized by old drivers (very practical)
- 【TcaplusDB知识库】查看业务密码
- RHEL6.4中使用Cacti+Spine监控主机实现发送邮件报警
- Tianyi cloud web application firewall (edge cloud version) passed the first batch of trusted authentication
- You have a chance to collect wool. Click "earn" and you will have a chance to earn a high commission
猜你喜欢
随机推荐
一步一步教你制作的第一个 WordPress 插件
[tcapulusdb knowledge base] how webclient users read and modify data
Gartner announces five privacy trends from today to 2024
How to log in to your WordPress admin dashboard
logback 日志输出格式
中国SSD行业企业势力全景图
Langqing and Langchao, an ecological model from OEM to value symbiosis
怎么期货开户?在哪里期货开户比较安全?
知乎热问:一个程序员的水平能差到什么程度?
【TcaplusDB知识库】查看tcapdir目录服务器
常见分布式文件存储介绍、选型比较、架构设计
3. caller service call - dapr
[tcapulusdb knowledge base] how webclient users read and modify data
基于Krack的网络攻击「建议收藏」
[daily 3 questions (2)] maximum ascending subarray sum
Tianyi cloud web application firewall (edge cloud version) passed the first batch of trusted authentication
如何登录到你的 WordPress 管理仪表板
Must the database primary key be self incremented? What scenarios do not suggest self augmentation? ByteDance experience sharing using Flink state 𞓜 afternoon tea with sauce issue 16
NOIP2011-2018提高组解题报告
"Popular science leaders say" intelligent bionic robot fish






