OracleimportExport命令Oracle import/Export 命令
通过以下命令可以查看说明。
c:\>imp help=y
c:\>exp help=y
exp/imp 实例
exp help=y 查看帮助
exp
1、exp usr/pwd@sid file=c:\tb.dump tables=tb1
如果是导出多个表,tables=(tb1、tb2)
2、exp usr/pwd@sid file=c:\tb.dump --全部导出
3、exp usr/pwd@sid file=c:\tb.dump owner=(system,sys)
将⽤户system和sys⽤户下的表都导出
4、exp usr/pwd@sid file=c:\tb.dump tables=tb1 query=\"where name='ha'\"
注意分号的位置
命令详解:
导⼊命令:IMP:
可以通过输⼊ IMP 命令和您的⽤户名/⼝令
后接⽤户名/⼝令的命令:
例程序: IMP SCOTT/TIGER
或者, 可以通过输⼊ IMP 命令和各种参数来控制“导⼊”
按照不同参数。要指定参数,您可以使⽤关键字:
格式: IMP KEYWORD=value 或 KEYWORD=(value1,value2,...,vlaueN)
例程序: IMP SCOTT/TIGER IGNORE=Y TABLES=(EMP,DEPT) FULL=N
或 TABLES=(T1: P1,T1: P2),如果 T1 是分区表
USERID 必须是命令⾏中的第⼀个参数。
关键字说明(默认)关键字说明(默认)
-----------------------------------------------------------------
USERID ⽤户名/⼝令 FULL 导⼊整个⽂件 (N)
BUFFER 数据缓冲区⼤⼩ FROMUSER 所有⼈⽤户名列表
FILE 输⼊⽂件 (EXPDAT.DMP) TOUSER ⽤户名列表
SHOW 只列出⽂件内容 (N) TABLES 表名列表
IGNORE 忽略创建错误 (N) RECORDLENGTH IO 记录的长度
GRANTS 导⼊权限 (Y) INCTYPE 增量导⼊类型
INDEXES 导⼊索引 (Y) COMMIT 提交数组插⼊ (N)
ROWS 导⼊数据⾏ (Y) PARFILE 参数⽂件名
LOG 屏幕输出的⽇志⽂件 CONSTRAINTS 导⼊限制 (Y)
DESTROY 覆盖表空间数据⽂件 (N)
INDEXFILE 将表/索引信息写⼊指定的⽂件
SKIP_UNUSABLE_INDEXES 跳过不可⽤索引的维护 (N)
FEEDBACK 每 x ⾏显⽰进度 (0)
TOID_NOVALIDATE 跳过指定类型 ID 的验证
FILESIZE 每个转储⽂件的最⼤⼤⼩
STATISTICS 始终导⼊预计算的统计信息
RESUMABLE 在遇到有关空间的错误时挂起 (N)
RESUMABLE_NAME ⽤来标识可恢复语句的⽂本字符串
RESUMABLE_TIMEOUT RESUMABLE 的等待时间
COMPILE 编译过程, 程序包和函数 (Y)
STREAMS_CONFIGURATION 导⼊ Streams 的⼀般元数据 (Y)
STREAMS_INSTANITATION 导⼊ Streams 的实例化元数据 (N)
下列关键字仅⽤于可传输的表空间
TRANSPORT_TABLESPACE 导⼊可传输的表空间元数据 (N)
TABLESPACES 将要传输到数据库的表空间
DATAFILES 将要传输到数据库的数据⽂件
TTS_OWNERS 拥有可传输表空间集中数据的⽤户
导出命令:EXP:
通过输⼊ EXP 命令和⽤户名/⼝令,您可以
后接⽤户名/⼝令的命令:
例程序: EXP SCOTT/TIGER
或者,您也可以通过输⼊跟有各种参数的 EXP 命令来控制“导出”
按照不同参数。要指定参数,您可以使⽤关键字:
格式: EXP KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)
例程序: EXP SCOTT/TIGER GRANTS=Y TABLES=(EMP,DEPT,MGR)
或 TABLES=(T1: P1,T1: P2),如果 T1 是分区表
USERID 必须是命令⾏中的第⼀个参数。
关键字说明(默认) 关键字说明(默认)
--------------------------------------------------------------------------
USERID ⽤户名/⼝令 FULL 导出整个⽂件 (N)
BUFFER 数据缓冲区⼤⼩ OWNER 所有者⽤户名列表
FILE 输出⽂件 (EXPDAT.DMP) TABLES 表名称列表
COMPRESS 导⼊到⼀个区 (Y) RECORDLENGTH IO 记录的长度
GRANTS 导出权限 (Y) INCTYPE 增量导出类型
INDEXES 导出索引 (Y) RECORD 跟踪增量导出 (Y)
DIRECT 直接路径 (N) TRIGGERS 导出触发器 (Y)
LOG 屏幕输出的⽇志⽂件 STATISTICS 分析对象 (ESTIMATE)
ROWS 导出数据⾏ (Y) PARFILE 参数⽂件名
CONSISTENT 交叉表的⼀致性 (N) CONSTRAINTS 导出的约束条件 (Y) OBJECT_CONSISTENT 只在对象导出期间设置为读的事务处理 (N)
FEEDBACK 每 x ⾏的显⽰进度 (0)
FILESIZE 每个转储⽂件的最⼤⼤⼩
FLASHBACK_SCN ⽤于将会话快照设置回以前状态的 SCN
FLASHBACK_TIME ⽤于获取最接近指定时间的 SCN 的时间
QUERY ⽤于导出表的⼦集的 select ⼦句
RESUMABLE 遇到与空格相关的错误时挂起 (N)
RESUMABLE_NAME ⽤于标识可恢复语句的⽂本字符串
RESUMABLE_TIMEOUT RESUMABLE 的等待时间
TTS_FULL_CHECK 对 TTS 执⾏完整的或部分相关性检查
TABLESPACES 要导出的表空间列表
TRANSPORT_TABLESPACE 导出可传输的表空间元数据 (N)
TEMPLATE 调⽤ iAS 模式导出的模板名[/code]
oracle Export and Import 简介
1、Export/Import的⽤处
Oracle Export/Import⼯具⽤于在数据库之间传递数据。
Export从数据库中导出数据到dump⽂件中
Import从dump⽂件中到⼊数据导数据库中
下⾯是⼀般使⽤他们的情况
(1)、两个数据库之间传送数据
同⼀个版本的oracle Server之间
不同版本的oracle Server之间
同种OS之间
不同种OS之间
(2)、⽤于数据库的备份和恢复
(3)、从⼀个SCHEMA传送到另⼀个SCHEMA
(4)、从⼀个TABLESPACE传送到另⼀个TABLESPACE
2、DUMP⽂件
EXPORT到出的是⼆进制格式的⽂件,不可以⼿⼯编辑,否则会损坏数据。
该⽂件在ORACLE⽀持的任何平台上都是⼀样的格式,可以在各平台上通⽤。DUMP⽂件在IMPORT时采⽤向上兼容⽅式,就是说ORALCE7的DUMP⽂件可以导⼊到ORACLE8中,但是版本相差很⼤的版本之间可能有问题。
3、EXPORT/IMPORT过程
EXPORT导出的DUMP⽂件包含两种基本类型的数据
- DDL
- Data
DUMP⽂件包含所有重新创建Data Dictionary的DDL语句,基本上是可以读的格式。
但是应该注意的是,千万不要⽤⽂本编辑器编辑之,oracle说不⽀持这样做的。
4、IMPORT时的对象倒⼊顺序
在倒⼊数据时,ORACLE有⼀个特定的顺序,可能随数据库版本不同⽽有所变化。
按这个顺序主要是解决对象之间依赖关系可能产⽣的问题。TRIGGER最后导⼊,所以在INSERT
数据到数据库时不会激发TRIGGER。在导⼊后可能会有⼀些状态是INVALID的PROCEDURE,主要
是IMPORT时会影响⼀些数据库对象,⽽IMPORT并不重新编译PROCEDURE,从⽽造成这种情况,
可以重新编译之,就能解决这个问题。
5、兼容性问题
IMPORT⼯具可以处理EXPORT 5.1.22之后的版本导出的DUMP⽂件,所以你⽤ORACL E7的IMPORT
处理ORACLE6的DUMP⽂件,依次类推,但是ORACLE如果版本相差很⼤有可能不能处理。具体的
问题可以参照相应的⽂档,⽐如有关参数设置等(COMPATIBLE参数)
6、EXPORT需要的VIEW
EXPORT需要的VIEW是由CATEXP.SQL创建,这些内部VIEW⽤于EXPORT组织DUMP⽂件中数据格式。
⼤部分VIEW⽤于收集创建DDL语句的,其他的主要供ORACLE开发⼈员⽤。
这些VIEW在不同ORACLE版本之间有可能不同,每个版本可能都有新的特性加⼊。
所以在新的版本⾥⾯执⾏旧的dump⽂件会有错误,⼀般可以执⾏CATEXP.SQL解决这些问题,
解决向后兼容问题的⼀般步骤如下:
导出数据库的版本⽐⽬标数据库⽼的情况:
- 在需要导⼊的⽬标数据库中执⾏旧的CATEXP.SQL
- 使⽤旧的EXPORT导出DUMP⽂件
- 使⽤旧的IMPORT导⼊到数据库中
- 在数据库中执⾏新的CATEXP.SQL,以恢复该版本的EXPORT VIEW
oracle登录命令导出数据库的版本⽐⽬标数据库新的情况:
- 在需要导⼊的⽬标数据库中执⾏新的CATEXP.SQL
- 使⽤新的EXPORT导出DUMP⽂件
- 使⽤新的IMPORT导⼊到数据库中
- 在数据库中执⾏旧的CATEXP.SQL,以恢复该版本的EXPORT VIEW
7、碎⽚整理
EXPORT/IMPORT ⼀个很重要的应⽤⽅⾯就是整理碎⽚。因为如果时初次IMPPORT,就会重新CREATE TABLE 再导⼊数据,所以整张表都是连续存放的。另外缺省情况下下EXPORT会在⽣成DUMP⽂件是“压缩(COMPRESS)”TABLE,但是这种压缩在很多情况下被误解。事实上,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不能跨多个⽂件。
8、在USER和TABLESPACE之间传送数据
⼀般情况下EXPORT的数据要恢复到它原来的地⽅去。如果SCOTT⽤户的表以TABLE 或USER⽅式E
XPORT数据,在IMPORT时,如果SCOTT⽤户不存在,则会报错! 以FULL⽅式导出的数据带有CREATE USER的信息,所以会⾃⼰创建USER来存放数据。
当然可以在IMPORT时使⽤FROMUSER和TOUSER参数来确定要导⼊的USER,但是要保证
TOUSER⼀定已经存在啦。
9、EXPORT/IMPORT对SQUENCE的影响
在两种情况下,EXPORT/IMPORT会对SEQUENCE。
(1)如果在EXPORT时,⽤户正在取SEQUENCE的值,可能造成SEQUENCE的不⼀致。
(2)另外如果SEQUENCE使⽤CACHE,在EXPORT时,那些在CACHE中的值就会被忽略的,
只是从数据字典⾥⾯取当前值EXPORT。
如果在进⾏FULL⽅式的EXPORT/IMPORT时,恰好在⽤sequence更新表中某列数据,⽽且不是上⾯两种情况,则导出的是更新前的数据。
如果采⽤常规路径⽅式,每⼀⾏数据都是⽤INSERT语句,⼀致性检查和INSERT T RIGGER
如果采⽤DIRECT⽅式,某些约束和trigger可能不触发,如果在trigger中使⽤val,将会对sequence有影响。
再保存个东西:
查看当前⽤户每个表占⽤空间的⼤⼩:
Select Segment_Name,Sum(bytes)/1024/1024 From User_Extents Group By Segment_Name
查看每个表空间占⽤空间的⼤⼩:
Select Tablespace_Name,Sum(bytes)/1024/1024 From Dba_Segments Group By Tablespace_Name
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论