您的位置:首页 > 数据库 > Oracle

ORACLE EXP/IMP 参数详解

2012-10-18 19:25 274 查看
ORACLE EXP/IMP 参数详解

EXP导出选项

关键字

说明
USERID
运行导出命令的帐号的用户名/口令
BUFFEER
用来取数据行的缓冲区的大小
FILE
导出转储文件的名字
COMPRESS
导出是否应该压缩有碎片的段成一个范围,这将会影响STORAGE子句
GRANTS
导出时否要导出数据库对象上的授权
INDEXES
是否要导出表上的索引
ROWS
是否应导出行。如它为‘N’,那么在导出文件中仅生成数据库对象的DDL
CONSSTRAINTS
是否导出表旧的约定条件
FULL
如设为‘Y’,那么将执行一个整个数据库导出操作
OWNER
要导出的一系列数据库帐号,然后执行这些帐号的USER导出操作
TABLES
要导出的一系列表;执行这些表的TABLE导出操作
RECORDLENGTH
转储导出文件日志的长度(以字节为单位),通常都使用缺省,除非要在两个不同操作系统中传递导出文件
INCTYPE
正在执行的导出操作的类型(有效值有COMPLETE(缺省值), CUMULATIVE 和IVCREMENTAL)
RECORD
在增量导出类型中的一个标记,标明是否将日志存储到数据字典中日志导出的表中
PARFILE
要传递给导出的参数文件的名字。这个文件将包含所有参数的入口项
ANALYZE
标明是否将移对象的统计信息写入导出转储文件中
CONSISTENT
标明是否保留所有导出对象的读取一致复制
LOG
导出日志将要写入的文件的名字
MLS
标明是否要导出MLS 标号
MLS_LABEL
规定了MLS标号的格式
IMP导入选项

关键字

说明
USERID
运行导入命令的帐号的用户名/口令
BUFFEER
用来取数据行的缓冲区的大小
FILE
导入转储文件的名字
SHOW
规定文件内容是否被显示,而不是被执行
EGNORE
标明在执行‘CREATE’命令时,是否忽略遇到的错误。如果正在导入的对象已经存在时,应使用这个参数
FULL
如设为‘Y’,那么将执行一个整个数据库导入操作
FROMUSER
在FULL=N的情况下,才有参数。它是一系列的数据库帐号,其对象应从导出转储文件中读取
TOUSER
一系列数据库帐号,导出转储文件扣的对象将要导入这些帐号
GRANTS
导入时否要导入数据库对象上的授权
INDEXES
是否要导入表上的索引
ROWS
是否应导入行。如它为‘N’,那么在导入文件中执行数据库对象的DDL
TABLES
要导入的一系列表
RECORDLENGTH
转储导入文件日志的长度(以字节为单位),通常都使用缺省,除非要在两个不同操作系统中传递导入文件
INCTYPE
正在执行的导入操作的类型(有效值有COMPLETE(缺省值),CUMULATIVE和IVCREMENTAL)
PARFILE
要传递给导入的参数文件的名字。这个文件将包含所有参数的入口项
ANALYZE
标明是否将移对象的统计信息写入导入转储文件中
LOG
导入日志将要写入的文件的名字
MLS
标明是否要导入MLS 标号
INDEXFILE
不执行导入动作,只生成建索引的文本
一. 导出工具 exp

1. 它是操作系统下一个可执行的文件 存放目录/ORACLE_HOME/bin

exp导出工具将数据库中数据备份压缩成一个二进制系统文件.可以在不同OS间迁移

它有三种模式:

a. 用户模式: 导出用户所有对象以及对象中的数据;

b. 表模式: 导出用户所有表或者指定的表;

c. 整个数据库: 导出数据库中所有对象。

说明:username.par为导出工具exp用的参数文件,里面具体参数可以根据需要去修改

filesize指定生成的二进制备份文件的最大字节数

(可用来解决某些OS下2G物理文件的限制及加快压缩速度和方便刻历史数据光盘等)
4. 命令参数说明

关键字

说明(关键字)
USERID
用户名/口令
FULL
导出整个文件 (N)
BUFFER
数据缓冲区的大小
OWNER
所有者用户名列表
FILE
输出文件 (EXPDAT.DMP)
TABLES
表名列表
COMPRESS
导入一个范围 (Y)
RECORDLENGTH IO
记录的长度
GRANTS
导出权限 (Y)
INCTYPE
增量导出类型
INDEXES
导出索引 (Y)
RECORD
跟踪增量导出 (Y)
ROWS
导出数据行 (Y)
PARFILE
参数文件名
CONSTRAINTS
导出限制 (Y)
CONSISTENT
交叉表一致性
LOG
屏幕输出的日志文件
STATISTICS
分析对象 (ESTIMATE)
DIRECT
直接路径 (N)
TRIGGERS
导出触发器 (Y)
FEEDBACK
显示每 x 行 (0) 的进度
FILESIZE
各转储文件的最大尺寸
QUERY
选定导出表子集的子句
下列关键字仅用于可传输的表空间
TRANSPORT_TABLESPACE
导出可传输的表空间元数据 (N)
TABLESPACES
将传输的表空间列表
二.导入工具 imp

1. 它是操作系统下一个可执行的文件 存放目录/ORACLE_HOME/bin

imp导入工具将EXP形成的二进制系统文件导入到数据库中.

它有三种模式:

a. 用户模式: 导出用户所有对象以及对象中的数据;

b. 表模式: 导出用户所有表或者指定的表;

c. 整个数据库: 导出数据库中所有对象。

只有拥有IMP_FULL_DATABASE和DBA权限的用户才能做整个数据库导入

imp步骤:

(1) create table (2) insert data (3) create index (4) create triggers,constraints

4.导入工具imp可能出现的问题

(1) 数据库对象已经存在

一般情况, 导入数据前应该彻底删除目标数据下的表, 序列, 函数/过程,触发器等;

数据库对象已经存在, 按缺省的imp参数, 则会导入失败

如果用了参数ignore=y, 会把exp文件内的数据内容导入

如果表有唯一关键字的约束条件, 不合条件将不被导入

如果表没有唯一关键字的约束条件, 将引起记录重复

(2) 数据库对象有主外键约束

不符合主外键约束时, 数据会导入失败

解决办法: 先导入主表, 再导入依存表

disable目标导入对象的主外键约束, 导入数据后, 再enable它们

(3) 权限不够

如果要把A用户的数据导入B用户下, A用户需要有imp_full_database权限

(4) 导入大表( 大于80M ) 时, 存储分配失败

默认的EXP时, compress = Y, 也就是把所有的数据压缩在一个数据块上.

导入时, 如果不存在连续一个大数据块, 则会导入失败.

导出80M以上的大表时, 记得compress= N, 则不会引起这种错误.

(5) imp和exp使用的字符集不同

如果字符集不同, 导入会失败, 可以改变unix环境变量或者NT注册表里NLS_LANG相关信息.

导入完成后再改回来.

(6) imp和exp版本不能往上兼容

imp可以成功导入低版本exp生成的文件, 不能导入高版本exp生成的文件

根据情况我们可以用

$ imp [email=username/password@connect_string]username/password@connect_string[/email]

说明: connect_string 是在/ORACLE_HOME/network/admin/tnsnames.ora

定义的本地或者远端数据库的名称

5.命令参数说明

关键字

说明(默认值)
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)
ANALYZE
执行转储文件中的 ANALYZE 语句 (Y)
r />FEEDBACK
显示每 x 行 (0) 的进度
TOID_NOVALIDATE
跳过指定类型 id 的校验
FILESIZE
各转储文件的最大尺寸
RECALCULATE_STATISTICS
重新计算统计值 (N)
下列关键字仅用于可传输的表空间
TRANSPORT_TABLESPACE
导入可传输的表空间元数据 (N)
TABLESPACES
将要传输到数据库的表空间
DATAFILES
将要传输到数据库的数据文件
TTS_OWNERS
拥有可传输表空间集中数据的用户
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: