目录
1.EXP、IMP和EXPDP、IMPDP命令的介绍和区别
1.1、EXP、IMP命令的介绍
exp/imp是oracle提供的一个对数据库进行逻辑备份的客户端工具。利用这个工具可以把数据库按表空间、用户或某些表保存到操作系统下的一个二进制文件里。这个二进制文件与平台无关,利用这个特性可以完成数据的跨平台的迁移。
1.2、EXPDP、IMPDP命令的介绍
数据泵导出使用工具EXPDP将数据库对象的元数据(对象结构)或数据导出到转储文件中。而数据泵导入则是使用工具IMPDP将转储元件中的元数据及其数据导入Oracle数据库中。假设emp表被意外删除,那么可以使用IMPDP工具导入emp的结构信息和数据。
数据泵包括导出表、导出模式、导出表空间和导出全数据库四种模式,需要注意的是EXPDP工具只能将导出的转储文件放在directory对象对应的OS目录中,而不能直接指定转储文件躲在的OS目录。
1.3、两者的区别
-
exp和imp是属于客户端工具,expdp和impdp 属于服务端工具
-
数据泵工具运行于服务器端,相比客户端的exp/imp其性能更好,并能实现exp/imp的全部功能
-
通过使用exclude,include,content等参数,数据泵可以为数据及数据对象提供更细微级别的选择性
-
通过设定数据库版本号,数据泵expdp/impdp可以兼容老版本的数据库系统
-
通过estimate_only参数,数据泵可以预估导出作业所需的磁盘空间
-
支持导入时重新映射功能(即将对象导入到新的目标数据文件、架构及表空间等)
2.EXP、IMP命令的使用
2.1exp命令的使用
-- 本地数据库
exp 用户名/密码 file=路径\文件名.dmp full=y ignore=y
--远程数据库数据导出
exp 用户名/密码@ip:port\数据库实例名 file=路径\文件名.dmp full=y
有三种主要的方式(完全、用户、表)
- 完全。使用system导出整个数据库。注意:不是某个表空间或用户,是整个数据库
2. 用户
方式一:直接用QC用户登录、导出
方式二:使用system用户登录,但是要指定用户名
3.表
full=y:表示导出完全的数据库。当然如果要执行完全导出,必须具有特殊的权限,比如dba或sys
2.2imp命令的使用
imp 用户名/密码 FILE=D:\oracle_test\文件名.dmp full=y ignore=y
加上ignore=y选项,如果表数据没有主键冲突,会追加进去。如果表数据有主键冲突,则导入报错。但是加上ignore=y后,导入的速度就会变慢,因为如果导入的数据和已存在的数据存在大量相同,每有一个相同就会报一次错误,但是这个错误不影响导入数据这个过程。
同样也是有三种导入方式,具体命令内容如下
1.完全
imp system/123456 ignore=y full=y file=exp_table.dmp log=exp_table.log
2.用户
imp QC/123456 ignore=y full=y file=exp_table.dmp log=exp_table.log
3.表
这里的test用户是指被导入的用户,意味着将QC用户中的某个表的dmp文件导入test用户中
imp test/123456 ignore=y full=y file=exp_table.dmp log=exp_table.log
3.EXPDP、IMPDP命令的使用
数据泵导出包括四种模式:
1、导出表
2、导出模式。将一个或多个模式中的所有对象结构及数据存储到转储文件中。要求用户必须具有· DBA角色或EXP_FULL_DATABASE角色
3、导出表空间
4、导出全数据库
注意:EXPDP工具只能将导出的转储文件存放在directory对象对应的OS目录中,而不能直接指定转储文件所在的OS目录。
首先,建立directory对象。directory对象可以让用户在Oracle数据库中灵活地对文件进行读写操作,极大地提高了Oracle的易用性和可扩展性。