Oracle Exp/Imp 和 Expdp/Impdp

1、EXP和IMP

1.1、导出(EXP)
EXP命令行选项,可通过exp help=y查看:
导出具体分为:导出表、导出方案、导出数据库
EXP命令常用选项:
userid:用于指定执行导出的操作用户名、口令、连接字符串
tables:用于指定执行导出操作的表
owner:用于指定执行导出操作的方案
full=y:用于指定执行导出操作的数据库
inctype:用于指定执行导出操作的增量类型
rows:用于指定执行导出操作是否要导出表中的数据
file:用于指定导出文件名

1.1.1、导出表(table)
1) 导出自己的表
CMD> exp userid=scott/xiao@orcl tables=(emp,dept) file=d:\table1.dmp
2) 导出其它用户(方案)的表,需要dba的权限或是exp_full_database的权限
CMD> exp userid=system/xiao@orcl tables=(scott.emp,scott.dept) file=d:\table2.dmp
3) 导出表结构(rows=n)
CMD> exp userid=system/xiao@orcl tables=(scott.emp,scott.dept) rows=n file=d:\table3.dmp
4) 使用直接导出方式(direct=y)
这种方式比传统方式速度要快,当数据量大时,可以考虑使用
CMD> exp userid=scott/xiao@orcl tables=(emp,dept) direct=y file=d:\table4.dmp
 
1.1.2、导出方案(schema)
1) 导出自己的方案
CMD> exp userid=scott/xiao@orcl owner=scott file=d:\schema1.dmp
2) 导出其它方案(需要dba的权限或是exp_full_database的权限)
CMD> exp userid=system/xiao@orcl owner=(scott,zhou) file=d:\schema2.dmp
 
1.1.3、导出数据库(full=y inctype=complete)
导出数据库是指利用export导出数据库中所有的对象及数据,
要求该用户具有dba的权限或是exp_full_database的权限
CMD> exp userid=system/xiao@orcl full=y inctype=complete file=d:\full.dmp

1.2、导入(IMP)
IMP命令行选项,可通过imp help=y查看:
导入具体分为:导出表、导出方案、导出数据库
IMP命令常用选项:
userid:用于指定执行导入的操作用户名、口令、连接字符串
tables:用于指定执行导入操作的表
fromuser:用于指定执源用户(导出的用户列表,即导入文件是从哪个用户导出的)
touser:用于指定目标用户(导入的用户列表,即要到哪个用户中)
full=y:用于指定执行导入整个文件
inctype:用于指定执行导入操作的增量类型
rows:用于指定是否导入表行(数据)
file:用于指定导入文件名
ignore:如果表存在,则只导入数据
 
1.2.1、导入表
1) 导入表
CMD> imp userid=scott/xiao@orcl tables=(emp,dept) file=d:\table1.dmp
2) 导入表到其它用户(方案),需要dba的权限或是imp_full_database的权限
CMD> imp userid=system/xiao@orcl tables=(emp,dept) touser=zhou file=d:\table2.dmp
3) 导入表结构(rows=n)
只导入表结构而不导入数据
CMD> imp userid=system/xiao@orcl tables=(emp,dept) rows=n file=d:\table3.dmp
4) 导入数据(ignore=y)
如果对象(如表)已经存在,可以只导入表的数据
CMD> imp userid=scott/xiao@orcl tables=(emp,dept) ignore=y file=d:\table4.dmp
 
1.2.2、导入方案
1) 导入自己的方案
CMD> imp userid=scott/xiao@orcl file=d:\schema1.dmp
2) 导如其它方案(需要dba的权限或是exp_full_database的权限)
CMD> imp userid=system/xiao@orcl fromuser=scott touser=scott_new file=d:\schema2.dmp
 
1.2.3、导入数据库(full=y)
默认情况下,当导入数据库时,会导入所有对象结构和数据
CMD> imp userid=system/xiao@orcl full=y file=d:\full.dmp


2、EXPDP和IMPDP

2.1、导出(EXPDP)
EXPDP命令行选项,可通过expdp help=y查看:
数据泵导出包括:导出表,导出方案,导出表空间,导出数据库

使用EXPDP工具时,其转储文件只能被存放在DIRECTORY对象对应的OS目录中,而不能直接指定转储文件所在的OS目录。因此,使用EXPDP工具时,必须首先建立DIRECTORY对象。并且需要为数据库用户授予使用DIRECTORY对象权限。
-- Create directory
SQL> create or replace directory MY_DIR as 'D:\'; 
SQL> grant read,write on directory MY_DIR to scott;
-- 查看oracle中创建的所有目录
SQL> select * from dba_directories;

2.1.1、导出表
1) 导出表(scott用户表dept,emp)
CMD> expdp scott/xiao@orcl directory=MY_DIR tables=dept,emp dumpfile=table1.dmp logfile=table1.log
2) 按查询条件导 
CMD> expdp scott/xiao@orcl directory=MY_DIR tables=emp query='WHERE deptno=20'  dumpfile=table2.dmp logfile=table2.log

2.1.2、导出方案
1) 导出自己的方案
CMD> expdp scott/xiao@orcl schemas=scott directory=MY_DIR dumpfile=schema1.dmp logfile=schema1.log
2) 导出其它方案
CMD> expdp system/xiao@orcl schemas=(scott,zhou) directory=MY_DIR dumpfile=schema2.dmp logfile=schema2.log

2.1.3、导出表空间
CMD> expdp scott/xiao@orcl directory=MY_DIR dumpfile=tb.dmp logfile=tb.log tablespaces=users

2.1.4、导出数据库
需要dba的权限或是exp_full_database的权限

CMD> expdp system/xiao@orcl directory=MY_DIR dumpfile=full.dmp logfile=full.log full=y
SQL> grant exp_full_database to scott;
CMD> expdp scott/xiao@orcldirectory=MY_DIR dumpfile=full.dmp logfile=full.log full=y


2.2、导入(IMPDP)
数据泵导入包括:导入表,导出入案,导入表空间,导入数据库
IMPDP命令行选项,可通过impdp help=y查看:
全库的逻辑备份full.dmp,full.log
SCOTT用户逻辑备份schema1.dmp,schema1.log
IMPDP命令:
remap_schema=a:b 将数据的schema从a 转换为b
remap_tablespace=a:b 将数据的tablespace 从a 转换为b
2.2.1、导入表
1) 将EMP表导入到SCOTT方案中
先删除用户scott的emp表,再在full.dmp中导入emp到用户scott
CMD> impdp scott/xiao@orcl directory=MY_DIR dumpfile=full.dmp tables=scott.emp remap_schema=scott:scott
2) 将EMP表导入到SYSTEM方案中
CMD> impdp scott/xiao@orcl directory=MY_DIR dumpfile=full.dmp tables=scott.emp remap_schema=scott:system

2.2.2、导入方案
1) 导入自己的方案

CMD> impdp scott/xiao@orcl schemas=scott directory=MY_DIR dumpfile=full.dmp logfile=full.log
CMD> impdp scott/xiao@orcl schemas=scott directory=MY_DIR dumpfile=schema1.dmp logfile=schema1.log


2) 导入其它方案

CMD> impdp system/xiao@orcl directory=MY_DIR dumpfile=full.dmp logfile=full.log remap_schema=scott:scott_new
CMD> impdp system/xiao@orcl directory=MY_DIR dumpfile=schema1.dmp logfile=schema1.log remap_schema=scott:scott_new


2.2.3、导入表空间
CMD> impdp system/xiao@orcl directory=MY_DIR dumpfile=tb.dmp logfile=tb.log tablespaces=users01

2.2.4、导入数据库
需要dba的权限或是exp_full_database的权限

CMD> impdp system/xiao@orcl directory=MY_DIR dumpfile=full.dmp logfile=full.log full=y



3、区别

3.1、EXPDP和IMPDP使用说明

Oracle Database 10g引入了最新的数据泵(Data Dump)技术,数据泵导出导入(EXPDP和IMPDP)的作用

1) 实现逻辑备份和逻辑恢复。

2) 在数据库用户之间移动对象。

3) 在数据库之间移动对象。

4) 实现表空间搬移。


3.2、数据泵导出导入与传统导出导入的区别

在10g之前,传统的导出和导入分别使用EXP工具和IMP工具,从10g开始,不仅保留了原有的EXP和IMP工具,还提供了数据泵导出导入工具EXPDP和IMPDP。使用EXPDP和IMPDP时应该注意的事项:

1) EXP和IMP是客户端工具程序,它们既可以在可以客户端使用,也可以在服务端使用。
2) EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用,不能在客户端使用。
3) IMP只适用于EXP导出文件,不适用于EXPDP导出文件;IMPDP只适用于EXPDP导出文件,而不适用于EXP导出文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值