oracle中exp/imp讲解

前端之家收集整理的这篇文章主要介绍了oracle中exp/imp讲解前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

Exp/Imp@H_301_4@是oracle@H_301_4@备份数据的两个命令行工具

1.本地数据库导入导出

1.导出

(运行---cmd@H_301_4@中操作)

exp@H_301_4@用户名/@H_301_4@密码@@H_301_4@数据库实例名file=@H_301_4@本地存放路径

eg: exp jnjp/jnjp@ORCL file=C:/jnjp.dmp

2.导入

imp@H_301_4@用户名/@H_301_4@密码@@H_301_4@数据库实例名file=@H_301_4@本地数据库文件存放路径full=y ignore=y

eg: imp jnjp/jnjp@orcl file=E:\jnjp.dmp full=yignore=y

2.远程数据库导入导出

1.导出

exp@H_301_4@用户名/@H_301_4@密码@ip@H_301_4@地址/@H_301_4@数据库实例名file=@H_301_4@本地存放路径

eg: exp jnjp/jnjp@10.15.135.18/orcl file=C:/jnjp.dmp

imp@H_301_4@用户名/@H_301_4@密码@ip@H_301_4@地址/@H_301_4@数据库实例名file=@H_301_4@本地数据库文件存放路径full=y

3.EXP@H_301_4@的所有参数(括号中为参数的默认值)

USERID @H_301_4@用户名/@H_301_4@口令 如:USERID=duanl/duanl

FULL @H_301_4@导出整个数据库(N)

BUFFER @H_301_4@数据缓冲区的大小

OWNER @H_301_4@所有者用户名列表,@H_301_4@你希望导出哪个用户的对象,就用owner=username

FILE @H_301_4@输出文件(EXPDAT.DMP)

TABLES @H_301_4@表名列表,@H_301_4@指定导出的table@H_301_4@名称,如:TABLES=table1,table2

COMPRESS @H_301_4@导入一个extent (Y)

RECORDLENGTH IO@H_301_4@记录的长度

GRANTS @H_301_4@导出权限(Y)

INCTYPE @H_301_4@增量导出类型

INDEXES @H_301_4@导出索引(Y)

RECORD @H_301_4@跟踪增量导出(Y)

ROWS @H_301_4@导出数据行(Y)

PARFILE @H_301_4@参数文件,@H_301_4@如果你exp@H_301_4@的参数很多,可以存成参数文件.

CONSTRAINTS @H_301_4@导出约束(Y)

CONSISTENT @H_301_4@交叉表一致性

LOG @H_301_4@屏幕输出的日志文件

STATISTICS @H_301_4@分析对象(ESTIMATE)

DIRECT @H_301_4@直接路径(N)

TRIGGERS @H_301_4@导出触发器(Y)

FeedBACK @H_301_4@显示x@H_301_4@行(0)@H_301_4@的进度

FILESIZE @H_301_4@各转储文件的最大尺寸

QUERY @H_301_4@选定导出表子集的子句

下列关键字仅用于可传输的表空间

TRANSPORT_TABLESPACE@H_301_4@导出可传输的表空间元数据(N)

TABLESPACES@H_301_4@将传输的表空间列表

4.IMP@H_301_4@的所有参数(括号中为参数的默认值)

USERID @H_301_4@用户名/@H_301_4@口令

FULL @H_301_4@导入整个文件(N)

BUFFER @H_301_4@数据缓冲区大小

FROMUSER @H_301_4@所有人用户名列表

FILE @H_301_4@输入文件(EXPDAT.DMP)

TOUSER @H_301_4@用户名列表

SHOW @H_301_4@只列出文件内容(N)

TABLES @H_301_4@表名列表

IGNORE @H_301_4@忽略创建错误(N)

GRANTS @H_301_4@导入权限(Y)

INCTYPE @H_301_4@增量导入类型

INDEXES@H_301_4@导入索引(Y)

COMMIT @H_301_4@提交数组插入(N)

ROWS @H_301_4@导入数据行(Y)

PARFILE @H_301_4@参数文件

CONSTRAINTS @H_301_4@导入限制(Y)

DESTROY @H_301_4@覆盖表空间数据文件(N)

INDEXFILE@H_301_4@将表/@H_301_4@索引信息写入指定的文件

SKIP_UNUSABLE_INDEXES @H_301_4@跳过不可用索引的维护(N)

ANALYZE @H_301_4@执行转储文件中的ANALYZE@H_301_4@语句(Y)

FeedBACK@H_301_4@显示x@H_301_4@行(0)@H_301_4@的进度

TOID_NOVALIDATE @H_301_4@跳过指定类型id@H_301_4@的校验

FILESIZE@H_301_4@各转储文件的最大尺寸

RECALCULATE_STATISTICS@H_301_4@重新计算统计(N)

TRANSPORT_TABLESPACE@H_301_4@导入可传输的表空间元数据(N)

TABLESPACES@H_301_4@将要传输到数据库的表空间

DATAFILES@H_301_4@将要传输到数据库的数据文件

TTS_OWNERS@H_301_4@拥有可传输表空间集中数据的用户

5.EXP@H_301_4@常用选项

1.FULL

这个用于导出整个数据库,在ROWS=N@H_301_4@一起使用时,可以导出整个数据库的结构。例如:

exp userid=test/test file=./db_str.dmp log=./db_str.log full=y rows=n compress=y direct=y

注:在oracle10g@H_301_4@中,userid@H_301_4@这个是可以不用写的直接写 用户名/@H_301_4@密码 就可以了像这样:

exp test/test file=./db_str.dmp log=./db_str.log full=y rows=n compress=y direct=y

2.OWNER@H_301_4@和TABLE

这两个选项用于定义EXP@H_301_4@的对象。OWNER@H_301_4@定义导出指定用户的对象;TABLE@H_301_4@指定EXP@H_301_4@的table@H_301_4@名称,例如:

exp userid=test/test file=./db_str.dmp log=./db_str.log owner=duanl

:@H_301_4@有的时候我们可能会遇到只导出单表的情况,下面这种方法可以帮你解决问题

exp userid=test/test file=./db_str.dmp log=./db_str.log table=nc_data,fi_arap

3.FILE@H_301_4@和LOG

这两个参数分别指定备份的DMP@H_301_4@名称LOG@H_301_4@名称包括文件名和目录,例子见上面。

4.COMPRESS

COMPRESS@H_301_4@参数不压缩导出数据的内容。用来控制导出对象的storage@H_301_4@语句如何产生。默认值为Y@H_301_4@,使用默认值,对象的存储语句的init extent@H_301_4@等于当前导出对象的extent@H_301_4@的总和。推荐使用COMPRESS@H_301_4@=N@H_301_4@。

6.IMP@H_301_4@常用选项

1@H_301_4@、FROMUSER@H_301_4@和TOUSER

使用它们实现将数据从一个SCHEMA@H_301_4@中导入到另外一个SCHEMA@H_301_4@中。例如:假设我们做exp@H_301_4@时导出的为test@H_301_4@的对象,@H_301_4@现在我们想把对象导入用户

imp userid=test1/test1 file=expdat.dmp fromuser=test1 touser=test1

2、IGNORE@H_301_4@、GRANTS@H_301_4@和INDEXES

其中IGNORE@H_301_4@参数将忽略表的存在,继续导入,这个对于需要调整表的存储参数时很有用,我们可以先根据实际情况用合理的存储参数建好表,然后直接导入数据。而GRANTS@H_301_4@和INDEXES@H_301_4@则表示是否导入授权和索引,如果想使用新的存储参数重建索引,或者为了加快到入速度,我们可以考虑将INDEXES@H_301_4@设为N@H_301_4@,而GRANTS@H_301_4@一般都是Y@H_301_4@。例如:imp userid=test1/test1 file=expdat.dmp fromuser=test1 touser=test1 indexes=N

7.导入导出实例

下面介绍的是导入导出的实例,向导入导出看实例基本上就可以完成,因为导入导出很简单。

1.数据导出:

1.1将数据库TEST@H_301_4@完全导出,@H_301_4@用户名system@H_301_4@密码manager@H_301_4@导出到D:\daochu.dmp@H_301_4@中

exp system/manager@TEST file=d:\daochu.dmp full=y

1.2@H_301_4@将数据库system@H_301_4@用户sys@H_301_4@用户的表导出

exp system/manager@TEST file=d:\daochu.dmp owner=(system,sys)

1.3@H_301_4@将数据库中的表table1@H_301_4@、table2@H_301_4@导出

exp system/manager@TEST file=d:\daochu.dmp tables=(table1,table2)

1.4@H_301_4@将数据库中的表table1@H_301_4@中的字段filed1@H_301_4@以"00"@H_301_4@打头的数据导出

exp system/manager@TEST file=d:\daochu.dmp tables=(table1) query=\" where filed1 like '00%'\"

2.数据的导入:

2.1@H_301_4@将D:\daochu.dmp@H_301_4@中的数据导入TEST@H_301_4@数据库中。

imp system/manager@TEST file=d:\daochu.dmp

上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。

在后面加上ignore=y@H_301_4@就可以了。

2.2@H_301_4@将d:\daochu.dmp@H_301_4@中的表table1@H_301_4@导入

imp system/manager@TEST file=d:\daochu.dmp tables=(table1)

基本上上面的导入导出够用了。不少情况我是将表彻底删除,然后导入。

3.导出、导入通配符的使用:

想导出格式为TABLE_1,TABLE_2,TABLE_3@H_301_4@这样的表,这样的表在库中共有300@H_301_4@张,难道要一张张的写语句?太费神了吧,不用担心,oracle@H_301_4@提供通配符可以使用来满足这样的需求:

exp system/test@192.168.1.198/orcl file=d:\exp_test.dmptables=TABLE_% log=exp_test.log

参考资料:http://sucre.iteye.com/blog/424760

原文链接:https://www.f2er.com/oracle/205860.html

猜你在找的Oracle相关文章