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
# Ü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; #启动同步
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;
# 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.
Im Master-Datentest einfügen:
Überprüfen Sie im Backup, ob die Synchronisierung erfolgreich ist:
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 #安装依赖包
[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
#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/
[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
#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;
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.
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 (www.php.cn)!