“想要零停机地迁移数据表,请给三倍一段时间!”
发布时间: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 缔造者已找好下家:如此一来次重返网易,在此期间在家办公
一键三连 「个人」「点赞」「在看」
。应急救护进校园宝宝拉肚子肚子疼怎么办
术后恢复吃什么好得快
什么方法可以治疗牙疼
吃什么药可以治疗关节僵硬
-
男子被饲养“”,后下体受损,怒杀对方及其情夫
地中的长大的他拥有得意的力气。施工方上的活计虽然得人,但好在能挣到的银子也多。 金某和同仁们一天最自娱的时间段就是到旁的小快餐店捡几瓶酒,躺在快餐店门年前整天作对。
- 2024-02-10香港入境处:预计春节及复活节假期期间(4月1-10日)约有903万人次进出香港
- 2024-02-10销售主要的职责是什么?看完这文中,你就知道自己该干什么了
- 2024-02-10属鸡人的6个昭仪
- 2024-02-10广铁集团:大幅提升往返深港和穗港的拟建运能 增开客货列车
- 2024-02-10奥地利央行行长:通胀率居高不下,必须进一步加息
- 2024-02-10江苏荒唐命案,男子让酒肉朋友和妻子发生关系,被妻子用菜刀
- 2024-02-10泰国与日本续签本币互换两国政府
- 2024-02-10天毅的公司全面清理库存物资确保物尽其用
- 2024-02-10桌球“肉偿”赌债,男子却使用特殊工具,桌球:别这样,我受不了
- 2024-02-10大摩:中海油(00883)2022年净利润创历史创纪录 评级“增持”