Oracle数据库dmp文件Dos命令下导入导出
数据导出:
一. 导出工具exp
他是操作系统下一个可执行的文件,存放目录/Oracle_Home/bin.
exp导出工具将数据库中数据备份压缩成一个二进制系统文件,可以在不同的OS间迁移.
他有三种模式:
a. 用户模式:导出用户所有对象以及对象中的数据.
b.表模式: 导出用户所有表或者指定表.
c.整个数据库: 导出数据库中所有对象.
例子(用户名system,密码manager):
1. 将数据库test完全导出,导出到D:tianma.dmp
exp system/manager@test file=d:\tianma.dmp full=y
2. 将数据库中的system用户与sys用户的表导出
exp system/manager@orcl file=d:\tianma.dmp owner=(system,sys)
3. 将数据库中的表student,class导出
exp system/manager@orcl file=d:\tianma.dmp tables(student,class)
4.将数据库中student表中filed字段以”00”打斗的数据导出
exp system/manager@test file=d:\tianma.dmp tables(student) query=”where filed like ‘00%’”
关键字 说明(默认)
-----------------------------------------
UserId 用户名/口令
Full 导出整个文件(N)
Buffer 数据缓冲区的大小
Owner 所有者用户名列表
File 输出文件(ExpDat.dmp)
Tables 表名列表
Compress 导入一个范围(Y),实现压缩,相当于用winzip把dmp文件很好的压缩。
Recordlength IO 记录的长度
Grants 导出权限(Y)
Inctype 增量导出类型
Indexs 导出索引(Y)
Record 跟踪增量导出(Y)
Rows 导出数据行(Y)
Parfile 参数文件名
Constraints 导出约束(Y)
Consistent 交叉表一致性
Log 屏幕输出的 日志文件
Statistics 分析对象(Estimate)
Direct 直接路径(N)
Triggers 导出触发器(Y)
FeedBack 显示每x行(0) 的进度
FileSize 各转出文件的最大尺寸
Query 选定导出表子集的子句
下列关键字仅用于可传输的表空
Transport_Tablespace 导出可传输的表空间元数据(N)
Tablespace 将传输的表空间列表
数据导入:
二. 导入工具 imp
他是操作系统下一个可执行的文件,存放目录/Oracle_Home/Bin
imp 导入工具将exp形成的二级制系统文件导入到数据库中.
他有三种模式:
a. 用户模式: 导入用户所有对象以及对象中的数据库
b. 表模式: 导入用户所有表或者指定的表.
c. 整个数据库: 导入数据库中所有对象
只有拥有 IMP_FULL_DATABASE 和DBA 权限的用户才能做整个数据库导入
例子(用户名admin,密码sa):
1. 将d:\tianma.dmp 中的数据导入 @orcl 数据库中
imp admin/sa@orcl file=d:\tianma.dmp.
imp admin/sa@orcl file=d:\tianma.dmp full=y ignore=y
上面可能有点问题,以为有的表已经存在,然后他就报错,对该表就不进行倒入.在后面加上Ignore=y就可以了
2. 将d:\tianma.dmp中的表student导入
imp admin/sa@orcl file=d:\tianma.dmp tables(student)
3.导入params.dat,tianma.dmp内容
imp admin/sa parfile=params.dat file=tianma.dmp show=n ignore=n grants=y fromuser=sott tables=(student,classs)
关键字 说明(默认)
-----------------------------------------
UserId 用户名/口令
Full 导入整个文件(N)
Buffer 数据缓冲区的大小
Fromuser 所有人用户名列表
File 输入文件(ExpDat.dmp)
Touser 用户名列表
Show 只列出文件内容(N)
Tables 表名列表
Ignore 忽略创建错误(N)
RecordLength IO 记录的长度
Grants 导入权限(Y)
Inctype 增量导入类型
Indexs 导入索引(Y)
Commit 提交数组插入
Rows 导入数据行(Y)
Parfile 参数文件名
Constraints 导入约束(Y)
Log 屏幕输出的 日志文件
Destroy 覆盖表空间数据文件(N)
IndexFile 将表索引信息写入指定的文件
Skip_Unusable_Indexes 跳过不可用索引的维护(N)
Analyze 执行转出文件中的Analyze语句
Toid_Novalidate 跳过指定类型Id的校验
FileSize 各转储文件的最大尺寸
Recalculate_Statistics 重新计算统计值(N)
下列关键字仅用于可传输的表空间:
Transport_Tablespace 导入可传输的表空间元数据(N)
TableSpace 将要传输的数据库的表空间
DataFiles 将要传输的数据库的数据文件
TTS_Ownsers 拥有可传输表空间集中数据的用户
注意: 操作者要有足够的权限,权限不够它会提示。 数据库时可以连上的。可以用tnsping TEST 来获得数据库TEST能否连上。
附录………
Oracle 不允许直接改变表的拥有者, 利用Export/Import可以达到这一目的. 先建立import9.par, 然后,使用时命令如下:imp parfile=/filepath/import9.par 例 import9.par 内容如下: FROMUSER=TGPMS TOUSER=TGPMS2 (注:把表的拥有者由FROMUSER改为TOUSER,FROMUSER和TOUSER的用户可以不同) ROWS=Y INDEXES=Y GRANTS=Y CONSTRAINTS=Y BUFFER=409600 file==/backup/ctgpc_20030623.dmp