Maison > base de données > tutoriel mysql > MySQL - HA double machine basée sur Keepalived

MySQL - HA double machine basée sur Keepalived

黄舟
Libérer: 2017-01-21 11:48:44
original
1001 Les gens l'ont consulté

1. Description de l'environnement :

OS : CentOS6.5_X64
MAÎTRE : 192.168.0.202
SAUVEGARDE : 192.168.0.203
VIP : 192.168.0.204

2. Configurer deux synchronisations maître-maître MySQL

Concernant l'installation de MySQL, vous pouvez également vous référer à "MySQL - CentOS6.5 Compiler et installer MySQL5.6.16. La synchronisation maître-maître est basée sur le maître". -synchronisation esclave. Configurer le serveur esclave comme maître du serveur maître précédent équivaut à définir l'esclave d'origine comme maître du maître d'origine en fonction de la synchronisation maître-esclave d'origine. Vous pouvez également vous référer à "MySQL - MS master-". réplication esclave (séparation lecture-écriture)" ) Implémentation", après avoir défini A comme maître de B et B comme esclave de A, puis défini B comme maître de A et A comme esclave de B.

[root@masterr ~]# yum install mysql-server mysql -y  
[root@masterr ~]# service mysqld start  
[root@masterr ~]# mysqladmin -u root proot  
[root@masterr ~]# vi /etc/my.cnf  #开启二进制日志,设置id  
[mysqld]  
server-id = 1                    #backup这台设置2  
log-bin = mysql-bin  
binlog-ignore-db = mysql,information_schema       #忽略写入binlog日志的库  
auto-increment-increment = 2             #字段变化增量值  
auto-increment-offset = 1              #初始字段ID为1  
slave-skip-errors = all                       #忽略所有复制产生的错误       
[root@masterr ~]# service mysqld restart
Copier après la connexion

# Vérifiez d'abord le journal de la corbeille et l'emplacement de la valeur pos

MySQL - HA double machine basée sur Keepalived

La configuration principale est la suivante :

[root@ master ~]# mysql -u root -proot  
mysql> GRANT  REPLICATION SLAVE ON *.* TO 'replication'@'192.168.0.%' IDENTIFIED  BY 'replication';  
mysql> flush  privileges;  
mysql> change  master to  
    ->  master_host='192.168.0.203',  
    ->  master_user='replication',  
    ->  master_password='replication',  
    ->  master_log_file='mysql-bin.000002',  
    ->  master_log_pos=106;  #对端状态显示的值  
mysql> start  slave;         #启动同步
Copier après la connexion

configuration de sauvegarde Comme suit :

[root@backup ~]#  mysql -u root -proot  
mysql> GRANT  REPLICATION SLAVE ON *.* TO 'replication'@'192.168.0.%' IDENTIFIED  BY 'replication';  
mysql> flush  privileges;  
mysql> change  master to  
    ->  master_host='192.168.0.202',  
    ->  master_user='replication',  
    ->  master_password='replication',  
    ->  master_log_file='mysql-bin.000002',  
    ->  master_log_pos=106;  
mysql> start  slave;
Copier après la connexion

# La configuration de la synchronisation maître-maître est terminée. Vérifiez l'état de synchronisation Slave_IO et Slave_SQL s'il est OUI, ce qui signifie que la synchronisation maître-maître est réussie.

MySQL - HA double machine basée sur Keepalived

Dans le test des données d'insertion maître :

MySQL - HA double machine basée sur Keepalived

Vérifiez dans la sauvegarde si la synchronisation a réussi :

MySQL - HA double machine basée sur Keepalived

Vous pouvez voir qu'elle a été synchronisée avec succès. Les données de la table utilisateur sont également insérées dans la sauvegarde et synchronisées de la même manière. est terminé avec succès.

3. Configurez keepalived pour réaliser une sauvegarde à chaud

[root@backup ~]# yum install -y pcre-devel openssl-devel popt-devel #安装依赖包
Copier après la connexion
[root@masterr ~]# wget http://www.keepalived.org/software/keepalived-1.2.7.tar.gz  
[root@masterr ~]# tar zxvf keepalived-1.2.7.tar.gz  
[root@masterr ~]# cd keepalived-1.2.7  
[root@masterr ~]#./configure --prefix=/usr/local/keepalived  
make
Copier après la connexion

#Configurez keepalived en tant que service système

[root@masterr ~]# cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/  
[root@masterr ~]# cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/  
[root@masterr ~]# mkdir /etc/keepalived/  
[root@masterr ~]# cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/  
[root@masterr ~]# cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
Copier après la connexion
[root@masterr ~]# vi /etc/keepalived/keepalived.conf  
! Configuration File forkeepalived  
global_defs {  
notification_email {  
test@sina.com  
 }  
notification_email_from  admin@test.com  
smtp_server 127.0.0.1  
smtp_connect_timeout 30  
router_id MYSQL_HA      #标识,双主相同  
 }  
vrrp_instance VI_1 {  
 state BACKUP           #两台都设置BACKUP  
 interface eth0  
 virtual_router_id 51       #主备相同  
 priority 100           #优先级,backup设置90  
 advert_int 1  
 nopreempt             #不主动抢占资源,只在master这台优先级高的设置,backup不设置  
 authentication {  
 auth_type PASS  
 auth_pass 1111  
 }  
 virtual_ipaddress {  
 192.168.0.204  
 }  
}  
virtual_server 192.168.0.204 3306 {  
 delay_loop 2  
 #lb_algo rr              #LVS算法,用不到,我们就关闭了  
 #lb_kind DR              #LVS模式,如果不关闭,备用服务器不能通过VIP连接主MySQL  
 persistence_timeout 50  #同一IP的连接60秒内被分配到同一台真实服务器  
 protocol TCP  
 real_server 192.168.0.202 3306 {   #检测本地mysql,backup也要写检测本地mysql  
 weight 3  
 notify_down /usr/local/keepalived/mysql.sh    #当mysq服down时,执行此脚本,杀死keepalived实现切换  
 TCP_CHECK {  
 connect_timeout 3    #连接超时  
 nb_get_retry 3       #重试次数  
 delay_before_retry 3 #重试间隔时间  
  }  
}
Copier après la connexion
[root@masterr ~]# vi /usr/local/keepalived/mysql.sh  
#!/bin/bash  
pkill keepalived  
[root@masterr ~]# chmod +x /usr/local/keepalived/mysql.sh  
[root@masterr ~]# /etc/init.d/keepalived start
Copier après la connexion

#Le serveur de sauvegarde modifie uniquement la priorité à 90, nopreempt n'est pas défini et real_server définit l'adresse IP locale.

#Autorisez deux serveurs Mysql pour autoriser la connexion à distance root pour des tests sur d'autres serveurs !

mysql> grant all on *.* to'root'@'192.168.0.%' identified by 'root';  
mysql> flush privileges;
Copier après la connexion

4. Testez la haute disponibilité

1) Connectez-vous via VIP via le client Mysql pour voir si la connexion réussit.
2) Arrêtez le service maître mysql et vérifiez s'il peut y être basculé normalement. Vous pouvez utiliser la commande ip addr pour vérifier sur quel serveur se trouve le VIP.

MySQL - HA double machine basée sur Keepalived

3) Vous pouvez voir le processus de basculement maître/esclave en vérifiant le journal /var/log/messges
4) Une fois que le serveur maître s'est remis d'une panne, est-ce que il saisit de manière proactive les ressources ? Devenir un serveur actif.
Remarque : L'ordre de démarrage du service : démarrez d'abord MySQL, puis Keepalived.

Ce qui précède est le contenu de MySQL - HA double machine basé sur Keepalived. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !


Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal