Heim > Datenbank > MySQL-Tutorial > Hauptteil

MySQL – Dual-Machine-HA basierend auf Keepalived

黄舟
Freigeben: 2017-01-21 11:48:44
Original
974 Leute haben es durchsucht

1. Umgebungsbeschreibung:

Betriebssystem: CentOS6.5_X64
MASTER: 192.168.0.202
BACKUP: 192.168.0.203
VIP: 192.168.0.204

2. Konfigurieren Sie zwei MySQL-Master-Master-Synchronisationen

Informationen zur Installation von MySQL finden Sie auch unter „MySQL – CentOS6.5 Kompilieren und Installieren von MySQL5.6.16“. -Slave-Synchronisierung. Das Konfigurieren des Slave-Servers als Master des vorherigen Master-Servers entspricht dem Festlegen des ursprünglichen Slaves als Master des ursprünglichen Masters basierend auf der ursprünglichen Master-Slave-Synchronisierung. Sie können sich auch auf „MySQL – MS Master“ beziehen. Slave-Replikation (Lese-Schreib-Trennung) „Implementierung“, nachdem Sie A als B-Master und B als A-Slave festgelegt haben, legen Sie dann B als A-Master und A als B-Slave fest.

[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
Nach dem Login kopieren

# Überprüfen Sie zunächst das Log-Bin-Protokoll und den Positionswertspeicherort

MySQL – Dual-Machine-HA basierend auf Keepalived

Die Masterkonfiguration lautet wie folgt:

[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;         #启动同步
Nach dem Login kopieren

Backup-Konfiguration Wie folgt:

[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;
Nach dem Login kopieren

# Die Master-Master-Synchronisationskonfiguration ist abgeschlossen. Überprüfen Sie den Synchronisationsstatus Slave_IO und Slave_SQL, wenn dieser JA ist, was bedeutet, dass die Master-Master-Synchronisation erfolgreich ist.

MySQL – Dual-Machine-HA basierend auf Keepalived

Im Master-Datentest einfügen:

MySQL – Dual-Machine-HA basierend auf Keepalived

Überprüfen Sie im Backup, ob die Synchronisierung erfolgreich ist:

MySQL – Dual-Machine-HA basierend auf Keepalived

Sie können sehen, dass die gleichen Daten in die Benutzertabelle im Backup eingefügt und auf die gleiche Weise synchronisiert wurden ist erfolgreich abgeschlossen.

3. Konfigurieren Sie Keepalived, um ein Hot-Backup zu erreichen

[root@backup ~]# yum install -y pcre-devel openssl-devel popt-devel #安装依赖包
Nach dem Login kopieren
[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
Nach dem Login kopieren

#Konfigurieren Sie Keepalived als Systemdienst

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

#Der Backup-Server ändert nur die Priorität auf 90, nopreempt ist nicht festgelegt und real_server legt die lokale IP fest.

#Autorisieren Sie zwei MySQL-Server, um die Root-Remote-Anmeldung zum Testen auf anderen Servern zu ermöglichen!

mysql> grant all on *.* to'root'@'192.168.0.%' identified by 'root';  
mysql> flush privileges;
Nach dem Login kopieren

4. Testen Sie die Hochverfügbarkeit

1) Stellen Sie eine Verbindung über VIP über den MySQL-Client her, um zu sehen, ob die Verbindung erfolgreich ist.
2) Stoppen Sie den Master-MySQL-Dienst und prüfen Sie, ob er normal auf ihn umgeschaltet werden kann. Sie können den Befehl ip addr verwenden, um zu überprüfen, auf welchem ​​Server sich der VIP befindet.

MySQL – Dual-Machine-HA basierend auf Keepalived

3) Sie können den Master-/Backup-Umschaltvorgang sehen, indem Sie das /var/log/messges-Protokoll überprüfen.
4) Nachdem sich der Master-Server nach einem Ausfall erholt hat, ist dies der Fall Es nutzt aktiv Ressourcen? Werden Sie ein aktiver Server.
Hinweis: Die Reihenfolge beim Starten des Dienstes: Starten Sie zuerst MySQL und dann Keepalived.

Das Obige ist der Inhalt von MySQL – Dual-Machine HA basierend auf Keepalived. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (m.sbmmt.com)!


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!