Heim > Datenbank > MySQL-Tutorial > MySQL – Ausführliche Erklärung der Dual-Machine-HA basierend auf Keepalived (Bild und Text)

MySQL – Ausführliche Erklärung der Dual-Machine-HA basierend auf Keepalived (Bild und Text)

黄舟
Freigeben: 2017-03-14 16:42:27
Original
1363 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 MySQLMaster-Master-Synchronisation

Informationen zur Installation von MySQL finden Sie auch unter „MySQL – CentOS6.5 Kompilieren und Installieren von MySQL5.6.16“ Die Haupt-Master-Synchronisierung konfiguriert den Slave-Server als Master des vorherigen Master-Servers basierend auf der Master-Slave-Synchronisierung. Dies entspricht dem Festlegen des ursprünglichen Slaves als Master des ursprünglichen Masters basierend auf der ursprünglichen Master-Slave-Synchronisierung siehe „MySQL – Implementierung der MS-Master-Slave-Replikation (Lese-/Schreibtrennung)“ , nachdem Sie A als Master von B und B als Slave von A festgelegt haben, legen Sie dann B als Master von A und A als Slave von B 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

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

Die Backup-Konfiguration lautet 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 der Master-Master-Synchronisationsstatus abgeschlossen ist. Master-Synchronisierung ist erfolgreich.

Daten in Master einfügen Im Test:


in Sichern Sie, um zu überprüfen, ob die Synchronisierung erfolgreich ist:


Sie können sehen, dass die Synchronisierung erfolgreich war. Die Daten werden auch in die Benutzertabelle eingefügt Das Backup und die Synchronisierung auf die gleiche Weise wurden erfolgreich durchgeführt.

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 //m.sbmmt.com/
[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 hohe Verfü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.
3) Sie können den Master-/Backup-Umschaltvorgang sehen, indem Sie das /var/log/messges-Protokoll überprüfen.
4) Nachdem der Master-Server nach einem Ausfall wiederhergestellt ist, ob er aktiv Ressourcen belegt und zu einem aktiven Server wird .
Hinweis: Die Reihenfolge beim Starten des Dienstes: Starten Sie zuerst MySQL und dann Keepalived.

Das obige ist der detaillierte Inhalt vonMySQL – Ausführliche Erklärung der Dual-Machine-HA basierend auf Keepalived (Bild und Text). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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