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

MySQL - HA double machine basée sur Keepalived

黄舟
黄舟original
2017-01-21 11:48:44985parcourir

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

# 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;         #启动同步

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;

# 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 #安装依赖包
[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

#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/
[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 #重试间隔时间  
  }  
}
[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

#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;

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) !


Déclaration:
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