“想要零停机地迁移数据表,请给三倍一段时间!”
发布时间:2023-04-11
举例来说,我们的可用看起来比先从前更为复杂,因为我们并不需要在一新详见里面创始人悄悄数据资料,然后如此一来放入到上新详见里面。为了尽可能随机填充的 UUID 是一致的,这两个可用在一个事务里面已完成。
将数据资料加载一新详见
在处置好一新历史纪录后,下一步我们并不需要复制上新历史纪录。
INSERTINTOnew(new_id, created_date) SELECTold_id, CAST( dataASTIMESTAMP) FROMOLD WHERENOTEXISTS( SELECT* FROMnew WHEREnew_id = OLD.old_id) LIMIT1000 RETURNING*;我们将一新详见里面不存在的数据资料,从上新详见加载一新详见。为了保持数据资料库经常性组织起来,我们通过limit 1000,分批已完成这项可用。虽然块的大小可以根据详见进行重置,但我更喜欢小块,因为可以避免意味著大量数据资料。
的测试连续性
这一步的工作经常被忽视。在翻转存储先从前,我们必需尽可能上一新详见错综复杂的数据资料无论如何启动时。我们可以通过一些查询来的测试上一新详见错综复杂的连续性。
核对项1:是否毕竟任何历史纪录?
SELECT* FROMold FULLOUTERJOINnewONold_id = new_id WHEREnew_id ISNULL ORold_id ISNULL核对项2:数据资料是否一致?
SELECT* FROMold INNERJOINnewONold_id = new_id WHERECAST( dataASTIMESTAMP) <> created_date翻转存储
这一步的工作量往往最繁重。经常有几十处并不相同的代码会从详见里面存储。由于如今两个详见错综复杂的数据资料是启动时的,因此我们可以花点间隔时间跟著已完成这部分移入工作。
SELECT* FROMnew WHEREnew_id = ?;在这个先决条件,我们还并不需要更一新视图、外键、触发器等,让它们都引述一新详见。
停止载入上新详见
到这里,所有存储已翻转到一新详见,我们不如此一来并不需要更上一新数据资料库。
--- CreateINSERTINTOnew(created_date) VALUES(?) RETURNING* --- UpdateUPDATEnewSETcreated_date = ? WHEREnew_id = ?; --- DeleteDELETEFROMnewWHEREnew_id = ?;
清理上新详见
在确认系统设计不如此一来引述上新详见时,上新详见就可以删除了。
DROPTABLEIFEXISTSold;落成!
移入落成!
最吃力的工作是向产品组阐释,为什么看似如此小的一个催促,要花费的间隔时间却是他们预自已的三倍。期盼在选读本文之后,他们能够理解。
原文客户端:
END
☞谷歌起诉vivo不正当竞争;网易格鲁吉亚分公司申请破产,官方说是“银行联系人被格鲁吉亚没收”;Opera 87公开发表|极客头条
☞算网创一新巅峰对决,“旋转云杯”大赛一声头号玩家大举进攻一间隔时间
☞刚离开苹果,GAN 缔造者已找好下家:如此一来次重返网易,在此期间在家办公
一键三连 「个人」「点赞」「在看」
。应急救护进校园宝宝拉肚子肚子疼怎么办
术后恢复吃什么好得快
什么方法可以治疗牙疼
吃什么药可以治疗关节僵硬
-
爱喝咖啡的人容易患上骨质疏松?带你揭秘这5个伤骨实情!
头骨是双脚上最为坚硬的组织,支撑着药剂各种社区活动,为机体透过强有力的支撑,跟健康关系紧密相连。社会公众关于伤骨的确实有很多,如跑步伤左腿、喝咖啡豆或喝缘故多果汁造成龋齿等等,这到底不对真的呢?
- 2025-05-1280年代火遍全国的“气功大师”严新,骗局被识破后,下场如何?
- 2025-05-12协和自然科学 | 跟练刘畊宏,你真的瘦了吗?自然科学营养减重的7种吃法
- 2025-05-12眼睛莫名模糊看不清,有时候还会流泪、晕眩,怎么办?
- 2025-05-125月12日陕西新增1同上本土确诊病同上
- 2025-05-12胜利就在再坚信一下的努力之中
- 2025-05-12永州疾控5月13日发布紧急留意!
- 2025-05-12【康复园地】脑卒中:如前所述康复慢,神经调控来助力
- 2025-05-12心理健康520-《给“刘耕宏女孩”的心理健康提示》
- 2025-05-12一周药闻:众生药业新冠口服药诊断申请获受理,甘李药业GZR101诊断试验获批
- 2025-05-12哈佛大学最新研究:你的站相,就是你的清醒