oracle 导入导出(imp/exp)

查看帮助

C:\Windows\system32>exp help=y

Export: Release 10.2.0.1.0 - Production on 星期五 7月 20 15:05:39 2012

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



通过输入 EXP 命令和您的用户名/口令, 导出
操作将提示您输入参数:

     例如: EXP SCOTT/TIGER

或者, 您也可以通过输入跟有各种参数的 EXP 命令来控制导出
的运行方式。要指定参数, 您可以使用关键字:

     格式:  EXP KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)
     例如: EXP SCOTT/TIGER GRANTS=Y TABLES=(EMP,DEPT,MGR)
               或 TABLES=(T1:P1,T1:P2), 如果 T1 是分区表

USERID 必须是命令行中的第一个参数。

关键字   说明 (默认值)         关键字      说明 (默认值)
--------------------------------------------------------------------------
USERID   用户名/口令           FULL        导出整个文件 (N)
BUFFER   数据缓冲区大小        OWNER        所有者用户名列表
FILE     输出文件 (EXPDAT.DMP)  TABLES     表名列表
COMPRESS  导入到一个区 (Y)   RECORDLENGTH   IO 记录的长度
GRANTS    导出权限 (Y)          INCTYPE     增量导出类型
INDEXES   导出索引 (Y)         RECORD       跟踪增量导出 (Y)
DIRECT    直接路径 (N)         TRIGGERS     导出触发器 (Y)
LOG      屏幕输出的日志文件    STATISTICS    分析对象 (ESTIMATE)
ROWS      导出数据行 (Y)        PARFILE      参数文件名
CONSISTENT 交叉表的一致性 (N)   CONSTRAINTS  导出的约束条件 (Y)

OBJECT_CONSISTENT    只在对象导出期间设置为只读的事务处理 (N)
FEEDBACK             每 x 行显示进度 (0)
FILESIZE             每个转储文件的最大大小
FLASHBACK_SCN        用于将会话快照设置回以前状态的 SCN
FLASHBACK_TIME       用于获取最接近指定时间的 SCN 的时间
QUERY                用于导出表的子集的 select 子句
RESUMABLE            遇到与空格相关的错误时挂起 (N)
RESUMABLE_NAME       用于标识可恢复语句的文本字符串
RESUMABLE_TIMEOUT    RESUMABLE 的等待时间
TTS_FULL_CHECK       对 TTS 执行完整或部分相关性检查
TABLESPACES          要导出的表空间列表
TRANSPORT_TABLESPACE 导出可传输的表空间元数据 (N)
TEMPLATE             调用 iAS 模式导出的模板名

成功终止导出, 没有出现警告。

C:\Windows\system32>imp help=y

Import: Release 10.2.0.1.0 - Production on 星期六 7月 21 14:03:58 2012

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



通过输入 IMP 命令和您的用户名/口令, 导入
操作将提示您输入参数:

     例如: IMP SCOTT/TIGER

或者, 可以通过输入 IMP 命令和各种参数来控制导入
的运行方式。要指定参数, 您可以使用关键字:

     格式:  IMP KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)
     例如: IMP SCOTT/TIGER IGNORE=Y TABLES=(EMP,DEPT) FULL=N
               或 TABLES=(T1:P1,T1:P2), 如果 T1 是分区表

USERID 必须是命令行中的第一个参数。

关键字   说明 (默认值)        关键字      说明 (默认值)
--------------------------------------------------------------------------
USERID   用户名/口令           FULL       导入整个文件 (N)
BUFFER   数据缓冲区大小        FROMUSER    所有者用户名列表
FILE     输入文件 (EXPDAT.DMP)  TOUSER     用户名列表
SHOW     只列出文件内容 (N)     TABLES      表名列表
IGNORE   忽略创建错误 (N)    RECORDLENGTH  IO 记录的长度
GRANTS   导入权限 (Y)          INCTYPE     增量导入类型
INDEXES   导入索引 (Y)         COMMIT       提交数组插入 (N)
ROWS     导入数据行 (Y)        PARFILE      参数文件名
LOG     屏幕输出的日志文件    CONSTRAINTS    导入限制 (Y)
DESTROY                覆盖表空间数据文件 (N)
INDEXFILE              将表/索引信息写入指定的文件
SKIP_UNUSABLE_INDEXES  跳过不可用索引的维护 (N)
FEEDBACK               每 x 行显示进度 (0)
TOID_NOVALIDATE        跳过指定类型 ID 的验证
FILESIZE               每个转储文件的最大大小
STATISTICS             始终导入预计算的统计信息
RESUMABLE              在遇到有关空间的错误时挂起 (N)
RESUMABLE_NAME         用来标识可恢复语句的文本字符串
RESUMABLE_TIMEOUT      RESUMABLE 的等待时间
COMPILE                编译过程, 程序包和函数 (Y)
STREAMS_CONFIGURATION  导入流的一般元数据 (Y)
STREAMS_INSTANTIATION  导入流实例化元数据 (N)

下列关键字仅用于可传输的表空间
TRANSPORT_TABLESPACE 导入可传输的表空间元数据 (N)
TABLESPACES 将要传输到数据库的表空间
DATAFILES 将要传输到数据库的数据文件
TTS_OWNERS 拥有可传输表空间集中数据的用户

成功终止导入, 没有出现警告。


导出全库(使用sys用户)
exp 'sys/oracle@orcl as sysdba' file=E:\my\orcl_full.dmp log=E:\my\orcl_full.log full=y
导出指定用户下的对象(导出lau用户下的对象)
exp lau/lau@orcl file=E:\my\orcl_oo.dmp log=E:\my\orcl_oo.log

exp 'sys/oracle@orcl as sysdba' file=E:\my\orcl_oo.dmp log=E:\my\orcl_oo.log owner=lau
导出指定用户下的表(导出lau用户下的T表)
exp lau/lau@orcl file=E:\my\orcl_t.dmp log=E:\my\orcl_t.log   tables=(T)


如果对象已经存在,使用imp导入时需要使用参数IGNORE=y。
导入用户下的所有对象
imp 'sys/oracle@orcl as sysdba' file=E:\my\orcl_full.dmp log=E:\my\orcl_user_ocp.log fromuser=scott touser=ocp ignore=y buffer=1280000
导入指定表
imp 'sys/oracle@orcl as sysdba' file=E:\my\orcl_full.dmp log=E:\my\orcl_user_ocp.log fromuser=scott touser=ocp tables=(emp,dept) ignore=y buffer=1280000

如果想使用新的存储参数重建索引,或者为了加快导入速度,我们可以考虑将INDEXES设为N。
注意:只有 DBA 才能导入由其他 DBA 导出的文件

分区操作

导出分区表中各分区的两条记录,然后导入
exp scott/tiger@orcl  file=E:\datdir\test.dmp tables=part_emp log=E:\datdir\test.log query="""where rownum < 3""" statistics=NONE
imp lau/lau@orcl  file=E:\datdir\test.dmp tables=part_emp ignore=y buffer=1280000  log=E:\datdir\test_imp.log

导出指定分区数据 part_emp2012_04_11
exp scott/tiger@orcl  file=E:\datdir\part_emp2012_04_11.dmp tables=part_emp:part_emp2012_04_11 log=E:\datdir\part_emp2012_04_11.log  statistics=NONE
imp lau/lau@orcl  file=E:\datdir\part_emp2012_04_11.dmp tables=part_emp ignore=y buffer=1280000  log=E:\datdir\part_emp2012_04_11_imp.log

如果要导出多个分区,则在tables参数中增加分区数。如:tables=(part_emp:part_emp2012_04_11,part_emp:part_emp2012_04_12)   .


导出导入时出现的错误
EXP-00091: 正在导出有问题的统计信息
设置字符集:
SQL> select userenv('language') from dual;

        USERENV('LANGUAGE')
        ----------------------------------------------------
        AMERICAN_AMERICA.ZHS16GBK

linux:
[oracle@raugher ~]$ export NLS_LANG='AMERICAN_AMERICA.ZHS16GBK'
windows:
C:\Windows\system32>set nls_lang=SIMPLIFIED CHINESE_CHINA.ZHS16GBK

在解决了字符集问题之后,仍然出现这个错误,可以添加statistics=NONE选项,不导出统计信息

所以,
export 分区表的时侯常出现这种问题,解决起来大体两个方面:
1、用analyze或dbms_stats重新收集库、schema、或出问题的表的统计信息。
2、exp命令加statistics=NONE选项

IMP-00032: SQL 语句超过缓冲区长度
增加buffer=数字  选项 ,加大buffer。
   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值