【技术员的工具箱】千万数据生产环境更改方案

最近需要给公司的某系统的表进行千万级别数据的加密。但是该系统作为公司的基础系统,外部业务访问频次高,且该系统无法做出长时间的停机挂牌,因此需要提供一套方案,尽量压缩系统的停机时间,在尽可能短的时间内完成千万级别的数据加密任务。

方案的基本思路是:
以8月20日作为分界点,建立临时表,备份8月20日之前的表数据。对该备份表进行加密处理。8月20日以后的数据作为增量数据,进行增量的处理。存量数据和增量数据在处理完成后,任务结束。

(1)DB对需要加密的两张表进行备份为table_a_bak_20160820,table_b_bak_20160820,并进行加密处理。加密完成,验证。(这一部分未明确操作方法,应该是通过dump等方式),无停机,10点半至12点半完成,耗时约2个小时。
(2)系统停机。
(3)创建增量数据备份表,在备份表中进行增量数据加密处理。耗时约0.5小时
create table table_a_bak_20160823 like table_a;
create table table_b_bak_20160823 like table_b;

insert into table_a_20160823 select * from table_a where upt_time >= str_to_date(‘2016-08-20’,’%Y-%M-%d’);
insert into table_b_20160823 select * from table_b where upt_time >= str_to_date(‘2016-08-20’,’%Y-%M-%d’);

(4)将增量数据合并到存量的数据备份表中。
replace into table_a_bak_20160820 select * from table_a_bak_20160823;
replace into table_b_bak_20160820 select * from table_b_bak_20160823;

(5)此时增量数据均以合并到存量备份表当中。耗时约5分钟。

rename table table_a to per table_a_tmp;
rename table table_a_bak_20160820 to table_a;

rename table table_b to per table_b_tmp;
rename table table_b_bak_20160820 to table_b;

(5)系统重新启动,完成千万级别数据的数据更改。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值