1、加快exp速度
加大large_pool_size,可提高exp速度
可以用direct=y的方法,数据不需经过内存进行整合和检查
设置较大的buffer,因为如果buffer太小,导出大对象会失败
export文件不再oracle使用的驱动器上
不要export到一个NFS文件系统,那样网络会成为瓶颈
UNIX环境:用管道直接导入导出来提高exp/imp的性能
2、加快imp的速度
建立一个indexfile,在数据imp完成后建立索引
将imp文件放在不同的驱动器上
增加DB_BLOCK_BUFFERS
增加LOG_BUFFER
用非归档模式运行ORACLE
建立大的表空间和回滚段。OFFLINE其他回滚段,最好为大表的1/2
commit=n,analyze=n,单用户模式导入
UNIX环境:用管道模式进行直接导入导出
3、通过unix/linux PIPE通道来加快exp/imp速度
通过管道导出数据
1) 通过mknod -p建立管道
$ mknod /home/saisai p // 在目录/home下建立一个管道saisai注意参数p
2)通过exp和gzip导出数据到建立的管道并压缩
$ exp test/test file=/home/saisai & gzip
< /home/saisai > exp.dmp.gz
$ exp test/test tables=bitmap file=/home/newsys/test.pipe
&
gzip < /home/newsys/test.pipe >
bitmap.dmp.gz
3)导出完成后删除管道
rm -rf /export/saisai
4、全库导入的一般步骤
1) 先全库加rows=n把结构导进去
$ imp system/manager file=exp.dmp log=imp.log full=y rows=n
indexes=n
2) 使业务用户的触发器失效/删除主键和唯一索引
spool drop_pk_u.sql
select 'alter table '||table_name||' drop constraint
'||constraint_name||';'
from user_constraints
where constraint_type in ('P','U');
/
spool off
spool disable_trigger.sql
select 'alter trigger '||trigger_name||' disable;'
from user_triggers;
/
spool off
@drop_pk_u.sql
@disable_trigger.sql
3) 以ignore=y全库导入
$ imp system/manager file=exp.dmp log=imp.log full=y ignore=y
4)通过toad或其他工具提取源数据库创建主键和索引的脚本,在目标数据库中创建主键
和索引。使触发器生效。