EXP/IMP 学习(三)

1.3  优化
1.  加快exp速度
加大 large_pool_size,可以提高 exp的速度 采用直接路径的方式(direct=y),数据不需要经过内存进行整合和检查. 设置较大的 buffer,如果导出大对象,小 buffer会失败。
export文件不在 ORACLE使用的驱动器上 不要 export到 NFS文件系统
UNIX环境:用管道模式直接导入导出来提高 imp/exp的性能

2.  加快imp速度
建立一个 indexfile,在数据 import完成后在建立索引
将 import 文件放在不同的驱动器上 增加 DB_BLOCK_BUFFERS
增加 LOG_BUFFER
用非归档方式运行 ORACLE:ALTER DATABASE NOARCHIVELOG; 建立大的表空间和回滚段,OFFLINE其他回滚段,回滚段的大小为最大表的 1/2 使用  COMMIT=N
使用 ANALYZE=N
单用户模式导入
UNIX环境:用管道模式直接导入导出来提高 imp/exp的性能

3.  通过unix/Linux PIPE管道加快exp/imp速度
通过管道导出数据:
1.通过 mknod -p 建立管道
$ mknod /home/exppipe p    //  在目录/home下建立一个管道 exppipe注意参数 p
2.通过 exp和 gzip导出数据到建立的管道并压缩
$ exp test/test file=/home/exppipe & gzip exp.dmp.gz
$ exp test/test tables=bitmap file=/home/newsys/test.pipe &
gzip bitmap.dmp.gz
3.导出成功完成之后删除建立的管道
$ rm    -rf    /home/exppipe
 
导出脚本:
###UNIX下 ORACLE数据库通过 PIPE管道进行备份
###### using "export" and "tar" command to bakup oracle datebase #######
trap "" 1 #nohup
LOGFILE=/opt/bakup/log/bakup_ora.log
export LOGFILE
DUMPDIR=/archlog_node1
export DUMPDIR
exec >$LOGFILE 2>&1
 
echo
echo ' Begin at ' `date`
echo
 
#               clear old result file
cd $DUMPDIR
if [ -f exp.dmp.Z ]
then
echo "clear old result file"
rm exp.dmp.Z
fi
 
#make pipe
mkfifo exp.pipe
chmod a+rw exp.pipe
 
#gain the dmp.Z file
compress exp.dmp.Z &
su -u oracle -c "exp userid=ll/ll file=$DUMPDIR/exp.pipe full=y buffer=20000000"
echo
echo ' exp end at '`date`
echo
# rm pipe
rm exp.pipe
#tar the dmp.Z file to tape
mt -f /dev/rmt/0 rew
tar cvf /dev/rmt/0 exp.dmp.Z
echo
echo 'tar end at '`date`
echo
通过管道导入生成的文件:
1.通过 mknod -p 建立管道
$ mknod /home/exppipe p
2.导入生成的压缩文件
$ imp test/test file=/home/exppipe fromuser=test touser=macro &
gunzip /home/exppipe
3.删除管道
$ rm –fr /home/exppipe
 
4.  全库导入的一般步骤
注意:在导出时,需要通过toad或其他工具提取源数据库创建主键和索引的脚本
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或其他工具提取源数据库创建主键和索引的脚本,在目标数据库中创建主键和索引。使触发器生效。

 

时间: 2024-11-06 16:27:21

EXP/IMP 学习(三)的相关文章

EXP/IMP 学习(四)

1.4  常见问题1.  字符集问题ORACLE  多国语言设置是为了支持世界范围的语言与字符集,一般对语言提示, 货币形式,排序方式和  CHAR,VARCHAR2,C LOB,LONG  字段的数据的显示等有效. ORACLE  的多国语言设置最主要的两个特性就是国家语言设置与字符集设置,国家语 言设置决定了界面或提示使用的语言种类,字符集决定了数据库保存与字符集有关数据(如文本)时候的编码规则.ORACLE 字符集设定,分为数据库字符集和客户端字符集环境设置.在数据库端,字符集在创建数据库

EXP/IMP 学习(一)

1.1  基本命令  1.  获取帮助 $ exp help=y$ imp help=y 2.  三种工作方式 (1)交互式方式$ exp        //  然后按提示输入所需要的参数(2)命令行方式$ exp user/pwd@dbname file=/oracle/test.dmp full=y    //  命令行中输入所需的参数 (3)参数文件方式$ exp parfile=username.par    //  在参数文件中输入所需的参数参数文件 username.par 内容 u

EXP/IMP 学习(二)

2.  增量导出/导入// oracle 9i  以后 exp  不再支持  inctype必须为  SYS  或  SYSTEM  才可执行增量导出导入增量导出:   包括三个类型:(1)"完全"增量导出(Complete)  //  备份整个数据库$ exp user/pwd file=/dir/xxx.dmp log=xxx.log inctype=complete(2)"增量型"增量导出      导出上一次备份后改变的数据.$ exp user/pwd f

EXP/IMP 学习(五)

2.2  高级选项1. Conventional Path Load  与  Direct Path Load Conventional-path Load:通过常规通道方式上载.特点:commit, always  gen redo logs,  enforce all constraints, fire insert triggers, can load into cluster, other user can make changerows:每次提交的记录数bindsize:每次提交记录的

关于exp/imp的总结学习

关于exp/imp,是很常用的数据导出导入工具,在10g开始推出的数据泵datapump相当于是exp/imp的补充和升级版本.在后续章节再做一个总结. exp/imp的使用相对比较简单,通常用做在不同的数据库或者环境之间转移数据,即使数据库位于不同的平台,也可以通过统一的接口来做数据的导入导出工作. 使用方法可以通过exp -help,imp -help来得到一个简单的帮助说明. USERID must be the first parameter on the command line. K

使用exp/imp导入oracle 11g数据到oracle 9i

现在有个需求,需要使用exp/imp导入11g的数据库数据到9i中,解决这个问题一般来说想到三种方法思路,一个个尝试(其实从高版本服务端支持低版本客户端的原则,可以大概的猜测出使用9i的客户端处理该问题) 方法1:导出导入都使用11g客户端 --11g客户端导出 [oracle@xifenfei ~]$ exp chf/xifenfei file=/tmp/t_xifenfei.dmp >log=/tmp/t_xifenfei.log tables=chf.t_xifenfei Export:

[20171105]exp imp buffer参数解析.txt

[20171105]exp imp buffer参数解析.txt oracle官方所给的关于buffer的解释如下: https://docs.oracle.com/cd/A84870_01/doc/server.816/a76955/ch01.htm BUFFER Default: operating system-dependent. See your Oracle operating system-specific documentation to determine the defaul

【exp/imp】将US7ASCII字符集的dmp文件导入到ZHS16GBK字符集的数据库中

[exp/imp]将US7ASCII字符集的dmp文件导入到ZHS16GBK字符集的数据库中   1.1  BLOG文档结构图     1.2  前言部分 1.2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① 如何将US7ASCII字符集的dmp文件导入到ZHS16GBK字符集的数据库中(重点,2种方法)? ② 从dmp文件可以获取到哪些信息?如何从dmp文件获取到dmp文件的字符集(重点,N种方法)? ③

利用RMAN转移数据和EXP/IMP转移数据的实测比较

比较|数据 由于工程需要经常将客户的现场数据导出到公司的开发环境中,随着客户现场数据量的不断增大,原先 使用的导出导入的方法需要花费越来越长的时间,所以测试一下RMAN的效率,验证是否能用恢复RMAN备 份的方法来代替以往的EXP/IMP方法.原本想过用传输表空间的方法,但是由于我们通常在创建数据库的 时候就给业务所用的表空间创建了很大的数据文件,这样在传输表空间的copy数据文件的步骤上会花费 很长的时间,所以还是决定测试一下RMAN了. 测试目的:实现对于JHJKREC用户的数据转移. 在1