您的位置:首页 > 数据库 > MySQL

mysql主主复制keepalived切换

2016-08-17 16:19 489 查看

一、环境

主机名IP server id
mysql_master1192.168.111.138主主复制主机1138
mysql_master2192.168.111.139主主复制主机2139
mysql_test192.168.111.140测试机 



二、master1授权

mysql>grant replication slave on *.* to 'zzfz'@'%' identified by 'zzfz';


mysql>show master status;


三、Master2授权

mysql>grant replication slave on *.* to 'zzfz'@'%' identified by 'zzfz';


mysql>show master status;


四、master1请求master2

mysql> change master to master_host='192.168.111.138',master_user='zzfz',master_password='zzfz',master_log_file='mysql-bin.000004',master_log_pos=246;

mysql> start slave;
mysql>show slave status\G;


注意要先关闭两台的防火墙

[root@localhost ~]# service iptables stop


五、master2请求master1

mysql> change master to master_host='192.168.111.139',master_user='zzfz',master_password='zzfz',master_log_file='mysql-bin.000004',master_log_pos=246;

mysql> start slave;
mysql>show slave status\G;


注意要先关闭两台的防火墙

[root@localhost ~]# service iptables stop


六、安装keepalived

1.到keepalived官网下载

http://www.keepalived.org/download.html

Keepalived for Linux - Version 1.2.23 - July 11, 2016

2.安装

[root@localhost ~]#tar zxvf keepalived-1.2.23.tar.gz

[root@localhost ~]cd keepalived-1.2.23

[root@localhost keepalived-1.2.23]./configure

[root@localhost keepalived-1.2.23]make

[root@localhost keepalived-1.2.23]make install

[root@localhost keepalived-1.2.23]cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/

[root@localhost keepalived-1.2.23]cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/

[root@localhost keepalived-1.2.23] mkdir /etc/keepalived

[root@localhost keepalived-1.2.23] cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/

[root@localhost keepalived-1.2.23] cp /usr/local/sbin/keepalived /usr/sbin/

3.编辑配置文件

master1的配置文件

[root@localhost ~]vi /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.200.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}

vrrp_instance VI_1 {
state BACKUP    //两台master上都改成</span>BACKUP
interface eth0
virtual_router_id 51
priority 100     //master1写100,master2写90,一般优先的写的数字要大一点
advert_int 1
nopreempt       // 手动添加这一行,不抢占模式
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.111.252    //两台上都要改成同一个网段的没有占用过的IP
}
}


master2的配置文件

[root@localhost ~]vi /etc/keepalived/keepalived.conf

<font color="windowtext"><font color="windowtext">! Configuration File for keepalived

global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.200.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}

vrrp_instance VI_1 {
state BACKUP    //两台master上都改成BACKUP
interface eth0
virtual_router_id 51
priority 90     //master1写100,master2写90,一般优先的写的数字要大一点
advert_int 1
nopreempt      // 手动添加这一行,不抢占模式
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.111.252    两台上都要改成同一个网段的没有占用过的IP
}
}


在master1和master2上运行keepalived服务

服务启动成功可以在先启动的一台上看到虚拟出来设定的IP地址192.168.111.252,而另一台上没有

如果在有虚拟IP的机器上停止keepalived服务,虚拟IP就会切换到另一台上,以实现mysql服务的高可用

七、测试

mysql_test机器连接虚拟的IP地址

[root@localhost ~]# mysql -h 192.168.111.252 -uzzfz -pzzfz


查看mysql的server id以验证服务被切换了

(zzfz@192.168.111.252) [(none)] show variables like '%server_id%';


server id 是138的机器是master1的

现在停止master1的keepalived服务

[root@localhost ~]# service keepalived stop


然后在mysql_test上查看虚拟IP是否被转移到master2上了

(zzfz@192.168.111.252) [(none)] show variables like '%server_id%';


可以看到server id 被转移到139上了

原文链接 http://www.waze7.com/?p=85
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  keepalived 主主复制