导入大量数据,比如300G数据,导出500G数据需要考虑的问题

1.假设导入到99%,你花了8个小时,但是最后,你设置表空间数据不够,导入报错,怎么办?
这次导入会不会报错?会不会回滚?
空间不够,是致命错误。会回滚。但是有个参数,resumable,resumable=y resumable_timeout=28800允许我们挂起,等待一段时间。


2.导入大量数据,花的时间很长。我们要知道,进度是怎么样了?是否挂起?是否仍在导入?
第一,设置响应参数feedback=10000000,第二,看插入日志
第三,看资源管理器中相关进程cpu,硬盘是否在使用 ,第四 看写入文件是否有变化
第五,最好的方式是看会话v$session中有个sql_id,这个字段就是记录了当前会话正在进行执行什么sql语句。
3.怎么样导入更快?
设置表nologging.直接路径导入。暂时不导入索引。
insert /*+append*/ into card_trade_detail

4.切割大文件的操作。大文件比如300G,你会遇到这样一些问题,比如,你拷贝一个300G文件从硬盘到移动硬盘,刚开始很快,600M/s,到后面变成30M/s,头疼吧。这样我们导出的时候需要进行文件切割。把大文件切割成小分件,比如切割成5G拷贝,也很慢。




5.以下是一些经验数据
(1)486万 225秒,每个segment 840M  451万:49秒  497万:53  一年的数据文件434G
当前数据量是1.1亿,创建索引为:
create index idx_ctd_card_inner_no_gl on CARD_TRADE_DETAIL(card_inner_no) global tablespace cardidx01;
花去时间为:369秒,索引大小是4G .
(2)1.1亿数据索引 uk_ctd_gl_1 7个字段建立唯一索引,花去时间为253秒,索引大小为6.8G
(3)18亿数据索引 uk_ctd_gl_1 7个字段建立主键索引,索引大小为144G;
(4)导入300G数据,在dellr730机器上上插入花时8个小时。
在dellr730机器,18亿数据索引 uk_ctd_gl_1 7个字段建立主键索引,索引大小为112G,建立52分钟。
(5)最后我说下其中比较坑爹的一次部署:把18亿500G数据导出来,花时40分钟。把225G数据导出到优盘,时间是5小时。从优盘拷贝到客户电脑中转机1小时。从中转机拷贝到aix系统,6小时。导入数据时间是5小时。