[发明专利]一种不停机数据库迁移方法在审

专利信息
申请号: 202111583501.3 申请日: 2021-12-22
公开(公告)号: CN114385588A 公开(公告)日: 2022-04-22
发明(设计)人: 许信 申请(专利权)人: 天翼电子商务有限公司
主分类号: G06F16/21 分类号: G06F16/21;G06F11/14;G06F16/23;G06F16/2455
代理公司: 暂无信息 代理人: 暂无信息
地址: 102200 北京市昌平*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 停机 数据库 迁移 方法
【权利要求书】:

1.一种不停机数据库迁移方法,其特征在于,包括以下步骤:

S1、版本V0迁库前的前置操作,用于控制版本V1操作落DB-NEW数据的幂等判断;原有下单流程不变,仅在下单成功情况下新增存储请求四要素在redis的操作,在V0版本上线前保障此版本稳定运行一段时间;

操作注意点:

(1)redis存储期限:1~2天;

(2)redis格式:

{TRADE_CENTER_V0_requestDate_requestOrderNo_requestSystem_merchantNo,normal}

其中小写字符代表变量,记录的是确定的值,例如:

收单域订单redis存储:

{TRADE_CENTER_V0_20170815_2017081517TPPIOP1110000000000466_TRADE_ACQUIRING_3178000000875377,normal}

资金域订单redis存储:资金幂等校验没有考虑商户号

{TRADE_CENTER_V0_20170815_2017081517TPPIOP1110000000000466_TRADE_DEDUCT,normal}

(3)涉及业务:资金下单、收单下单;

(4)在V0发版后检查redis数据是否正常;

S2、版本V1将数据新增到新数据库DB-NEW的T1-MOVE表中,仅仅处理在MOVE表中的订单,原表中的数据静置后进行数据迁移;V1版本上线前操作:(后续V2版本照此操作)

关闭应用大总管后台操作入口;

该应用所有定时任务暂停(将所有定时任务状态置为INVALID失效);

数据库层面:

新增库DB-NEW;

在DB-NEW库中新增两套表:T1-NEW与DB-OLD所有表名保持一致,T_MOVE临时存储新库数据表;

V1版本操作如下:

①将DB-OLD数据源连接信息替换成DB-NEW的;

②mapper层所有表名换成T1-MOVE:暂时存储数据,后续会迁移到T1-NEW表;

③下单:落T1-MOVE表;

A.下单前:先判断请求四要素是否已存储在TRADE_CENTER_V0_REQUEST缓存中,已存在则直接抛出异常——重复下单,不存在则正常落T1-MOVE表;

B.下单后:下单成功后存储前缀为ADE_CENTER_V1_REQUEST的redis缓存,请求四要素拼接作为key;

④支付(以前就有判断订单是否存在):支付前根据交易号判断该订单是否存在T1-MOVE表,不存在则直接抛出异常’订单不存在’数据可能存储在T1-OLD表,存在则继续支付;

⑤接收支付控制kafka处理:新增一条日志打印——首先判断该支付单是否能在T1-MOVE表中查到,如果查不到则打印经支付控制kafka消息转换而来的支付信息,否则继续处理;

发送kafka无需做特殊处理;

发版后操作:观察数据落T1-MOVE表正常后,则可以通知DBA将DB-OLD数据迁移到DB-NEW的T1-NEW表中;

S3、版本V2发布条件:等待DBA将DB_OLD的所有数据迁移到DB-NEW的T1-NEW表,再发布V2版本;

数据库层面:无变化;

V2版本操作如下:

1)继续使用DB-NEW数据源

Mapper层所有表名更换为T1(DB-NEW中的表),相对于上一个版本删除move后缀;

2)下单:

下单前:先判断请求四要素是否已存储在ADE_CENTER_V1_REQUEST缓存中,已存在则直接抛出异常——重复下单,不存在则正常落T1-NEW表;

下单后:无需新增redis缓存操作(后续版本交易还是落T1-NEW表,仅是将代码还原到迁库之前,且只改动数据源);

3)支付(以前就有判断订单是否存在):支付前根据交易号判断该订单是否存在T1-NEW表,不存在则直接抛出异常“订单不存在”数据可能存储在T1-MOVE表,存在则继续支付;

4)接收支付控制kafka处理:新增一条日志打印——首先判断该支付单是否能在T1-MOVE表中查到,如果查不到则打印经支付控制kafka消息转换而来的支付信息,否则继续处理;

5)发送kafka无需做特殊处理;

发版后操作:观察数据落T1-NEW表正常后,通知DBA将T1-MOVE数据迁移到T1-NEW表中;

S4、版本V3发布条件,等待DBA将T1-MOVE的所有数据迁移到T1-NEW表,再发布V3版本;

数据库层面:无变化;

V3版本操作如下:

a.继续使用DB-NEW数据源;

b.Mapper层所有表名为T1(DB-NEW中的表);

c.下单、支付逻辑还原到迁库之前;

发版后操作:检查数据量是否正确;

S5、迁移过程预期问题

(1)V0版本发布只涉及上线redis控制正交易唯一性约束问题,理论不会有任何问题;

(2)V0到V1版本发布期间(一半机器运行V0,一半机器运行V1),可能出现下单落在V0,支付落在V1或者下单落在V1,支付落在V0的情况下:

正交易:对于老交易来说不受任何影响(老交易都是下单并支付),对于新交易全部受影响;

反交易:新老交易视原交易位置,如果原单不在相应版本的表里,全部受影响;

(3)V1版本发布完成后对新老交易的所有正交易均不受影响,所有记录全部落在TEMP表;对新老交易的反交易,原交易在老表的情况下受影响;

(4)在V1和V2发布期间(一半机器运行V1,一半机器运行V2),可能出现下单落在V1,支付落在V2或者下单落在V2,支付落在V1的情况下:

正交易:对于老交易来说不受任何影响(老交易都是下单并支付),对于新交易全部受影响;

反交易:新老交易视原交易位置,如果原单不在相应版本的表里,全部受影响;

(5)V2版本发布完成后对新老交易的所有正交易均不受影响,所有记录全部落在最终表;

对新老交易的反交易,在原交易在TMEP表的情况下受影响;

对新老交易的反交易,原交易在老表里的全部受影响;

(6)V2到V3版本发布至完成理论数据全部切到最终表后,无影响;

回滚方案迁移到TMP表的过程中发生影响,代码回滚,将TMP表数据移动至老表。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于天翼电子商务有限公司,未经天翼电子商务有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202111583501.3/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top