日期:2014-05-16  浏览次数:21121 次

Oracle 大数据量备份和清理
问题是这样的,有一张表,存量20亿,事实上,有10亿的数据是不会被查询到的,但是又不能说直接删掉这10亿条记录。所以,这里就涉及到两个问题:
1、10亿的记录怎么做备份比较好?
2、10亿的记录怎么做删除比较好?

首先,同一个磁盘空间上,不具备一次性备份10亿的存储空间,肯定需要分多次备份。

我现在考虑到的问题

1、删除10亿的数据,会产生归档日志。如果要关闭归档模式,好像是需要重启数据库?
2、备份10亿数据,比较好的参考方式:expdb。另外两种exp和spool方式,只能作为备用。
3、有同学推荐使用goldengate软件工具。这个工具,是否比expdb效率更高?


大侠们,出来吧!20亿的数据量,是不是很刺激?来玩一下吧……

至于为什么要设计一个单表来存储20多亿的数据,就不要嘲笑了,我也想不明白当时的设计者是不是诚心的……
Oracle备份 Oracle大数据量 Oracle性能

------解决方案--------------------
可否分区解决?
------解决方案--------------------
另外加磁盘空间,加数据库文件,加表空间,加表,再把数据导过去,再把本表数据删掉
其实只要空间,你慢慢导过去应该不是问题
------解决方案--------------------
http://blog.csdn.net/yuzhenhuan01/article/details/6620853

看看这个对你是否有用吧
------解决方案--------------------
1:创建一个新的分区表

2:设置新表,原表分别 nologging
alter table tablename no logging;

3:insert into 新表;

insert 可以分批写入到新表

delete from 原表的数据。

4:然后原表,新表 恢复logging;
alter table  tablename logging;