现在的位置: 首页 > 综合 > 正文

ORACLE 想清楚了再做,要谨慎些 兄弟

2013年07月14日 ⁄ 综合 ⁄ 共 658字 ⁄ 字号 评论关闭

 星期一 发现一个表有很多重复数据 随机使用删除重复数据的语句。
星期二 发现 这语句跑了很久都没跑完,13个小时了!只不过删除10个月的数据而已
依然断了它,可它回滚花了4个小时,上午影响了数据库的服务速度了。

然后一个月一个月检查重复数据的范围,最后定位到9月到10月。删除它,用那条语句很慢,一个小时后断了它。然后把该表的索引删除了,再把表指为NOLOGGING。30分钟就把数据删除了。
随后接着建索引,和关键字。

星期三 发现 关键字没成功,还有很多重复数据,感觉不对头。查看了下重复数据的具体情况,不重复啊! 问及业务人员才知道该表确定唯一记录 要有三个字段来确定。
原来靠2个字段来确定重复记录,现在可好了把2009年的数据都删了!

晚上觉得重导数据,先清空了表,然后建主建,倒数据。等到22:30 还没结束实在要走了!

星期四 发现手工导数据过程跑了384分钟 在凌晨4点报错ORA-30036: 无法按 8 扩展段 (在还原表空间 'UNDOTBS1' 中),作业的相应过程也跑了159分钟后报同样的错,而且影响了很多过程。
看了该过程看到最后有个UPDATE 更新3年的字段 估计是导致报错的原因!

在导数据的过程中 有COMMIT 呀 才执行后面的UPDATE 为什么表没有存到呢? 乖乖的哦

同事来说数据怎么样?他的活动要查! 我为什么不先导2009年的数据满足用户使用,现在导的是2007的数据。

总结下:为了除掉重复数据而导致的后果,主要是因为自己没有想清楚。起码不要全表删掉了数据,删除2009年的数据,这样不会报错。要么先导2009年的数据,先满足用户需要。

【上篇】
【下篇】

抱歉!评论已关闭.