Oracle 导入/导出 exp/imp

export 导出数据,dmp文件,其实就是select。
import 导入数据,其实就是insert


缺陷:导出的时候需要全表导出,速度慢,不是实时,而且是逻辑备份


1:EXP
exp导出分为一下几种模式
表模式:               导出某个用户下指定的表
用户模式:           导出某个用户下所有的对象
数据库模式:      导出除sys以外数据库里所有的对象,exp_full_database权限
可传输表空间:    导出某个表空间所有对象

exp语句使用帮助:$ exp help=y

1.1:导出某个用户下指定的表
$ exp doiido/doiido file=doiido.dmp tables=(doiido,boy) log=doiido.log

1.2:导出某个用户下所有的对象
$ exp doiido/doiido@doiido file=doiido.dmp owner=doiido log=doiido.log


1.3:导出整个数据库(除了sys用户下的数据字典)
SQL> grant exp_full_database to doiido;
$ exp doiido/doiido file=doiido.dmp full=y log=doiido.log


1.4:导出表空间
$ exp system/doiido@orcl file=doiido.dmp tablespaces=(doiido)

1.5:在windows下远端导出
C:\Windows\system32>exp doiido/doiido@192.168.100.200:1521/doiido file=d:\doiido.dmp tables=boy log=d:\doiido.log


导出的两种方式
传统路径:使用SQL语句查询方式,需要经过缓存
直接路径:使用数据块抽取方式,direct=y



2:IMP导入
1:导入某个用户指定的表

$ imp doiido/doiido file=doiido.dmp tables=(doiido,boy) log=doiido.log


2:导入用户test所有的对象到doiido
$ imp doiido/doiido file=doiido.dmp fromuser=test touser=doiido log=doiido.log

执行导入的顺序
创建表结构
导入表的数据
创建相关索引
导入触发器
对导入的表启用完整性约束
建立所有位图、函数以及其他索引

imp的时候如果导入的表已经存在
ignore=y ##表示导入的时候忽略同名对象,导入的操作是追加


3:其他
(1)导入导出的过程可以更换用户,但是必须有相同的表空间在,这样导入才能够成功
(2)导出的时候会有wainings是正常的,因为有些索引或主外键之类的没有被导出 

(3)导入导出的时候还需要注意字符集的必须是相同或者是子集


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。