随着时间推移业务发展文本时间数据库批量替换命令,大多数应用系统都可能面临中途更换数据库的问题。
更换数据库的原因大致如下文本时间数据库批量替换命令:
1、跟随技术发展趋势系统上云。
2、数据量变大需要分库分表。
3、架构升级后数据存储方式发生变化。
4、遗留系统不能满足业务需求需要重构。
更换数据库业务风险不小文本时间数据库批量替换命令,技术挑战性高。既不能影响正常业务,也不能出现系统错误。更换数据库需要保障整个迁移过程停机时间短,还要保障迁移数据准确无差错。那么如何在应用系统不停机的情况下安全地进行数据迁移更换数据库?
安全的迁移数据更换数据需要做到:代码实现没问题、测试场景覆盖全、遇到问题有回滚措施。
具体方案步骤如下:
1、创建一个新库,将旧库数据全量复制到新库中。开启新库旧库实时数据同步。
2、改造应用系统数据访问层。改造步骤如下:
A、增加双写新旧数据库能力,增加热更新写入开关参数,定义三种参数状态,双写、写旧库、写新库。
B、增加双向读新旧数据库能力,增加热更新读取开关参数,定义两种参数状态,读旧库、读新库。
3、上线改造后的应用系统,系统仍然写旧库读旧库。运行一周,这个过程中观测老数据库是否读写准确正常,新数据库是否同步一致。如果中间有问题下线改造的应用版本回滚到旧版本应用。
4、上面一步没问题开启双写开关参数,数据双写新库旧库。同时停止新旧数据库同步功能。在此期间注意新旧数据库数据一致性,可以通过定时任务比对两个数据库的数据,遇到数据不一致的用旧库数据进行更新新库操作。
5、上面一步运行一段时间没问题,将数据库的读取通过开关参数切换到新库上,读取新数据库。
6、上面一步运行一段时间没出现问题,关闭双写功能,停止数据比对定时任务,读写到新数据库。
7、上述步骤没问题下线旧数据库,和双写功能。
更换数据库首先要保证数据安全,确保每一步没问题,一旦发现问题,快速回滚。