MySQL 8.0.20 MGR数据迁移过程以及注意事项
发表于:2025-01-22 作者:千家信息网编辑
千家信息网最后更新 2025年01月22日,1.背景近期由于业务调整,需要将Windows Server 2008 MySQL5.5数据库迁移到Windows Server 2012 MySQL8.0集群MGR中,由于实际部署时,有一台机器硬盘
千家信息网最后更新 2025年01月22日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安全错误
数据库的锁怎样保障安全
网络安全和云计算教学
从网络安全控制层次
126发送邮件服务器
怎么看app的服务器在哪里
期刊数据库暂未收录的论文
计算机网络技术就业调查报告
滨州染整软件开发价格
关闭服务器我的世界会被重置吗
明日方舟大佬服务器有哪些
启动提示无法连接服务器
北京力天无限网络技术
过软件开发认证的费用
.back是数据库文件么
内网访问内网服务器
pod文件管理服务器
h3c服务器ip地址改不了
美国服务器有哪些
监控服务器哪个品牌好
金山区企业软件开发问答知识
电脑宽带无线网络安全密钥
可靠的数据库有哪些
北京跃动网络技术有限公司
开源数据库连接工具比较
服务器是不是都是linux
阿里云服务器挂游戏
互联网科技小学生
全椒网络安全测评
架构ftp服务器
e池云服务器转发端口
世界上最混乱的服务器手游