百万级MySQL的数据量,该如何快速的完成数据迁移?
背景
上个月跟朋友一起做了个微信小程序,趁着5.20节日的热度,两个礼拜内迅速积累了一百多万用户,我们在小程序页面增加了收集formid的埋点,用于给微信用户发送模板消息通知。
这个小程序一开始的后端逻辑是用douchat框架写的,使用框架自带的dc_mp_fans表存储微信端授权登录的用户信息,使用dc_mp_tempmsg表存储formid。截止到目前,收集到的数据超过380万,很大一部分formid都已经成功使用给用户发送过模板通知,起到了较好的二次推广的效果。
随着数据量的增大,之前使用的服务器空间开始有点不够用,最近新写了一个专门用于做小程序后台开发的框架,于是想把原来的数据迁移到新系统的数据库。买了一台4核8G的机器,开始做数据迁移。下面对迁移过程做一个简单的记录。关注公众号互联网架构师,回复关键字2T,获取最新架构视频
复制数据文件到目标服务器
- zip fans.zip /data/fans.txt
- scp fans.zip root@ip:/data/
在目标数据库导入文件
- unzip /data/fans.zip
- load data infile '/data/fans.txt' into table wxa_fans(id,appid,openid,unionid,@dummy,created_at,@dummy,nickname,gender,avatar_url,@dummy,@d
按照这么几个步骤操作,几分钟内就完成了一个百万级数据表的跨服务器迁移工作。
注意项
- mysql安全项设置
在mysql执行load data infile和into outfile命令都需要在mysql开启了secure_file_priv选项, 可以通过show global variables like '%secure%';查看mysql是否开启了此选项,默认值Null标识不允许执行导入导出命令。通过vim /etc/my.cnf修改mysql配置项,将secure_file_priv的值设置为空:
- [mysqld]
- secure_file_priv=''
则可通过命令导入导出数据文件。
导入导出的数据表字段不对应
上面示例的从源数据库的dc_mp_fans表迁移数据到目标数据库的wxa_fans表,两个数据表的字段分别为:- dc_mp_fans
在导入数据的时候,可以通过设置字段名来匹配目标字段的数据,可以通过@dummy丢弃掉不需要的目标字段数据。
总结
结合本次数据迁移经历,总结起来就是:小数据量可以使用mysqldump命令进行导入导出,这种方式简单便捷。- 数据量较大,且有足够的迁移耐心时,可以选择自己写脚本,选择合适的并行方案迁移数据,这种方式编码成本较高。- 数据量较大,且希望能在短时间内完成数据迁移时,可以通过mysql导入导出文件的方式来迁移,这种方式效率较高。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
微软承认Windows 10新BUG:错误显示没有网络连接
在 7 月补丁星期二活动中,微软发布的累积更新已经修复 Windows 10 系统中的大量 BUG。不过近日,微软承认了存在于 Windows 10 May 2020(20H1/Version 2004)功能更新中的新问题--显示错误的互联网连接警告。 根据用户的反馈,在系统托盘中网络状态图标上会出现黄色的三角形警告,并报告称“无法连接到网络中”。当你的设备正确连接到路由器的时候就有可能显示该错误。 一位用户反馈道:“我重启了笔记本电脑、路由器,并重新安装了网络无线适配器的驱动程序,但是依然显示这个错误信息”。 尽管显示这个错误的网络连接警告,但是用户依然可以在浏览器中正常访问网页。不过,Spotify、Cortana、Microsoft Store、Feedback Hub 等应用似乎都会根据 Windows 10 的网络状态才能访问服务器。因此,当你出现虚假的网络状态报告的时候,Spotify 和其他应用程序可能无法正常工作。 目前临时的解决方案如下 打开Windows搜索。 查找 "Registry Editor"。 打开 "注册表编辑器"。 导航到 "HKEY_LOCAL_MA...
- 下一篇
生活物联网平台设置数据同步操作步骤
云栖号快速入门:【点击查看更多云产品快速入门】不知道怎么入门?这里分分钟解决新手入门等基础问题,可快速完成产品配置操作! 当生活物联网平台与第三方企业服务器之间需要进行数据传输时,需要通过HTTP/2 SDK实现数据同步,同步的数据包括设备信息和用户信息。 背景信息 数据同步通过HTTP/2推送方式,原理图如下。 操作步骤 1.在生活物联网平台主页面,单击API服务。2.单击开启,打开数据同步的开关。3.选择数据同步的产品名称。开启数据同步后,所有的产品默认都打开数据同步。用户可根据需要,关闭无需数据同步的产品。 后续步骤 更多操作,请参见数据HTTP/2方式推送。 本文来自 阿里云文档中心 生活物联网平台 设置数据同步 【云栖号在线课堂】每天都有产品技术专家分享!课程地址:https://yqh.aliyun.com/zhibo 立即加入社群,与专家面对面,及时了解课程最新动态!【云栖号在线课堂 社群】https://c.tb.cn/F3.Z8gvnK
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- SpringBoot2全家桶,快速入门学习开发网站教程
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- MySQL8.0.19开启GTID主从同步CentOS8
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Windows10,CentOS7,CentOS8安装Nodejs环境
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果