容量很大的库,一般采取什么策略来进行清理?是定期删除,还是使用分区表?

对于数据库容量很大的库,一般采取什么策略来进行清理?是定期删除,还是使用分区表?不同的方案对日志需求,备份恢复策略有什么影响?
定期删除使用load还是delete的区别?

参与34

5同行回答

leilinleilin  数据库管理员 , IBM
数据清理的策略和业务直接相关,不一定按业务时间分区,清理时做分区detach就可以,在数据仓库和分析领域,历史数据归档通常却是可以采用分区detach方式的。删除(delete)通常消耗大量的日志,而分区detach则不会。另外一个可选的方案是MDC fast rollout, 通过设置db2set DB2_MDC_ROL...显示全部

数据清理的策略和业务直接相关,不一定按业务时间分区,清理时做分区detach就可以,在数据仓库和分析领域,历史数据归档通常却是可以采用分区detach方式的。

删除(delete)通常消耗大量的日志,而分区detach则不会。另外一个可选的方案是MDC fast rollout, 通过设置db2set DB2_MDC_ROLLOUT=DEFERRED实现,当delete 语句的where条件中只有MDC字段限定时,可以实现快速删除并且只记很少的日志。

对于联机系统,如果一次性删除大量数据可能导致锁升级,影响交易的并发性,建议多次小批量删除,通常的方法是多次执行:delete from (select * from <table name> where ... fetch first 10000 rows only);

detele不影响备份恢复策略;detach 是DDL操作,影响了表的定义,也就影响了表空间的MRT(Minimum Recovery Time),PIT恢复时必须恢复到detach操作时间点以后。

表清空可以采用load/import (load/import from /dev/null of del replace into <table name>) ,或是truncate (truncate table <table name> immediate), 或是关闭日志的操作(alter table <table name> activate not logged with empty table),也可以是是带任何条件的delete。除了delete需要记录大量的日志外,别的操作记录的日志很少或不记日志。

收起
IT其它 · 2017-08-18
浏览2494
y18511664518y18511664518  技术总监 , 长城超云
第一,容量很大的必须用分区表第二、删除的可以可以按分区删除,或者按分区归档数据。显示全部

第一,容量很大的必须用分区表
第二、删除的可以可以按分区删除,或者按分区归档数据。

收起
金融其它 · 2017-08-16
浏览2345
yellow-finyellow-fin  项目经理 , 浙江兰德纵横网络技术有限公司
采用分区表,以日期作为分区键,按分区的周期拆离分区按这个方法跑了6年左右了,效果还行显示全部

采用分区表,以日期作为分区键,按分区的周期拆离分区
按这个方法跑了6年左右了,效果还行

收起
IT咨询服务 · 2017-08-18
浏览2360
星星峡的风星星峡的风  技术支持工程师 , 福建新大陆软件有限公司
数据生命周期的管理是数据仓库(容量很大的库)的管理重点之一。1.要有严格的建表审查机制,在表建立的时候就应对表的数据增长有预期,选择合适的表属性2.对于大容量表,分区表是最合适的,卸载分区和重新挂载分区都很方便3.很少有表会全部清空,所以如果不是分区表一般都在做delete4....显示全部

数据生命周期的管理是数据仓库(容量很大的库)的管理重点之一。
1.要有严格的建表审查机制,在表建立的时候就应对表的数据增长有预期,选择合适的表属性
2.对于大容量表,分区表是最合适的,卸载分区和重新挂载分区都很方便
3.很少有表会全部清空,所以如果不是分区表一般都在做delete
4.备份一般都是增量的,花的时间比删除还多

收起
电信运营商 · 2017-08-17
浏览2396
liucj2004liucj2004  其它 , undefined
[此回答已删除]
浏览2002

提问者

kong_fanqing
数据库运维工程师国产数据库公司

问题来自

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2017-08-16
  • 关注会员:6 人
  • 问题浏览:6123
  • 最近回答:2017-08-18
  • X社区推广