场景描述

#安装数据库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

keepalived mariadb 主主的更多相关文章

  1. MySQL 高可用性—keepalived+mysql双主(有详细步骤和全部配置项解释)

    博主QQ:819594300 博客地址:http://zpf666.blog.51cto.com/ 有什么疑问的朋友可以联系博主,博主会帮你们解答,谢谢支持! 前言:生产环境中一台mysql主机存在单 ...

  2. Keepalived + Mysql 主主复制高可用

    环境 系统:Centos 7.4 x64 服务:Mariadb 5.5 .Keepalived 1.3.5.6  结构 主1:192.168.1.108 主2:192.168.1.109 VIP:19 ...

  3. MySQL+Keepalived实现主主高可用方案

    Mysql主主高可用方案 master配置 [root@master ~]# yum -y install keepalived [root@master ~]# vim /etc/keepalive ...

  4. MySQL/MariaDB数据库的主主复制

      MySQL/MariaDB数据库的主主复制 作者:尹正杰  版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.主主复制概述 1>.什么是主主复制 所谓的主主复制,说白了就是两台节点互为 ...

  5. [转帖]【MySQL+keepalived】用keepalived实现MySQL主主模式的高可用

    [MySQL+keepalived]用keepalived实现MySQL主主模式的高可用 https://www.jianshu.com/p/8694d07595bc 一.实验说明 MySQL主主模式 ...

  6. KeepAlived主备/主主模型高可用Nginx

    部署准备: 两台CentOS 7主机HA1和HA2 CentOS 7 基于rpm包安装Nginx: 由于Base源中没有Nginx,所以要安装EPEL源,命令如下: wget http://dl.fe ...

  7. Nginx+keepalived双机热备(主主模式)

    之前已经介绍了Nginx+Keepalived双机热备的主从模式,今天在此基础上说下主主模式的配置. 由之前的配置信息可知:master机器(master-node):103.110.98.14/19 ...

  8. mysql 主主复制(双主复制)+ 配置KEEPALIVED实现热备

    binlog-do-db和replicate-do-db表示需要同步的数据库 binlog-ignore-db和replicate-ignore-db表示不需要同步的数据库 云端服务器为master配 ...

  9. Nginx+Keepalived主主负载均衡服务器

    Nginx+keepalived主主负载均衡服务器测试实验环境: 主Nginx之一:192.168.11.27主Nginx之二:192.168.11.28Web服务器一:192.168.11.37We ...

随机推荐

  1. Android开发之---Activity生命周期

    Android开发中,有四大组件:Activity.Service.Content Provider.Broadcast Receiver,可以说,activity的使用是最频繁的了,这里来梳理一下与 ...

  2. execl表格VLOOKUP函数的使用

    使用场景:最近在处理一个表格数据的时候出现了一点麻烦.想把另外表2里面对应的的数据放到表1里面,本来表2的ID是乱序的(这里为好看,就顺序排了.),一个个查找复制粘贴比较麻烦,后经大师指点VLOOKU ...

  3. 【Java EE 学习 27】【oracle学习第一天】

    一.oracle 11g安装的注意事项 1.超级管理员密码设置要符合要求(特别是不能以数字打头),否则在创建数据库的时候会产生ora-00922错误以及ora-28000错误. 解决方法:http:/ ...

  4. sd卡脱机烧写系统的方法(测试成功)

    一.sd卡烧写系统的基本思路: (1)把uboot.bin烧写到sd卡 (2)把image整个文件夹复制到sd卡 (3)开发板从sd卡启动,就开始自动烧写到nandflash中了. 二.烧写uboot ...

  5. HDU 4858 分块

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4858 题意:中文题面 思路:来自此博客 对每个点定义两个值:val,sum,val记录自己的特征值,s ...

  6. featherview模板引擎

    1.判断语法 <?php if(isset($value['fromVR']) && !empty($value['fromVR'])) {?> <s class=& ...

  7. TTrayIcon用法

    TTrayIcon用法 self.trycn1.Icon:=Application.Icon; Self.trycn1.Hint:=self.Caption; self.trycn1.Visible: ...

  8. BZOJ1493 [NOI2007]项链工厂

    未完待续... 终于改对了 热泪盈眶.jpg 错误原因:pushdown的时候没有判断是否有左右儿子,也没当x=0 return,于是出现一些奇怪的错误 #include<bits/stdc++ ...

  9. Self-introduction (自我介绍)

     * 姓名,本名不想这样就暴露,Rachel我英文名,不愿意叫算了,直接叫我米蟲就好了.   * 性格, 偏执一些,表里不一,表面和善,骨子倔强,我这一生都在追求高逼格,从未间断过 偶尔像个小疯子,有 ...

  10. <一>获取数据库连接

    一.JDBC_通过Driver接口获取数据库连接 1. Driver是一个接口:数据库厂商必须提供实现的接口,可以从其中 获取数据库连接. 2.JDBC URL由三部分组成,各部分用冒号隔开,格式:j ...