eygle.com   eygle.com
eygle.com eygle
eygle.com  
 

« 如何检查GATHER_STATS_JOB任务的执行情况 | Blog首页 | 如何手工创建(Create)一个Oracle 10g数据库 »

换一种思路 - 通过导出导入进行数据整理
modb.pro

虽然通过不断的优化,在前面客户的数据表里将数据鉴别出来仍然是不现实的。
20亿条记录,过滤用户退订部分,据估算,统计一次要46天左右,删除可能要耗时在200天左右,单块读平均每次等待时间达到8ms。

而且关键是,在业务库上的操作会影响到正常业务处理,删除又会生成大量的归档日志,存储空间又将变得极为紧张。
于是今天和客户交流,建议客户将这部分表的数据转移到测试机,通过测试机来并行、拆分,加快运算处理过程,再将整理后的数据转移回主库。

当然这个方案也需要一定的支撑条件,幸运的是,客户条件满足,又无风险,高效,所以客户欣然同意了这一方案。

刚刚测试了一下导出一个分区,1.3亿左右的记录,大约用了50分钟时间
Export: Release 10.2.0.2.0 - Production on Wed Sep 16 21:17:56 2009

Copyright (c) 1982, 2005, Oracle.  All rights reserved.


Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP and Data Mining options
Export done in ZHS16GBK character set and AL16UTF16 NCHAR character set

About to export specified tables via Conventional Path ...
. . exporting table                    SMSMG
. . exporting partition                            P01  135587487 rows exported
EXP-00091: Exporting questionable statistics.
EXP-00091: Exporting questionable statistics.
EXP-00091: Exporting questionable statistics.
EXP-00091: Exporting questionable statistics.
Export terminated successfully with warnings.
[oracle@sms backup]$ ls -al *.dmp
-rw-r--r--  1 oracle oinstall 34349481984 Sep 16 22:08 smsmg_p1.dmp
这样通过测试机进行并行处理,基本上可以每天处理几个分区,可以快速的完成数据的清理工作,又不会对主库产生性能影响。

-The End-


历史上的今天...
    >> 2012-09-18文章:
    >> 2010-09-18文章:
    >> 2008-09-18文章:
    >> 2007-09-18文章:
    >> 2006-09-18文章:
           推荐EMC CX系列模拟器
    >> 2005-09-18文章:
           祝大家中秋快乐!

By eygle on 2009-09-18 08:36 | Comments (8) | Case | 2404 |

8 Comments

那你导入后的停机时间怎么算 ???

整理完数据结合交换分区处理的 ???

简单点的搞法,国内有厂家在卖工具
1.3亿的话,重建,我估计,对业务的影响,15s以内
在核心业务上测试过。

to 棉花,
已经用新表接管了这个表,其数据仅提供查询需要。

David.
什么工具?Quest的么?

呵呵,这个不能明说,要不人家以为我是做广告的
私下我们沟通,哈哈
call me

如果能够用新表替换原来的,要不试试d.c.b.a.大师的文本导出工具?嘻嘻

这个表设计的时候是不是已经分区好了。要不然怎么导出分区啊!


CopyRight © 2004~2020 云和恩墨,成就未来!, All rights reserved.
数据恢复·紧急救援·性能优化 云和恩墨 24x7 热线电话:400-600-8755 业务咨询:010-59007017-7040 or 7037 业务合作: marketing@enmotech.com