码迷,mamicode.com
首页 > 数据库 > 详细

Lvs+keepalived+mysql(主主复制)

时间:2018-04-20 16:03:52      阅读:203      评论:0      收藏:0      [点我收藏+]

标签:oop   prevent   信息   cat   /etc   ash   port   ase   启动脚本   

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 mysql
 
2.2、关闭防火墙
    
 service iptables stop
 chkconfig iptables off
 
2.3、修改root用户名/访问权限
use mysql
delete from user where user=‘‘;
grant replication slave on *.* to ‘root‘@‘%‘ identified by ‘123456‘;
2.4、修改/etc/my.cnf
在node2机器上配置如下
 
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
 
log-bin=mysql-bin
server-id=1
#需要记录二进制日志的数据库,如果有多个库,写多个binlog-do-db,用逗号隔开,测试时发现不能同步?有空在研究
binlog-do-db=amdb
binlog-do-db=hivedb
binlog-do-db=ooziedb
#不需要记录日志的数据库
binlog-ignore-db=mysql
#需要同步的数据库
replicate-do-db=amdb
replicate-do-db=hivedb
replicate-do-db=ooziedb
#不需要同步的库
replicate-ignore-db=mysql,information_schema
#默认值3600s
slave-net-timeout=60
 
#保证slave挂在任何一台master上都会接收到另一个master的写入信息
log-slave-updates
sync_binlog=1
slave-skip-errors=all
auto_increment_offset=1
auto_increment_increment=2
 
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
 
 
在node3机器上配置如下
 
 
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
 
log-bin=mysql-bin
#设置不同的id
server-id=2
#需要记录二进制日志的数据库,如果有多个库,写多个binlog-do-db,用逗号隔开,测试时发现不能同步?有空在研究
binlog-do-db=amdb
binlog-do-db=hivedb
binlog-do-db=ooziedb
#不需要记录日志的数据库
binlog-ignore-db=mysql
#需要同步的数据库
replicate-do-db=amdb
replicate-do-db=hivedb
replicate-do-db=ooziedb
#不需要同步的库
replicate-ignore-db=mysql,information_schema
#默认值3600s
slave-net-timeout=60
 
#保证slave挂在任何一台master上都会接收到另一个master的写入信息
log-slave-updates
sync_binlog=1
slave-skip-errors=all
auto_increment_offset=1
auto_increment_increment=2
 
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
 
2.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_rocky
Binlog_Ignore_DB: mysql
1 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_rocky
Binlog_Ignore_DB: mysql
1 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: Yes
3、Lvs配置
3.1 安装lvs
yum install ipvsadm
3.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/functions
case "$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 1
esac
exit 0
 
配置开机启动
 
 echo "/etc/init.d/realserver.sh start" >> /etc/rc.d/rc.local
4、配置keepalived
4.1、安装keepalived
  yum install keepalived
 
4.2、配置keepalived.conf
 
 
  
vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_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
 
插入图片=============
技术分享图片
 
 
 
 
技术分享图片技术分享图片技术分享图片技术分享图片技术分享图片技术分享图片技术分享图片
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Lvs+keepalived+mysql(主主复制)

标签:oop   prevent   信息   cat   /etc   ash   port   ase   启动脚本   

原文地址:https://www.cnblogs.com/lovelanglangyou/p/8890764.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!