设为首页 收藏本站
查看: 877|回复: 0

[经验分享] Oracle Export命令使用浅解

[复制链接]

尚未签到

发表于 2016-7-31 14:00:15 | 显示全部楼层 |阅读模式
      Oracle






Export
命令顾名思义就是导出数据库信息用的,既可以导出表结构,也可以导出数据,

表空间,或者按用户导出等等。按照通常的说法,该命令主要是用于数据库的迁移或者备份的。下面就介绍一下该命令的部分参数。


1.      




认识

exp

命令



执行
export
操作需要执行的命令是
exp, exp
导出数据的一个优点就是快,但导出的结果文件均为二进制文件,而且要求不能手动修改。


exp
在设定执行参数的值的时候,支持的格式为
EXP KEYWORD=value




KEYWORD=(value1,value2,...,valueN),
例如
:



EXP SCOTT/TIGER GRANTS=Y TABLES=(EMP,DEPT,MGR)
 
exp
命令支持多个参数,要查看这些参数的说明可以执行如下命令来看帮助。


exp help=y


但是给出的参数的信息比较粗略。有必要对常用参数进行一下具体说明。


2.      




参数说明



USERID:   

用户名


/
口令。格式为

用户名


/
密码
@
待连接的数据库。该参数必须为
exp
命令的第一个参数。


BUFFER
:数据缓冲区大小。该参数指定查询数据库记录时的缓冲区大小,单位为
byte
,如果该参数设为
0
,那么获取数据库记录时每次读取一行。该参数需要配合参数
direct=N
来使用。


FILE:

输出文件。导出的目标文件名,如果不设定该参数的话,命令会采用默认文件名——EXPDAT.DMP



 


TABLES:

表名列表。需要导出的表名,可以是一个,也可以是多个。单个表名格式为:tables=test_tab,
多个表名格式:tables=(test_tab_1,test_tab_2)
。在这提示一点,在linux
、unix
环境下多个表名时用到的括号需要转义,如下tables=\(test_tab_1,test_tab_2\)



 


COMPRESS



导入到一个区。这个参数是最容易让人误解的了,很容易理解简单压缩的意思。接下来我需要引用一段别人文章中的描述来解释了。


事实上,COMPRESS
是改变STORAGE
参数INITIAL
的值。比如:CREATE TABLE .... STORAGE(
INITIAL 10K NEXT 10K..) 

现在数据已经扩展到100
个EXTENT,
如果采用COMPRESS=Y
来EXPORT
数据,则产生的语句时 STORAGE( INITIAL 1000K NEXT
10K) ;
我们可以看到NEXT
值并没有改变,而INITIAL
是所有EXTENT
的总和。所以会出现如下情况,表A
有4
个100M
的EXTENT,
执行DELETE FROM A
,然后再用COMPRESS=Y
导出数据,产生的CREATE TABLE
语句将有400M
的INITIAL EXTENT
。即使这是TABLE
中已经没有数据!!这是的DUMP
文件即使很小,但是在IMPORT
时就会产生一个巨大的TABLE.
另外,也可能会超过DATAFILE
的大小。比如,有4
个50M
的数据文件,其中表A
有15
个10M
的EXTENT,
如果采用COMPRESS=Y
的方式导出数据,将会有INITIAL=150M
那么在重新导入时,不能分配一个150M
的EXTENT
,因为单个EXTENT
不能跨多个文件。



 
RECORDLENGTH



IO
记录的长度。和DIRECT=Y
配合使用的是RECORDLENGTH
参数,它定义了Export I/O
缓冲的大小,作用类似于常规路径导出使用的BUFFER
参数。建议设置RECORDLENGTH
参数为最大I/O
缓冲,即65535(64kb)



 


INDEXES:

导出索引。导入过程中建立用户定义的索引,特别是表上有多个索引或者数据表特别庞大时,需要耗费大量时间。某些情况下,需要以最快的时间导入数据,而索引允许后建,我们就可以使用


INDEXES=N
只导入数据不创建索引,从而加快导入速度。


 


DIRECT



直接路径。该参数设定为


Y
时,
oracle
将采用直接读取数据库存储文件的方式获取数据,而不再通过查询数据库的方式,省去了执行
sql
的时间,提高了导出速度。


 


LOG



屏幕输出的日志文件。


 


ROWS



导出数据行。默认为


Y
,导出表中数据。设定
N
,则只会导出表结构。这个参数就让我给误会了,我看到这个参数还以为是指定行数呢,这个参数太无厘头了。


 


CONSISTENT



交叉表的一致性。这个参数是指定在数据导出过程中,是否维持数据库表一致性。默认为N
,如果设定为Y
的话,在导出过程中外部系统同样可以查询数据库相关表,并且获取到一致性的数据,在导出之前更新或者修改的数据不会被外部系统感知。这样也就需要占用数据库的回滚段。如果主机资源紧张,可以将参数设定为N
,这样既可以少占用回滚段资源,更主要的是这样导出速度也会提升。


 


FILESIZE:


每个转储文件的最大大小。单位为bytes,
设定了该参数后,当导出的数据文件超过最大值时,会重新写入到新文件中,以此类推。但是每次写入新文件的时候,命令会转为交互状态,需要用户数据新的文件名。


 


QUERY



用户导出表的子集的select
子句。在只希望导出某表的一部分符合条件的数据时,这个参数就能派上用场了。整个参数需要用


” ”
括起来。这个参数通过输入where
条件可以只导出预期的数据。如果是导出针对的是多个表,那么在输入where
条件时需要保证该子句对导出的任何一张表都是有效的。


 


CONSTRAINTS



导出约束条件。是否导出表中已有的constraint



 


GRANTS



是否导出授权信息。


 


STATISTICS



分析对象 。指定导出过程中是否统计导出信息。选项包括:


NONE



COMPUTE

ESTIMATE
。我习惯上把它设定为
NONE,
这样可以提高导出速度。


 


常用的参数基本上就这些了。


 


3.      




举例



下面简单列举了一个导出命令的语句,加深下直观印象。



exp scott/scottpwd@TESTDB file=E:\data\test20111107.dmp buffer=100000 tables=(etl_test_0,etl_test_1,etl_test_2) compress=N indexes=N direct=N rows=Y grants=Y consistent=N constraints=Y log=E:\ data\ exp.log query=”where id > 10”
  



 
  

关于
exp
命令就写这些了,与
exp
相对的一个命令就是
imp
,也就是导入(
import
)命令,有导出就得有导入,这个下一篇再做介绍吧。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-251506-1-1.html 上篇帖子: Oracle Flashback Database and Restore Points 说明 下篇帖子: 区分Oracle和SQL Server常用函数
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表