博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据库迁移mysql8_MySQL 8.0.20 MGR数据迁移过程以及注意事项
阅读量:5870 次
发布时间:2019-06-19

本文共 1736 字,大约阅读时间需要 5 分钟。

1.背景

近期由于业务调整,需要将Windows Server 2008 MySQL5.5数据库迁移到Windows Server 2012 MySQL8.0集群MGR中,由于实际部署时,有一台机器硬盘损坏,只能构建双节点MGR,在迁移以及应用迁移过程中遇到许多参数与迁移效率问题,特此记录。

2.迁移表单个文件过大

由于有部分数据来源于文本文件,单个文件达到40G之大,且原表为MyISAM存储引擎,由于MGR只支持事务引擎InnoDB,

所以需要修改文本文件头建表语句以及拆分文件,并行导入,使用如下两款软件进行了修改大文件以及拆分:

EmEditor,可以打开超大文件。

Windows Unix增强工具。

3.并行导入遇到问题

第一阶段:由于最开始导入时开启了MGR,由于使用Navicat执行SQL文件方式导入数据,导致由于关闭autocommit,单个事务超大,MGR在最后提交阶段由于网络不稳定,导致验证过长,效率非常底下。

第二阶段:尝试打开autocommit方式,发现由于不停写binlog与数据文件,效率更差。

第三阶段:拆分MGR,将文件传送两个服务器,关闭binlog,分别导入,效率非常高,将1.7亿万,40G数据拆分为20个

文件,分别开20个并行导入,两台机器并行导入,并且将MySQL所有文件迁移到服务器SSD磁盘,40分钟即可完成所有数据导入。

4.导入过程遇到MGR与MySQL参数限制问题

group_replication_transaction_size_limit

# 最大值2147483647,近似2G,在组成MGR进行单事务大量数据导入或更新时,需要考虑该参数影响,有可能由于

该参数设置过小导致最后阶段失败,不过大事务对于MGR确实不太友好,节点互相确认消耗大量网络带宽。

max_binlog_cache_size

# 事务过大,需要相应调大该参数,实测,1000万行数据大约需要3~4G该参数,

# 官方文档不建议设置过大该参数,最大建议4G

5.由于需要导入MyISAM导致MGR数据不一致问题解决

最后数据迁移完毕之后,由于在之前由于导入MyISAM引擎表,临时禁用disable_storage_engines,导致启动MGR之后

有MGR不支持的操作报错:

ERROR 3098 (HY000): The table does not comply with the requirements by an external plugin.

上面报错,MGR中违反MGR限制的报错都报上述错误,并不会具体表述由于详细原因,比如使用对MyISAM表操作,

没有主键唯一键表创建之后,插入数据,都将报上述错误。

MGR不一致问题解决流程如下:

1. 查看集群状态,确定故障节点

SELECT * FROM PERFORMANCE_SCHEMA.REPLICATION_GROUP_MEMBERS;

# 查看集群所有节点状态,找到具体Error或recovering节点。

2.查看故障节点error log

# 查看error log,确定故障gtid,position

3.分析当前读写节点发生问题binlog

# mysqlbinlog命令分析,找到故障执行语句,明确故障原因。

4.查看具体故障发生表大小,状态

(1)确定表大小以及是否经常修改,如果为经常修改大表,则考虑对故障节点利用备份重建

(2)如果表不大或不经常改变,改变可以明确预知时段,可以考虑故障节点reset master,然后设置gtid_purged或者

使用设置gtid_next为故障gtid方式,如果可以正常复制到读写节点当前gtid,然后再在不变时段导出,如果继续报错,则

继续查看是否为故障表,如果是继续跳过,知道可以正常追数据到读写节点当前gtid,记录故障节点show master status

复制点,临时设置故障read_only与super_read_only为off,导入故障节点,然后reset master或设置gtid_next为

show master status记录的gtid,使复制继续,即可修复。

转载地址:http://hutnx.baihongyu.com/

你可能感兴趣的文章
Kotlin和Swift在Redmonk语言排行榜上的排名大幅提升
查看>>
宝马将机器架上微软 Azure,国内科技巨头也难抵汽车“诱惑”
查看>>
Spark Streaming 作者,Alluxio 的创始人李浩源:AI 潮流对做数据存储业务公司的挑战...
查看>>
立下“去O”Flag的AWS,悄悄修炼了哪些内功?
查看>>
ASP.NET Core 3.0项目开始“瘦身”
查看>>
高效使用微软Azure服务总线的消息功能
查看>>
试水区块链出版?纽约时报在招人了
查看>>
Google 和 Facebook 披露全球范围宕机原因
查看>>
中台之上(六):如何为一个商业银行设计业务架构?
查看>>
Facebook开源图像处理库Spectrum,优化移动端图像生成
查看>>
前端工程师必读的10篇精选技术文章
查看>>
C#特性: 只读本地变量
查看>>
克服敏捷商业智能的挑战
查看>>
从后端到前端的转变:如何选择框架?
查看>>
如何在windows下搭建Nginx+MySQL+PHP环境
查看>>
IBM核心软件如何应对“互联网+”的技术挑战
查看>>
基于Kafka实现分布式事件驱动
查看>>
24周年,“常青树”Delphi发布新版本10.3.1
查看>>
百度云首次公布具体营收,2018年Q4营收破11亿
查看>>
SciPy达到1.0版本,有了新的治理结构
查看>>