您现在的位置是:主页 > Web前端技术 > Web前端技术
mysql如何实现多主双向和级联复制开发技术
IDCBT2022-01-13【服务器技术】人已围观
简介这篇文章主要为大家展示了“mysql如何实现多主双向和级联复制”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“mysql如何实现多主
这篇文章主要为大家展示了“mysql如何实现多主双向和级联复制”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“mysql如何实现多主双向和级联复制”这篇文章吧。
一.解读在离线状态的切换,对于web
服务来说没什么影响,毕竟代码是一样的,所以不管部署在哪都一样。区别就是数据库中的数据。这就要求我们的主库,以及每个本机PC上部署的从库,他们之间能实现数据的自主同步。
关于可能的冲突,我们已经在业务层规避掉了。不同的单位,不会update相同的字段。不同的单位,不会在相同的表中insert。所以现在就只用关心mysql的自动同步,以及离线重连的自动续传了。
二.web设计1.web后端,我设置了读写分离(只是为了装一下,其实大可不必,毕竟内网并发量不高)
2.在线时,单位的访问,均select本地mysql,update/insert/delete总服务器mysql
3.离线时,单位的访问,均在本地mysql
(这很好实现,不同的域名地址,对应不同的项目,项目内提前设定好数据库router,由用户自主决定访问哪个域名地址即可。实际上,如果断网了,总服务器访问不通,他会自然而然的去访问本机服务的域名地址)
1.同步方式毋庸置疑用的是mysql自带的binlog
,mysql版本要选择5.7及以上的版本
2.多主双向:每个本机PC上的mysql
,要与总服务器上的mysql保持双主同步。
3.总服务器要开启级联复制,将下级单位PC产生的binlog,同步给其他单位的PC。以便其他单位的PC在离线时可以使用这部分数据
一阶段,先把所有库的master
功能启动,同时在库中创建访问账号供其他库使用:
主主库(总服务器)
①在mysql安装路径下找到启动文件my.ini
或my.cnf
,将如下信息放在启动文件的[mysqld]下:
log_bin=mysql-bin binlog_format=MIXED sync_binlog=1 expire_logs_days=7 binlog-do-db=equip_system slave-skip-errors=all master_info_repository=table relay_log_info_repository=table log-slave-updates=1
各参数的释义:
log_bin=mysql-bin:配置为mysql-bin时,mysql开启binlog功能
binlog_format=MIXED:binlog的记录方式,MIXED为混合记录方式
sync_binlog=1:
触发binlog由缓存刷新到磁盘所需要提交的事务数量,默认为0表示由磁盘文件系统控制,为1表示每提交一个事务即刷新一次(此时最安全,服务异常时丢失的事务最多只有1个,但IO消耗最大,高并发下忌用),常见的DBA一般设置为100。本项目并发量低,可设置为1expire_logs_days=7:
binlog有效时长,设置为7表示binlog存在7天后删除
很赞哦! ()