数据迁移方案

2017-07-12  本文已影响0人  sunshaohua520

最近着手设计手机充值和流量充值两个项目的数据库迁移,是由db2迁移至mysql。现在将方案记录下来。

整个迁移方案分成了两大块。系统切换、生产迁移

一.系统切换

包括搭建mysql数据库,修改代码。

创建数据库:可以在db2 ddl 的基础上进行修改。这块需要注意db2和mysql数据类型的对应关系。

修改代码:db2 的sql里面有会有一些mysql 的关键字,如key、type 等,需要用``,另外db2还有一种特殊的sql即select * from new table (insert into table....) 或者select * from new table (update table set....),将新插入或更新后的记录返回出来,mysql 没有改功能,还有db2 里面有with ur,表示不加行锁。在mysql 里面去掉即可。

二.数据迁移

我们这里有两个系统,表总共有200+张,需要全部迁移,原则是尽量减少停止交易的时间。

归档

 归档数据分两种类型,1.全部归档,2.部分归档

1.对于一些请求历史、日志、发送记录等无关交易、仅用来做日后问题查询的数据可以全部归档

优点:速度快,秒级

2.对于一些数据量大的,比如订单、流水等,按照业务需要保留一定时间的数据。有两种方案供参考,比如保留三个月的数据。

    2.1 动三个月前的数据,将三个月之前的数据导出,然后再进行delete。

         优点:不对交易有任何影响。  缺点:数据量大,时间长

    2.2 动三个月内的数据,将三个月之内的数据导出,然后再进行delete。

        优点:数据量小,时间快。   缺点:短时间内查不出来以前数据。

数据迁移:将数据分成两部分,交易数据和基础数据,交易数据包括订单、流水等,基础数据包括用户、账户、权限等。分开的目的是保证重要数据的一致性。

比如25号生产切换,24号开始迁移。

24号:迁移20号之前的数据,迁移完毕关闭用户对这些数据的写权限

25号:停止交易。迁移所有基础数据+5天内的交易数据。

至于迁移工具,可以采用文件导出导入的形式,也可以找第三方工具如etl。

以上就是迁移方案,如有问题,欢迎拍砖。

补充一点:

今天发现一个问题,归档后,如果做历史数据查询,特别是涉及到多表、联表查询的时候,在归档的时候需要注意。

上一篇 下一篇

猜你喜欢

热点阅读