当前位置:网站首页>项目中遇到的线上数据迁移方案1---总体思路整理和技术梳理
项目中遇到的线上数据迁移方案1---总体思路整理和技术梳理
2022-07-04 18:00:00 【Koikoi123】
项目有一个需求,旧库拆分到新库,将旧数据迁移到新库里,期间需要考虑补录和迁移数据,因为没有canal同步,我分配到的任务就是在代码里加入补录迁移数据的接口去保证迁移顺滑和数据一致性
因为线上数据量很大且每时每刻都会有数据入表,需要考虑的几个点:
- 先整理出凌晨期间持续增长数据的表,正常时间入库的表在凌晨一般都不会写入,或者事先限制告知用户在凌晨期间不要做入表操作,因此可以忽略不做迁移
- dba迁移1点前所有数据,假设迁移时间一小时,2点迁完,2点后实现双写,新旧数据源内的数据都会做写入
- 配置多数据源,实现自定义注解切换数据源
- 我会写一个开放接口,传入指定时间范围(假如1点-2点),期间新旧数据源会有偏差,我只需要传入时间范围参数,接口做迁移1-2点之间的数据即可
- 该接口要做两件事,新增和修改,分别拉取create_time和update_time在该时间段内的所有数据,这里一定要事先提交DB工单去申请给线上的这两个字段建立索引
- 先从旧表查create_time范围的数据,因为是双写,所以从旧数据源内查出的实体类list需要不传ID插入新数据源(并且要分页插入)保证迁移的数据是一致的,但是ID不保证(因为自增ID可能会有问题)
- 再从旧表查update_time范围的数据,并且sql多加 update_time != create_time来确保只查出更新过的旧数据,这里迁移的时候ID是保证一致的,可以根据所传ID进行更新(这里是可以走索引的,目前线上log表数据量有千万级别,但凌晨一小时内数据其实不多,批量update预计不会太慢,效率之后有待验证)
边栏推荐
- HDU 1097 A hard puzzle
- 《工作、消费主义和新穷人》的微信读书笔记
- One question per day (2022-07-02) - Minimum refueling times
- Unity编辑器扩展C#遍历文件夹以及子目录下的所有图片
- Shell programming core technology "three"
- Crawler (6) - Web page data parsing (2) | the use of beautifulsoup4 in Crawlers
- YOLOv5s-ShuffleNetV2
- 1002. A+B for Polynomials (25)(PAT甲级)
- 函数式接口
- 英特尔集成光电研究最新进展推动共封装光学和光互连技术进步
猜你喜欢

读写关闭的channel是啥后果?
![[uniapp] uniapp development app online Preview PDF file](/img/11/d640338c626249057f7ad616b55c4f.png)
[uniapp] uniapp development app online Preview PDF file

“只跑一趟”,小区装维任务主动推荐探索

2022CoCa: Contrastive Captioners are Image-Text Fountion Models

自由小兵儿

One question per day (2022-07-02) - Minimum refueling times

英特尔集成光电研究最新进展推动共封装光学和光互连技术进步

Process of manually encrypt the mass-producing firmware and programming ESP devices

小发猫物联网平台搭建与应用模型

使用canal配合rocketmq监听mysql的binlog日志
随机推荐
Unity adds a function case similar to editor extension to its script, the use of ContextMenu
DeFi生态NFT流动性挖矿系统开发搭建
mysql中explain语句查询sql是否走索引,extra中的几种类型整理汇总
更安全、更智能、更精致,长安Lumin完虐宏光MINI EV?
在线SQL转Excel(xls/xlsx)工具
“只跑一趟”,小区装维任务主动推荐探索
Go microservice (II) - detailed introduction to protobuf
测试工程师如何“攻城”(上)
数组中的第K个最大元素
2022CoCa: Contrastive Captioners are Image-Text Fountion Models
Pointnet/Pointnet++点云数据集处理并训练
牛客小白月赛7 I 新建 Microsoft Office Word 文档
小发猫物联网平台搭建与应用模型
如何使用Async-Awati异步任務處理代替BackgroundWorker?
大佬们,求助一下,我用mysql cdc 2.2.1(flink 1.14.5)写入kafka,设置
Other InterSystems%net tools
问下各位大佬有用过cdc直接mysql to clickhouse的么
性能优化之关键渲染路径
Build your own website (15)
Hough transform Hough transform principle