一.原始方法 在删除大表的时候,经常会由于数据量太大,造成日志文件满了,接着无法删除数据. 以下是删除大表不记录日志的具体步骤: 1.临时设置自动提交关闭 (使用命令db2 list command options查看Auto-Commit参数状态是否为OFF,如果不是则使用db2set DB2OPTIONS=+c永久关闭) update command options using c off 2.设置不记录日志 ALTER TABLE tabname ACTIVATE NOT LOGGED I
用控制中心直接改会比较容易一点,在数据库名称上点右键-->配置-->日志-->日志文件大小.主日志文件数.辅助日志文件数改大一点. 也可用命令行db2cmd db2 update db cfg for mymakro using LOGFILSIZ 512 --日志文件大小 db2 update db cfg for mymakro using LOGPRIMARY 20 --主日志 db2 update db cfg for mymakro using LOGSECOND5 10 --
首先解释一下数据库的版本是SQL Server 2012.清除的数据库800多G,磁盘空间就剩10多G,数据量最多的表有2亿.目的就是清楚去年的数据(2017年之前),遇到了一些问题,总结起来就是三方面问题: 1.如何清理日志文件. 2.删除千万级别的数据. 3.数据库的收缩操作. 一.清除日志文件 刚开始直接用delete语句删除给报了两次错误:“The transaction log for database 'DB' is full due to 'ACTIVE_TRANSACTION'.
在表trpt_jv_rpt_log_td的tim列上创建索引 create index dw_rpt.irpt_jv_rpt_log_td_tim on dw_rpt.trpt_jv_rpt_log_td(tim) 删除索引 drop index dw_rpt.irpt_jv_rpt_log_td_tim