MySQL 8.0.20 MGR数据迁移过程以及注意事项
发表于:2025-11-10 作者:千家信息网编辑
千家信息网最后更新 2025年11月10日,1.背景近期由于业务调整,需要将Windows Server 2008 MySQL5.5数据库迁移到Windows Server 2012 MySQL8.0集群MGR中,由于实际部署时,有一台机器硬盘
千家信息网最后更新 2025年11月10日MySQL 8.0.20 MGR数据迁移过程以及注意事项5.由于需要导入MyISAM导致MGR数据不一致问题解决
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,position3.分析当前读写节点发生问题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,使复制继续,即可修复。
故障
节点
数据
文件
参数
问题
事务
阶段
效率
引擎
方式
状态
集群
过程
最大
一致
单个
原因
大小
建议
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
虚拟主机怎么设置成服务器
甘肃精益管理软件开发
山东大学生网络安全比赛
基本的网络安全行业知识
查询数据库中以a开头的字符
做发卡网站需要什么服务器
c中怎么交换数据库
计算机运维和软件开发
数据库中数据流图和ER图
联想服务器接口说明书
组态王报警数据放到数据库
四川服务器阵列卡云空间
个人电脑搭建服务器占用网速吗
济南中裕网络技术有限公司
什么是构成数据库的最小单元
数据库自学哪个软件好
java查询数据库中存储过程
传真发送到服务器端错误
msmq服务器
软件开发合同规范
数据库session设定值
移动软件开发技术实验
网络安全立法的首要目的是
软件开发项目负责人制度
成都线美互联网科技有限公司
临清手机软件开发
oracle 数据库调优
成都前端软件开发价钱是多少
怎样筑牢国家网络安全屏障
关于网络安全的志愿者活动