加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

100亿数据,非“双倍”扩容,如何不影响服务,数据平滑迁移?

发布时间:2019-07-29 19:02:43 所属栏目:编程 来源:58沈剑
导读:前次《百亿级数据DB秒级滑腻扩容!》之后,许多伴侣提问,说假如不是双倍扩容,可否做到滑腻迁徙,不影响处事呢? 合用什么场景? 互联网有很大都据量较大,并发量较大,营业伟大度较高的营业场景,其典范体系分层架构如下: (1)上游是营业层biz,实现本性化

步调一中日记里记录的,正是变革的数据。

100亿数据,非“双倍”扩容,怎样不影响处事,数据滑腻迁徙?

步调三:研发一个读取日记并迁徙数据的小器材,要把步调二迁徙数据进程中发生的差别数据追平。这个小器材必要做的是:

(1)读取日记,获得哪个库、哪个表、哪个主键产生了变革;

(2)把旧库中对应主键的记录读取出来;

(3)把新库中对应主键的记录替代掉;

无论怎样,原则是数据以旧库为准。

这个小器材的风险也很小:

(1)整个进程依然是旧库对线上提供处事;

(2)小器材的伟大度较低;

(3)任何时刻发明题目,大不了从步调二开始重来;

(4)可以限速逐步重放日记,技能同窗没偶然刻压力;

日记重放之后,就可以或许切到新库提供处事了么?

谜底依然是否认的,在日记重放的进程中,旧库中又也许稀有据产生了变革,导致数据纷歧致,以是照旧不能切库,必要进一步读取日记,追平记录。可以看到,重放日记追平数据的措施是一个while(1)的措施,新库与旧库中的数据追平也会是一个“无穷迫近”的进程。

什么时辰数据会完全同等呢?

100亿数据,非“双倍”扩容,怎样不影响处事,数据滑腻迁徙?

步调四:在一连重放日记,追平数据的进程中,研发一个数据校验的小器材,将旧库和新库中的数据举办比对,直到数据完全同等。

这个小器材的风险仍旧很小:

(1)整个进程依然是旧库对线上提供处事;

(2)小器材的伟大度较低;

(3)任何时刻发明题目,大不了从步调二开始重来;

(4)可以限速逐步比对数据,技能同窗没偶然刻压力;

100亿数据,非“双倍”扩容,怎样不影响处事,数据滑腻迁徙?

步调五:在数据比对完全同等之后,将流量迁徙到新库,新库提供处事,完成迁徙。

假如步调四数据一向是99.9%的同等,不能完全同等,也是正常的,可以做一个秒级的旧库readonly,等日记重放措施完全追上数据后,再举办切库切流量。

至此,进级完毕,整个进程可以或许一连对线上提供处事,不影响处事的可用性。

方案三:双写方案

双写方案,也是一个高可用的滑腻迁徙方案,这个方案首要分为四个步调。

100亿数据,非“双倍”扩容,怎样不影响处事,数据滑腻迁徙?

数据迁徙前,上游营业应用通过旧的处事会见旧的数据。

100亿数据,非“双倍”扩容,怎样不影响处事,数据滑腻迁徙?

步调一:处事举办进级,对“对旧库上的数据修改”(这里的修改,为数据的insert, delete, update),在新库长举办沟通的修改操纵,这就是所谓的“双写”,首要修改操纵包罗:

(1)旧库与新库的同时insert;

(2)旧库与新库的同时delete;

(3)旧库与新库的同时update;

因为新库中此时是没稀有据的,以是双写旧库与新库中的affect rows也许纷歧样,不外这完全不影响营业成果,只要不切库,依然是旧库提供营业处事。

这个处事进级风险较小:

(1)写接口是少数接口,窜改点较少;

(2)新库的写操纵执行乐成与否,对营业成果没有任何影响;

100亿数据,非“双倍”扩容,怎样不影响处事,数据滑腻迁徙?

步调二:研发一个数据迁徙器材,举办数据迁徙。这个数据迁徙器材在本文中已经呈现第三次了,把旧库中的数据转移到新库中来。

这个小器材的风险较小:

(1)整个进程依然是旧库对线上提供处事;

(2)小器材的伟大度较低;

(3)任何时刻发明题目,都可以把新库中的数据干掉重来;

(4)可以限速逐步迁徙,技能同窗没偶然刻压力;

数据迁徙完成之后,就可以或许切到新库提供处事了么?

谜底是必定的,由于前置步调举办了双写,以是理论上数据迁徙完之后,新库与旧库的数据应该完全同等。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读