Lvs+keepalived+mysql(主从复制)
1、准备环境
操作系统:centos 6.5
2台机器主机名为node53、node54
| Mysql | Lvs | keepalived | |
| node2 | Y | Y | Y |
| node3 | Y | Y | Y |
2、安装mysql(配置主主复制)
| 服务器名称 | ip | vip |
| node2 | 192.168.0.12 | 192.168.0.200 |
| node3 | 192.168.0.13 | 192.168.0.200 |
2.1、安装数据库
yum install -y mysql2.2、关闭防火墙
service iptables stop chkconfig iptables off2.3、修改root用户名/访问权限
use mysqldelete from user where user='';grant replication slave on *.* to 'root'@'%' identified by '123456';2.4、修改/etc/my.cnf
在node2机器上配置如下
[mysqld]datadir=/var/lib/mysqlsocket=/var/lib/mysql/mysql.sockuser=mysql# Disabling symbolic-links is recommended to prevent assorted security riskssymbolic-links=0log-bin=mysql-binserver-id=1#需要记录二进制日志的数据库,如果有多个库,写多个binlog-do-db,用逗号隔开,测试时发现不能同步?有空在研究binlog-do-db=amdbbinlog-do-db=hivedbbinlog-do-db=ooziedb#不需要记录日志的数据库binlog-ignore-db=mysql#需要同步的数据库replicate-do-db=amdbreplicate-do-db=hivedbreplicate-do-db=ooziedb#不需要同步的库replicate-ignore-db=mysql,information_schema#默认值3600sslave-net-timeout=60#保证slave挂在任何一台master上都会接收到另一个master的写入信息log-slave-updatessync_binlog=1slave-skip-errors=allauto_increment_offset=1auto_increment_increment=2[mysqld_safe]log-error=/var/log/mysqld.logpid-file=/var/run/mysqld/mysqld.pid在node3机器上配置如下
[mysqld]datadir=/var/lib/mysqlsocket=/var/lib/mysql/mysql.sockuser=mysql# Disabling symbolic-links is recommended to prevent assorted security riskssymbolic-links=0log-bin=mysql-bin#设置不同的idserver-id=2#需要记录二进制日志的数据库,如果有多个库,写多个binlog-do-db,用逗号隔开,测试时发现不能同步?有空在研究binlog-do-db=amdbbinlog-do-db=hivedbbinlog-do-db=ooziedb#不需要记录日志的数据库binlog-ignore-db=mysql#需要同步的数据库replicate-do-db=amdbreplicate-do-db=hivedbreplicate-do-db=ooziedb#不需要同步的库replicate-ignore-db=mysql,information_schema#默认值3600sslave-net-timeout=60#保证slave挂在任何一台master上都会接收到另一个master的写入信息log-slave-updatessync_binlog=1slave-skip-errors=allauto_increment_offset=1auto_increment_increment=2[mysqld_safe]log-error=/var/log/mysqld.logpid-file=/var/run/mysqld/mysqld.pid2.5、重启mysql服务
service mysqld restart
2.6、分别在node2、node3上执行
mysql> flush tables with read lock;#防止进入新的数据Query OK, 0 rows affected (0.00 sec)mysql> show master status\G;*************************** 1. row *************************** File: mysql-bin.000007 Position: 438 Binlog_Do_DB: db_rockyBinlog_Ignore_DB: mysql1 row in set (0.00 sec)在node3
mysql> flush tables with read lock;Query OK, 0 rows affected (0.00 sec)mysql> show master status\G;*************************** 1. row *************************** File: mysql-bin.000008 Position: 107 Binlog_Do_DB: db_rockyBinlog_Ignore_DB: mysql1 row in set (0.01 sec)2.7、在node2、node3指定同步位置
在node53
mysql> change master to master_host='10.211.55.54',master_user='root',master_password='123456',master_log_file='mysql-bin.000008',master_log_pos=107;Query OK, 0 rows affected (0.05 sec)在node3
mysql> change master to master_host='10.211.55.53',master_user='root',master_password='123456', -> master_log_file='mysql-bin.000007',master_log_pos=438;Query OK, 0 rows affected (0.15 sec)注:master_log_file,master_log_pos由上面主服务器查出的状态值中确定
2.8、解锁表
mysql> unlock tables;mysql> start slave;2.9、分别在2台机器查看状态
show slave status\G;
如果显示如下,则正常
Slave_IO_Running: Yes Slave_SQL_Running: Yes3、Lvs配置
3.1 安装lvs
yum install ipvsadm3.2 编写启动脚本
vim /etc/init.d/realserver.sh#!/bin/bash#description: Config realserver lo and apply noarp SNS_VIP=10.211.55.200/etc/rc.d/init.d/functionscase "$1" in start) ifconfig eth0:1 $SNS_VIP/24 /sbin/route add -host $SNS_VIP dev eth0:1 echo "vip Start OK" ifconfig lo:0 $SNS_VIP netmask 255.255.255.255 broadcast $SNS_VIP /sbin/route add -host $SNS_VIP dev lo:0 echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce sysctl -p >/dev/null 2>&1 echo "RealServer Start OK" ;; stop) ifconfig eth0:1 down route del $SNS_VIP >/dev/null 2>&1 echo "vip Stoped" ifconfig lo:0 down route del $SNS_VIP >/dev/null 2>&1 echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce echo "RealServer Stoped" ;; *) echo "Usage: $0 {start|stop}" exit 1esacexit 0配置开机启动
echo "/etc/init.d/realserver.sh start" >> /etc/rc.d/rc.local4、配置keepalived
4.1、安装keepalived
yum install keepalived4.2、配置keepalived.conf
vim /etc/keepalived/keepalived.conf! Configuration File for keepalivedglobal_defs { notification_email { yangyufans@qq.com } notification_email_from yangyufans@qq.com smtp_server smtp.qq.com smtp_connect_timeout 30 router_id LVS1} vrrp_sync_group test { group { loadbalance }} vrrp_instance loadbalance { state MASTER lvs_sync_daemon_inteface eth0 virtual_router_id 51 priority 150 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 10.211.55.200 dev eth0 label eth0:1 }}virtual_server 10.211.55.200 3306 { delay_loop 6 lb_algo rr lb_kind DR persistence_timeout 20 protocol TCP sorry_server 10.211.55.54 3306 real_server 10.211.55.53 3306 { weight 3 TCP_CHECK { connect_timeout 3 nb_get_retry 3 delay_before_retry 3 connect_port 3306 } }}在node3上配置keepalived.conf
2个参数不同,其他配置相同
state BACKUP
priority 100
chkconfig keepalived on
插入图片=============









浙公网安备 33010602011771号