mysql将数据导入mgr_MySQL 8.0.20 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,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,使复制继续,即可修复。
本文由 @狗老大[Vip] 发布于 职涯宝 ,未经作者许可,禁止转载,欢迎您分享文章
mysql将数据导入mgr_MySQL 8.0.20 MGR数据迁移过程以及注意事项相关推荐
- 数据导入与预处理-第5章-数据清理
数据导入与预处理-第5章-数据清理 1. 数据清理概述 1.1 数据清理概述 1.2 什么是缺失值 1.3 什么是重复值 1.4 什么是异常值 2. 数据清理案例 2.1 缺失值处理 2.1.1 缺失 ...
- mysql8.0导入备份_mysql8.0.20配合binlog2sql的配置和简单备份恢复的步骤详解
第一步 安装 1.安装MySQL 2.安装Python3 [root@localhost /]#yum install python3 3.下载binlog2sql文件到本地(文件在百度云盘) [ro ...
- Android工具修复属性,Broken Android Data Extraction(安卓数据修复工具) V3.0.20 官方版
其他相关 Broken,Android,Data,Extraction_百度搜索if(window.bds&&bds.util&&bds.util.setContain ...
- python将excel数据导入ppt_使用python将excel数据导入数据库
因为需要对数据处理,将excel数据导入到数据库,记录一下过程. 使用到的库:xlrd 和 pymysql (如果需要写到excel可以使用xlwt) 直接丢代码,使用python3,注释比较清楚. ...
- 表格数据批量导入html,excel表格数据导入前端table-html中的表格数据怎样导入到ecxel表?...
如何将excel中的数据自动导入web页面中? 如何将Excel中一个表格的数据导入到另一个表格 DataTable.ImportSheet(FileName,SheetSource,SheetDes ...
- android ble蓝牙接收不到数据_Android蓝牙4.0 Ble读写数据详解 -2
Android蓝牙4.0 Ble读写数据详解 -2 上一篇说了如何扫描与链接蓝牙 这篇文章讲讲与蓝牙的数据传输,与一些踩到的坑. 先介绍一款调试工具,专门调试Ble蓝牙的app.名字叫:nRF-Con ...
- osm数据导入mysql_OSM(OpenStreetMap) poi、路网 数据导入 PostgreSQL
摘要: 标签 PostgreSQL , OSM , osm2pgsql , osm2pgrouting , osmosis 背景 从OpenStreetMap下载地图数据,使用osm2pgsql可以将 ...
- 如何将html数据导入excel,怎么把lnternet网页数据导入excel?
通过Excel的导入数据功能,用户可以将网页上的数据表资料导入Excel工作表,以便进一步加工处理成所需要的数据表.下面就教大家怎么导入数据表. 1.第一步单击菜单"数据'"导入外 ...
- python数据导入hive_Python操作HIve,将数据插入到Mysql
Python操作HIve,将数据插入到Mysql import sys from hive_service import ThriftHive from hive_service.ttypes imp ...
最新文章
- HDU 2717 Catch That Cow(BFS)
- iMeta | 第1卷第1期在线正式发布(2022/3/28)
- sts无法创建java_java – STS无法在我的机器上启动
- jconsole_我的Wiki:使用JConsole对WildFly(或JBoss AS7)进行远程JMX访问
- 2019年3月未来教育计算机二级题库,2019年3月计算机二Access考试操作模拟试题001...
- 小米“祭出” AIoT 神器!| 技术头条
- 集成学习(一)——随机森林以及GBDT
- android togglebutton 自定义,自定义控件之-----ToggleButton
- 深度学习框架中的魔鬼:探究人工智能系统中的安全问题
- vmware 里MAC 鼠标能移动 无法单击
- css3-10 css3中的边框样式有哪几种
- vb6,sql与access 获取当前日期
- 普通的Shader-序列帧相关
- 屏幕共享技术及相关软件使用测评
- rs232读取智能电表_预付费电表高性价比型号推荐 预付费抄表系统免费安装
- 中海达数据怎么转rinex_GPS_OEM原始数据向Rinex格式转换的方法
- python 中文分析句子成分_英语长难句看不懂,句子成分不会分析?一文轻松搞定...
- 奥维查看行政边界_全国乡镇行政区划数据乡镇边界数据查询获取方式
- 一度智信电商开网店怎么样?
- 微信支付调用第三方系统无返回值的问题