金色的脚印ppt课件完美:Oracle Export命令使用浅解
来源:百度文库 编辑:中财网 时间:2024/04/29 11:52:09
Oracle 的 Export 命令顾名思义就是导出数据库信息用的,既可以导出表结构,也可以导出数据, 表空间,或者按用户导出等等。按照通常的说法,该命令主要是用于数据库的迁移或者备份的。下面就介绍一下该命令的部分参数。
1. 认识 exp 命令
执行 export 操作需要执行的命令是 exp, exp 导出数据的一个优点就是快,但导出的结果文件均为二进制文件,而且要求不能手动修改。
exp 在设定执行参数的值的时候,支持的格式为 EXP KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN), 例如 :
Java代码
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. 举例
下面简单列举了一个导出命令的语句,加深下直观印象。
Java代码
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. 认识 exp 命令
执行 export 操作需要执行的命令是 exp, exp 导出数据的一个优点就是快,但导出的结果文件均为二进制文件,而且要求不能手动修改。
exp 在设定执行参数的值的时候,支持的格式为 EXP KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN), 例如 :
Java代码
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. 举例
下面简单列举了一个导出命令的语句,加深下直观印象。
Java代码
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 )命令,有导出就得有导入,这个下一篇再做介绍吧。
求助:如何在Oracle中使用DOS命令?
oracle 使用问题
oracle中的blog命令是怎么回事儿?
有关ORACLE数据库命令的题
怎么让oracle导出命令exp无效
oracle 显示所有表的命令
怎么使用Dreamweaver 连接 Oracle
oracle 外连接使用条件
Oracle 安装及使用问题!
使用ORACLE如何连接数据库?
export quality
oracle 备份的命令提示符是什么? (加急)
如何从linux通过命令进入oracle数据库
oracle在linux命令窗口中有哪些常用命令?
sqlplus的oracle命令有哪些常用的
oracle中用什么 命令察看一个表的结构定义?
flax3.01的输出选项export to clipyard为什么无法使用
flax3.01的输出选项export to clipyard为什么无法使用
oracle 中可以使用 compute 语句吗
使用ORACLE要开的服务
DOS命令的使用
如何使用“tracert”命令?
cs 命令使用
ping命令的使用