ORACLE expdp与impdp使用注意事项

来源:互联网 发布:淘宝搞笑评价带图 编辑:程序博客网 时间:2024/05/17 00:58

使用EXPDP和IMPDP时应该注意的事项:

 

EXP和IMP是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用。

EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用,不能在客户端使用。

IMP只适用于EXP导出的文件,不适用于EXPDP导出文件;IMPDP只适用于EXPDP导出的文件,而不适用于EXP导出文件。

expdp或impdp命令时,可暂不指出用户名/密码@实例名 as 身份,然后根据提示再输入,如:

expdp schemas=scottdumpfile=expdp.dmp DIRECTORY=dpdata1;

 

一、创建逻辑目录,该命令不会在操作系统创建真正的目录,最好以system等管理员创建。

create directory dpdata1 as'd:\test\dump';

二、查看管理理员目录(同时查看操作系统是否存在,因为Oracle并不关心该目录是否存在,如果不存在,则出错)

select * from dba_directories;

三、给scott用户赋予在指定目录的操作权限,最好以system等管理员赋予。

grant read,write on directorydpdata1 to scott;

四、导出数据

1)按用户导

expdp scott/tiger@orclschemas=scott dumpfile=expdp.dmp DIRECTORY=dpdata1;

2)并行进程parallel

expdp scott/tiger@orcldirectory=dpdata1 dumpfile=scott3.dmp parallel=40 job_name=scott3

3)按表名导

expdp scott/tiger@orclTABLES=emp,dept dumpfile=expdp.dmp DIRECTORY=dpdata1;

4)按查询条件导

expdp scott/tiger@orcldirectory=dpdata1 dumpfile=expdp.dmp Tables=emp query='WHERE deptno=20';

5)按表空间导

expdp system/managerDIRECTORY=dpdata1 DUMPFILE=tablespace.dmp TABLESPACES=temp,example;

6)导整个数据库

expdp system/managerDIRECTORY=dpdata1 DUMPFILE=full.dmp FULL=y;

五、还原数据

1)导到指定用户下

impdp scott/tiger DIRECTORY=dpdata1DUMPFILE=expdp.dmp SCHEMAS=scott;

2)改变表的owner

impdp system/managerDIRECTORY=dpdata1 DUMPFILE=expdp.dmp TABLES=scott.deptREMAP_SCHEMA=scott:system;

3)导入表空间

impdp system/managerDIRECTORY=dpdata1 DUMPFILE=tablespace.dmp TABLESPACES=example;

4)导入数据库

impdb system/managerDIRECTORY=dump_dir DUMPFILE=full.dmp FULL=y;

5)追加数据

impdp system/managerDIRECTORY=dpdata1 DUMPFILE=expdp.dmp SCHEMAS=system TABLE_EXISTS_ACTION

 

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

常用的exp关键字

1、full用于导出整个数据库,在rows=n一起使用,导出整个数据库的结构。
   如:exp userid=gwm/gwm file=/test.dmplog=test.log full=y rows=n direct=y
2、OWNER和TABLES,用于定义exp导出的对象
   如:exp userid=gwm/gwm file=/test.dmplog=test.log owner=gwm table=(table1,table2)
3、buffer和feedback 若导出数据较大,考虑使用这两个参数。
   如:exp userid=gwm/gwm file=/test.dmplog=test.log feedback=10000 buffer=100000000 tables=(table1,table2)
4、file和log 用于指定备份的dmp名称和log名称
5、compress 不压缩导出数据的内容,默认y
6、filesize 若导出的数据文件大,应该用该参数,限制文件大小不要超过2g
   如:exp userid=gwm/gwmfile=/test1,test2,test3,test4,test5 filesize=2G log=test.log
       这样将创建test1.dmp,test2.dmp等,每个文件大小为2g。

 

 imp关键字说明
关键字   说明 (默认值)       关键字      说明 (默认值)
-------------------------------------------------------------
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 拥有可传输表空间集中数据的用户

备注:

INCTYPE   增量导入类型 该参数到9i已废弃,我使用的是oracle11g做的实验,发现该参数已无法使用。

(收集于网络)