keepalived mariadb 主主

场景描述

#安装数据库mariadb 主主模式 keepalived 调度
#mysql1 192.168.30.99
#mysql2 192.168.30.100
#vip 192.168.30.101

yum install mariadb-server keepalived -y 

配置keepalived

global_defs {
   router_id mysql-ha
}

vrrp_instance VI_1 {
    state BACKUP # 两个节点都为BACKUP状态,根据优先级大小判断谁为MASTER
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 1
    nopreempt # 非抢占模式
    authentication {
        auth_type PASS
        auth_pass 1111
    }

    # 虚拟IP池
    virtual_ipaddress {
        192.168.30.101
    }
}

virtual_server 192.168.30.101 3306 {
     delay_loop 2
     lb_algo wrr #如果调度失败 可以注释这两行
     lb_kind DR #
     persistence_timeout 60
     protocol TCP
     real_server 192.168.1.99 3306 {
         weight 3
         notify_down /etc/keepalived/mysql.sh  # 当mysql服务down了之后,执行的脚本
         TCP_CHECK {
             connect_timeout 10   # mysql连接超时时长(秒)
             nb_get_retry 3       # mysql服务连接失败,重试次数
             delay_before_retry 3 #每隔3秒检测一次mysql服务是否可用
             connect_port 3306
         }
     }
}
#节点二配置
global_defs {
   router_id mysql-ha
}

vrrp_instance VI_1 {
    state BACKUP
    interface eth0
    virtual_router_id 51
    priority 90
    advert_int 1
    nopreempt
    authentication {
        auth_type PASS
        auth_pass 1111
    }

    virtual_ipaddress {
        192.168.30.101
    }
}

virtual_server 192.168.30.101 3306 {
     delay_loop 2
     lb_algo wrr #如果调度不成功,可以将这两行注释
     lb_kind DR #
     persistence_timeout 60
     protocol TCP
     real_server 192.168.30.100 3306 {
         weight 3
         notify_down /etc/keepalived/mysql.sh
         TCP_CHECK {
             connect_timeout 10
             nb_get_retry 3
             delay_before_retry 3
             connect_port 3306
         }
     }
}

  配置数据库

#配置mysql主主模式
#mysql1 192.168.30.99 配置
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-bin=mysql-bin
server-id=1
symbolic-links=0
character-set-server=utf8
[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid

!includedir /etc/my.cnf.d

service mariadb start 
#创建账号用户同步
mysql -uroot -p 
grant replication slave on *.* to 'backup'@'192.168.30.100' identified by 'backup'; flush privileges;
show master status;
MariaDB [(none)]> show master status;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000007 |    40989 |              |                  |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
#在100上配置
vi /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-bin=mysql-bin
server-id=2
symbolic-links=0
character-set-server=utf8
[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid

!includedir /etc/my.cnf.d
service mariadb start 
mysql -uroot -p 
change master to master_host='192.168.30.99',master_user='backup',master_password='backup',master_log_file='mysql-bin.000007',master_log_pos=40989;
show slave status \G;
#查看到Slave_IO_Running :yes 和Slave_SQL_Running yes 则说明同步成功,如果没有可以关闭防火墙和SELinux 然后重启服务器
setenforce 0
iptables -F 
service mariadb restart 
#设置99和100互为主从关系
#100上操作
mysql -uroot -p
grant replication slave on *.* to 'backup'@'192.168.30.99' identified by 'backup'; flush privileges;
show master status;
MariaDB [(none)]> show master status ;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000009 |      245 |              |                  |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
 change master to master_host='192.168.30.100',master_user='backup',master_password='backup',master_log_file='mysql-bin.000009',master_log_pos=245;
 show slave status \G;
 

 如果同步不成功 可以重启mariadb试试

然后在99 上面创建数据表 测试 

 

重启服务

service mariadb restart 

service keepalived restart 

posted @ 2016-10-19 14:58  不会游泳的鱼pdj  阅读(309)  评论(0编辑  收藏  举报