0%

一次线上数据库结构修改

由于早期数据库设计不合理,需要修改线上数据库表结构,比较麻烦的是新设计将原来的一个表拆成了两个表,并且允许了表之间存在一对多关系。

为了保证安全的线上变更,设计了如下变更步骤

引入新表

第一步也是最简单的一步,创建新表结构,此时不会产生任何影响。

并行逻辑执行

按照新表执行逻辑,将所有涉及旧表的逻辑重写,注意此时并不删除或修改旧逻辑,新老逻辑同时执行,但是忽略新逻辑的报错和结果,只返回旧逻辑结果

数据库双写

所有数据的读写操作,尤其是写入操作,同时写入新库和旧库

数据迁移

历史数据通过离线系统,逐渐迁移到新表

并行逻辑切换校验

返回新逻辑结果,检查是否正确,通过测试后可以删除旧逻辑