ORACLEEXPORT命令使用浅解

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ORACLEEXPORT命令使用浅解
Oracle Export命令使用浅解
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)。

相关文档
最新文档