Mariadb互为主从(双主模式)配置
前言
这段时间 一直在Cloudera Manager集群上配置高可用的Mariadb服务。今天花一点记录一下自己的配置过程 希望后续的读者看到后 在遇到相同业务需求时具有参考价值。
以往我们在配置MySQL卓仓复制时,一般而言 在配置到一主 一从 能够实现MySQL的读写分离 就差不多了,因为导师的要求 这里要配置一个互为主从的MySQL服务,也就是我们常说的双主模式。
A B之间互相同步数据,A写入的数据在B上能够读取 更新,B上写入的数据在A上也鞥实现相同的操作。
因为在网上看到的大多数资料 都是配置的一主一从,这里 我就这段时间的配置过程 做一个大概的文档总结。
配置过程详解
我们在这里选取主机ip尾号为145 147的两台CentOS 7.1的主机来实现Mariadb的双主模式。
1.安装 mysql
yum install mariadb-embedded mariadb-libs mariadb-bench mariadb mariadb-server
2.mysql主从复制(互为主从)
1.在两台机器上分别添加一个用于从机访问的帐号, 赋予REPLICATION SLAVE权限.
GRANT REPLICATION SLAVE ON . TO ‘slave’@’%’ IDENTIFIED BY ‘000000’;
2.第一台服务器(IP: 172.19.2.147)运行:
GRANT REPLICATION SLAVE ON . TO ‘slave’@‘172.19.2.145’ IDENTIFIED BY ‘000000’;
3.第二台服务器(IP: 172.19.2.145)运行:
GRANT REPLICATION SLAVE ON . TO ‘slave’@‘172.19.2.147’ IDENTIFIED BY ‘000000’;
4 修改配置文件,配置服务器编号, 开启bin-log
vim /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
server-id=145 ##或者147不同主机的id唯一标识
log_bin =mysql-bin
#binlog_ignore_table=scm.CM_VERSION
relay-log = relay-mysql #开启二进制日志
relay-log-index =relay-mysql.index #开启中继日志
log_slave_updates=on
auto-increment-increment = 2
auto-increment-offset = 1 #从1开始 或者2开始 为避免id冲突 两台主机的起步要不同
打开这两行的注释, 注意这里的server-id是服务器编号, 所以, 两台服务器上的值要设置的不一样. 比如1和2,最好用IP地址最后一段标识。
如下图所示:
5.重启MySQL服务
Systemctl restart mariadb //重启
Systemctl status mariadb //查看进程
6.这里可以清空两台主机的master和slave日志(若之前有开启过同步的,需要先停止同步:stop slave;)
在mysql命令行中输入:
reset master;
reset slave;
7.在mysql命令模式执行
SHOW MASTER STATUS; ##前面已经查看过了。
分别给145 147数据库加读锁,防止配置同步时有数据写入: flush tables with read lock;
8.此时请保证执行这两条命令的mysql控制台不要退出,【非常重要】.
然后进mysql控制台,分别产看相关信息
在21服务器上:
show master status;
在25服务器上:
show master status;
分别重新打开一个mysql控台台(重要)
分别在新打开的两个mysql>中执行如下:
change master to master_host='172.19.2.147',master_user='slave',master_password='000000',master_log_file='mysql-bin.000002',master_log_pos=586748096;
change master to master_host='172.19.2.145',master_user='slave',master_password='000000',master_log_file='mysql-bin.000002',master_log_pos=429515657;
参数说明:
CHANGE MASTER TO
MASTER_HOST = ‘host’, #另一台机器的地址
MASTER_PORT = 3306, #另一台机器的端口
MASTER_USER = ‘slave’,#另一台机器上第一步分配的用户名
MASTER_PASSWORD = ‘000000’, #另一台机器上第一步分配的密码
MASTER_LOG_FILE = ‘mysql-bin.000001’,#另一台机器上执行SHOW MASTER STATUS得到的文件名(File)
MASTER_LOG_POS = 237; #另一台机器上执行SHOW MASTER STATUS得到的偏移量(Position)
9.START SLAVE;
10.SHOW SLAVE STATUS \G;
注意看 这里配置的是145 147的互为主从模式,所以一定是两个节点上的slave status上的Slave_IO_Running和Slave_SQL_Running都是Yes状态,这样才实现了 双主模式。
11. 解锁: unlock tables;
启动两个节点的slave 之后,我们队两个进行锁解除,然后写数据进行双主模式的测试。
一般而言,企业里面的数据库 数据表较大,数据属性多,这也是为什么 现在越来越多的商业应用中开始选用主从模式 甚至是双主模式来开发,归根结底 南国认为 很重要的一个原因 担心大量的读写操作 使得服务宕机。
所以在测试时,南国建议开发者可以在某个数据库中自己创建的少数属性的数据表,并在不同节点进行数据增删查改 我们还可以继续在MySQL命令行 查看两个节点的slave状态 是否还是双Yes。
如果一直是双Yes,而且数据可以实现互相读写同步,那么恭喜你 MySQL的双主模式你已经成功搭建好。
注意:
在配置MySQL互为主从模式(双主模式)时经常出现的坑是 两个节点只能实现一边主从,某一个节点上的slave status会显示错误,错误一般是1032 某个数据库中的信息不能更新,这是一般采用的方法是 将主库中的数据备份 然后加载到从库中,方可以得到解决。
也可以在从库中: stop slave; set global sql_slave_skip_counter=1;#执行跳过错误操作,但这个治标不治本,下次 主库更新数据 还会报错 start slave;
还有一些常见的错误例如1032 1062的错误及参考的解决办法,可以参考http://xstarcd.github.io/wiki/MySQL/online_mysqlrepl_error.html
小结:
南国配置MySQL双主模式 主要是因为最近部署CLoudera Manager HA模式所使用,在搭建的过程中 也是遇到了不少坑,好在最后还是成功了。 其实双主模式 最重要的考虑是 避免单一节点宕机 造成数据丢失,而没有将负载放在首要地位考虑。因为 现有的节点资源 足够大了,数据量远没有超过其负荷。
当然 不同应用场景 有不同考虑,更多认识 未完待续~
Mariadb互为主从(双主模式)配置相关推荐
- redis 互为主从(双主)
http://blog.csdn.net/zhu_tianwei/article/details/44982521
- mysql双主和主从的区别_MySQL群集,主从复制及双主模式
MySQL主从复制,是一个MySQL的群集,可以很好的解决的单点故障,并且可以进行读写分离来减轻数据库的压力.很多情况下主服务器仅作为写入数据服务器,而构建多个从节点来进行数据读取. 构建主从复制的几 ...
- Nginx+keepalived 高可用双机热备(主从模式/双主模式)
基础介绍 负载均衡技术对于一个网站尤其是大型网站的web服务器集群来说是至关重要的!做好负载均衡架构,可以实现故障转移和高可用环境,避免单点故障,保证网站健康持续运行. 关于负载均衡介绍,可以参考:l ...
- ssdb主从及双主模型配置和简单管理
ssdb主从及双主模型配置和简单管理 levelDB是一个key->value 的数据存储库,其只能在本地保存数据,支持持久化,并且支持保存非常大的数据,单机redis在保存较大数据的时候数十G ...
- mysql 主备和双主模式_MySQL双主模式
双主模式 互为主从:两个节点各自都要开启binlog和relay log(1)数据不一致 (2)自动增长ID 定义一个节点使用奇数ID auto_increment_offset=1 auto_inc ...
- MariaDB+Keepalived 搭建双主HA数据库服务
1.安装mysql 在linux版本下,mysql称为mariadb,可以选择在线安装,或编译安装.MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可.开 ...
- MySQL双主模式(2022/11/19)
MySQL双主模式(2022/11/19) 文章目录 MySQL双主模式(2022/11/19) 一.搭建环境 二.搭建过程 2.1 MySQL 服务安装 2.2 binlog 开启 2.3 创建节点 ...
- OpenResty+Keepalived组建高可用集群+双主模式
* 环境: system version:CentOS Linux release 7.5.1804 (Core) 3.10.0-862.9.1.el7.x86_64 nginx version:op ...
- mysql复制模式第二部分-----双主模式
双主配置 我在配置主从服务器时,使用了两台服务器:10.19.34.126和10.19.34.91. 1.首先需要在这两台上搭建单独的mysql服务masterA和masterB. 2.配置数据库ma ...
最新文章
- Java扫描注解下的包_使用Spring mvc 利用java的反射技术,来扫描对应包下的注解请求url 统一保存在数据库中...
- uniapp一键登陆(php)
- springboot快速集成swagger
- Visual Studio 2012 C# ActiveX控件开发总结
- java集合框架的结构_集合框架(Collections Framework)详解及代码示例
- 关于maven面试的哪些事儿~
- 使用python编写自己的进程调试工具
- emacs(考场+平时)配置方案
- Oracle 向上递归、向下递归
- win7启动黑屏安全模式下卸载驱动图解
- 大型软件工作站计算机性能配置要求,推荐配置7.3万元的高性能服务器计算机工作站(全文)...
- 使用计算机时什么是死机,电脑死机的原因是什么,电脑死机怎么办? - 电脑死机的原因 电脑死机怎么办 - 安全专题...
- Eclipse+Java+Swing实现宠物商店管理系统
- 提升工作效率五步走之前两步 2016-09-18 思佳真探
- js html 编辑器添加图片不显示,彻底解决ewebeditor网站后台不能上传图片的方法
- centos重启和关闭命令
- 操作系统----进程间通信的方式
- java 广告插件_谷歌提议 Chrome 限制广告插件
- Bug 生命周期 中的 各个状态!
- 各CCF期刊点评网站/学术论坛的信息汇总及个人评价