MySQL高可用双活方案
1 需求概述
2 技术方案
2.1 双活同步条件
2.1.1 自增主键
2.1.2 同步用户
2.1.3 启用BinLog
2.2 配置复制任务
2.2.1 单向复制任务
2.2.2 反向复制任务
2.3 启动复制任务
1 需求概述
多地业务系统直接读写某地A的MySQL中心数据库数据,中心数据库数据实时同步到异地B的备份中心。当某地业务系统访问A地中心数据库失败时,则切换到B地备份数据库读写数据。对于B地备份中心产生的业务数据,需要实时回传至A地中心数据库库,确保A地业务中心与B地备份中心数据一致。
目前业务中心数据库采用MySQL 5.6,系统已运行多年,表主键基本采用自增列,表之间存在主外键依赖关系。
2 技术方案
在异地备份中心部署北京灵蜂Beedup数据库复制软件,软件采用日志解析方式捕获数据库变化数据,并将变化数据同步到目标库,实时保持数据库数据一致。
2.1 双活同步条件
2.1.1 自增主键
由于中心及备份数据库都会产生业务数据,导致中心或备份库产生的自增主键在跨库复制时会与目标库已有数据产生冲突,针对自增主键冲突问题有以下两种处理方式:
一、直接复制
调整数据库配置文件my.ini中的参数auto_increment_offset 和auto_increment_increment ,使得不同数据库产生的自增值不同,包含自增值的业务数据直接复制到目标库。
二、目标库计算
自增值在复制时由目标库重新计算产生,相关外键表数据在复制时自动调整外键值,以保持与主表数据的主外键依赖关系。
由于自增值在复制前后会发生变化,需要在每张包含自增列的表中额外增加列origin_id bigint null,该列由Beedup自动创建并对应用系统透明,仅在数据同步到目标端时记录原来的自增值。
2.1.2 同步用户
对于主从库双向同步,需要在主从库单独建立同步用户,该用户仅用于Beedup连接数据库,不可用于其它场景。
以同步用户sync为例,创建用户及权限分配语句如下:
CREATE USER 'sync'@'%' IDENTIFIED BY 'xxxxx';
GRANT SELECT,PROCESS,SUPER, REPLICATION CLIENT,REPLICATION SLAVE ON *.* TO 'sync'@'%';
2.1.3 启用BinLog
开启主从数据库二进制日志并设置日志格式为row。
编辑my.ini文件
log-bin="xxxxxx"
binlog_format="ROW"
2.2 配置复制任务
Beedup复制任务用于将主库数据变化实时复制到从库。对于数据库双向复制,需要配置2个复制方向相反的任务,第一个任务用于复制业务中心变化到备份中心,第二个任务用于从备份中心复制变化到业务中心。
2.2.1 单向复制任务
配置业务中心到备份中心复制任务,操作如下。
选择工具栏[新建]按钮,在任务属性对话框中依次设置主库及从库连接参数。
对于业务中心到备份中心复制,勾选[全量复制]。
选择[过滤]按钮,在[过滤选项]对话框设置忽略用户sync。
如果自增值在复制时由目标库重新计算产生,则选择[集成]按钮,在[集成选项]对话框设置辅助列。
注意:如果自增值可以直接复制,则无需设置集成选项。
选择[确定]按钮关闭[任务属性]对话框,完成业务中心到备份中心的复制任务配置。
2.2.2 反向复制任务
配置备份中心到业务中心复制任务,操作如下。
选择工具栏[新建]按钮,弹出任务属性对话框,依次设置主库及从库连接参数。
对于备份中心到业务中心复制,取消 [全量复制] 勾选。
选择[过滤]按钮,在[过滤选项]对话框设置忽略用户sync。
如果自增值在复制时由目标库计算产生,则选择[集成]按钮,在[集成选项]对话框设置辅助列。
注意:如果自增值可以直接复制,则无需设置集成选项。
选择[确定]按钮关闭[任务属性]对话框,完成备份中心到业务中心的复制任务配置。
2.3 启动复制任务
依次选中任务sync和sync_inverse,然后选择工具栏[启动]按钮。
MySQL高可用双活方案相关推荐
- Heartbeat+DRBD+MySQL高可用架构方案与实施过程细节 【转】
文章出处:Heartbeat+DRBD+MySQL高可用架构方案与实施过程细节 [转] mysql数据库高可用高扩展性架构方案实施[原] Heartbeat+DRBD+MySQ ...
- Heartbeat+DRBD+MySQL高可用架构方案与实施过程细节
https://blog.51cto.com/oldboy/1240412 转载于:https://blog.51cto.com/benchmarking/2103955
- MySQL高可用实战方案——MHA
一.关于MHA不得不了解的 使用MHA能够让我们更大程度的解放双手,用更少的指令完成更多的事,MHA主要能够做以下几件事: 自动的在MASTER宕机后选举新的SLAVE作为MASTER,保证服务不被中 ...
- mysql高可用方案_MySQL高可用集群方案
一.Mysql高可用解决方案 方案一:共享存储 一般共享存储采用比较多的是 SAN/NAS 方案. 方案二:操作系统实时数据块复制 这个方案的典型场景是 DRBD,DRBD架构(MySQL+DRBD+ ...
- 爱奇艺MySQL高可用方案概述
写在前面 爱奇艺每天都为数以亿计的用户提供7x24小时不间断的视频服务.通过爱奇艺的平台,用户可以方便的获取海量.优质.高清的视频资源.但如果服务平台出现故障,会有大量的用户将无法正常播放视频,因此我 ...
- mysql高可用架构_mysql高可用架构详解
高可用(High Availabiltity)应用提供持续不间断(可用)的服务的能力 系统高可用性的评价通常用可用率表示 造成不可用的原因硬件故障(各种) 预期中的系统软硬件维护 软件缺陷(应用代码, ...
- mysql高可用_mysql高可用方案
第一节:mysql 高可用方案 1.1 一主一从架构 mysql 配置为主从模式,从库是主库的 backup,同一时间设置其中一台为主服务器,提供读写,另一台服务器作为热备,不提供读写,通过复制与主服 ...
- mysql复制架构迁移到pxc_mysql复制(高可用架构方案的基础)
mysql复制:把一个数据库实例上所有改变复制到另外一个数据库库服务器实例的过程 特点: 1.没有改变就无所谓复制 ;改变是复制的根本与数据源 2.所有的改变:是指可以复制全部改变,也可以复制部分改变 ...
- MySQL高可用方案-PXC(Percona XtraDB Cluster)环境部署详解
MySQL高可用方案-PXC(Percona XtraDB Cluster)环境部署详解 Percona XtraDB Cluster简称PXC.Percona Xtradb Cluster的实现是在 ...
最新文章
- Extjs4 MVC 示例
- linux文件管理系统开发毕业,定稿毕业论文基于Linux的远程管理系统服务器端的实现word文档(范文1)...
- [蓝桥杯2017初赛]跳蚱蜢-map标记+bfs+环形数组
- 听说,他用报表关联数据库表,运维效率提升70%?
- 【计算机网络】ACL工作原理及标准
- Vijos P1398 奖学金【排序】
- 转载 Log4j2在WEB项目中配置
- 美国数字货币牌照BitLicence中文版(全文翻译)
- java实现打印菱形(任意输入数字打印任意阶菱形)
- JS(fullpage)的使用
- 怎么让浏览器一直前置_上海居住证积分没有前置学历怎么解决?
- Linux系统故障-MBR(主引导记录)被破坏的解决方法
- ART-Pi系列文章
- goproxy和go modules的初步使用
- 欲借“菜篮子”生意赴美上市,叮咚买菜能解生鲜电商近渴吗?
- C++第3次实验:【项目三】定期存款利息计算器
- Python+Vue计算机毕业设计在线教育平台1ldd7(程序+LW+源码+部署)
- Ubuntu 14.04 安装 fcitx(小企鹅) 输入法
- linux shell脚本 nohup,linux真正使用shell脚本做定时任务 关键的Nohup
- 逻辑学导论第11版练习题
热门文章
- 庖丁解牛Linux内核分析慕课课程
- 渗透php网站步骤,渗透DVBBS php网站的全程记录 -电脑资料
- Package Manager 搜索不到资源包的问题
- 测试not_in_vstart_and_v3(mate)_no_tec_rec错误
- 简单因式分解100道及答案_请帮忙出100道简单的初二因式分解题 (象x y类型) 急用!!!!!!!!1...
- 压电雨量传感器的两种安装方式
- android模拟器32位下载,【天天安卓模拟器和Internet Explorer 10(32位)哪个好用】天天安卓模拟器和Internet Explorer 10(32位)对比-ZOL下载...
- JavaScript高级程序设计(反刍) 11
- 人工智能2017.2018年发展及未来的发展趋势(转)
- 破万亿!英伟达的市值