当前位置:首页 > 数据库 > 正文

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 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   插入图片=============