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
将数据库内的各对象以二进制方式下载成dmp文件,方便数据迁移。
buffer:下载数据缓冲区,以字节为单位,缺省依赖操作系统
consistent:下载期间所涉及的数据保持read only,缺省为n
direct:使用直通方式 ,缺省为n
feeback:显示处理记录条数,缺省为0,即不显示
file:输出文件,缺省为expdat.dmp
filesize:输出文件大小,缺省为操作系统最大值
indexes:是否下载索引,缺省为n,这是指索引的定义而非数据,exp不下载索引数据
log:log文件,缺省为无,在标准输出显示
owner:指明下载的用户名
query:选择记录的一个子集
rows:是否下载表记录
tables:输出的表名列表
导出整个实例
exp dbuser/oracle file=oradb.dmp log=oradb.log full=y consistent=y
direct=y
user应具有dba权限
导出某个用户所有对象
exp dbuser/oracle file=dbuser.dmp log=dbuser.log owner=dbuser
buffer=4096000 feedback=10000
导出一张或几张表
exp dbuser/oracle file=dbuser.dmp log=dbuser.log
tables=table1,table2 buffer=4096000 feedback=10000
导出某张表的部分数据
exp dbuser/oracle file=dbuser.dmp log=dbuser.log tables=table1
buffer=4096000 feedback=10000 query=\”where col1=\’…\’ and col2
\
不可用于嵌套表
以多个固定大小文件方式导出某张表
exp dbuser/oracle file=1.dmp,2.dmp,3.dmp,… filesize=1000m
tables=emp buffer=4096000 feedback=10000
这种做法通常用在:表数据量较大,单个dump文件可能会超出文件系统的限制
直通路径方式
direct=y,取代buffer选项,query选项不可用
有利于提高下载速度
consistent选项
自export启动后,consistent=y冻结来自其它会话的对export操作的数据对象的更新,这样可以保证dump结果的一致性。但这个过程不能太长,以免回滚段和联机日志消耗完
imp
将exp下载的dmp文件上载到数据库内。
buffer:上载数据缓冲区,以字节为单位,缺省依赖操作系统
commit:上载数据缓冲区中的记录上载后是否执行提交
feeback:显示处理记录条数,缺省为0,即不显示
file:输入文件,缺省为expdat.dmp
filesize:输入文件大小,缺省为操作系统最大值
fromuser:指明来源用户方
ignore:是否忽略对象创建错误,缺省为n,在上载前对象已被建立往往是一个正常现象,所以此选项建议设为y
indexes:是否上载索引,缺省为n,这是指索引的定义而非数据,如果上载时索引已建立,此选项即使为n也无效,imp自动更新索引数据
log:log文件,缺省为无,在标准输出显示
rows:是否上载表记录
tables:输入的表名列表
touser:指明目的用户方
导入整个实例
imp dbuser/oracle file=oradb.dmp log=oradb.log full=y
buffer=4096000 commit=y ignore=y feedback=10000
导入某个用户所有对象
imp dbuser/oracle file=dbuser.dmp log=dbuser.log fromuser=dbuser
touser=dbuser2 buffer=2048000 commit=y ignore=y
feedback=10000
导入一张或几张表
imp dbuser2/oracle file=user.dmp log=user.log tables=table1,table2
fromuser=dbuser touser=dbuser2 buffer=2048000 commit=y ignore=y
feedback=10000
以多个固定大小文件方式导入某张表
imp dbuser/oracle file=\(1.dmp,2.dmp,3.dmp,…\) filesize=1000m
tables=emp fromuser=dbuser touser=dbuser2 buffer=4096000 commit=y
ignore=y feedback=10000
备注:
同版本导入时,比如9i的,导入操作时应该先导入表结构再导入数据.不然后触发,约束不能导入.
例如:
先导表结构
imp "'sys/**** as sysdba'" file=/home/orcl/daily.dmp
log=/home/orcl/daily.log full=y rows=n indexes=n
statistics=none
后导数据
imp "'sys/**** as sysdba'" file=/home/orcl/daily.dmp
log=/home/orcl/daily.log statistics=none ignore=y full=y
参数文件-用户导入
imp parfile=cams_imp.par
cams_imp.par 文件的内容为:
userid=cams/cams@cams
fromuser=cams
touser=cams
file=(/tmp/2004020601.dmp, /tmp/2004020602.dmp,
/tmp/2004020603.dmp)
log=/tmp/20040206.log
该命令使用了参数文件,导入文件中cams 用户的所有数据,导入过程记录日志.
说明:
(1) cams 用户保存了CAMS 系统的重要数据,为了不暴露cams 用户的密码可以将上面的userid
的值写为cams@cams,此时imp 会提示用户输入密码,输入的密码不会显示出来.