db2数据库一个大表45GB,如何快速清除其中一年前的数据(该表属于业务表,要尽可能的不影响业务)?

最好不要影响业务,如果非要影响业务,如何做到时间最小。显示全部

最好不要影响业务,如果非要影响业务,如何做到时间最小。

收起
参与132

查看其它 10 个回答mornsky的回答

mornskymornsky研发工程师某银行

建一个新表,如果应用不需查询已有记录并不会长久锁表,可选业务不多时段,写一个简单SQL,一次将原表改名和新表变原表;如果表总是被锁,则需要短时停应用,可将停启应用和改表写成脚本执行。这样可不停业务或将停顿时间缩至最少。如果应用交易需要查已有记录,则需要将需要的最少已有记录先导入新表(譬如当天记录),这里需要注意的是如果不停服务导入可能存在改名导入数据时间内数据不全的现象。
在建表改名成功后就可慢慢地在两表间导入需要记录。其余记录如果需要导出备份可慢慢地分日期段执行,否则跳过,最后直接drop表就行了。

银行 · 2018-09-05
浏览7347

回答者

mornsky
研发工程师某银行

mornsky 最近回答过的问题

回答状态

  • 发布时间:2018-09-05
  • 关注会员:14 人
  • 回答浏览:7347
  • X社区推广