本文主要是介绍exp,expdp命令实践,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在window平台下面:
查看帮助:exp/imp help=y 可以查看命令参数和参数默认值说明。
同样有expdp/impdp help=y。exp/imp早在9i就有这样的用法。expdp/impdp在oracle 10g才出现的用法。oracle 10g版本也支持exp/imp这样的用法。
exp/imp,expdp/impdp用于数据的逻辑备份。
按照给定的exp/expdp参数说明:可以分别针对表(查询),用户,表空间,完整库的导入和导出。
在使用这些命令的时候,最后指定导出日志文件的位置(和数据文件放在一起),这样即使文件导出很长的时间,也记得当时导出的格式。
下面这些摘自:http://www.cnblogs.com/furenjun/archive/2008/05/20/oracleImpExp.html
数据的导出
1 将数据库SampleDB完全导出,用户名system 密码manager 导出到E:\SampleDB.dmp中
exp system/manager@TestDB file=full.dmp full=y log=full.log
--file也可以就写个文件名:full.dmp,这样导出文件在当前的文件夹下面。
从导出的日志来看 依次导出有:
. 正在导出表空间定义
. 正在导出配置文件
. 正在导出用户定义
. 正在导出角色
. 正在导出资源成本
. 正在导出回退段定义
. 正在导出数据库链接
. 正在导出序号
. 正在导出目录别名
. 正在导出上下文名空间
. 正在导出外部函数库名称
. 导出 PUBLIC 类型同义词
. 导出私有类型同义词
. 正在导出对象类型定义
. 正在导出系统过程对象和操作
. 正在导出 pre-schema 过程对象和操作
. 正在导出群集定义
. 即将导出 SYSTEM 的表通过常规路径 ...
. . 正在导出表
....
. . 正在导出分区 COSTS_Q1_1998 57879 行被导出
. 正在导出同义词
. 正在导出视图
. 正在导出引用完整性约束条件
. 正在导出存储的过程
. 正在导出运算符
. 正在导出索引类型
. 正在导出位图, 功能性索引和可扩展索引
. 正在导出后期表活动
. 正在导出触发器
. 正在导出实体化视图
. 正在导出快照日志
. 正在导出作业队列
. 正在导出刷新组和子组
. 正在导出维
. 正在导出 post-schema 过程对象和操作
. 正在导出用户历史记录表
. 正在导出默认值和系统审计选项
. 正在导出统计
2 将数据库中system用户与sys用户的表导出
exp system/manager@TestDB file=E:\sampleDB.dmp owner=(system,sys)
3 将数据库中的表 TableA,TableB 导出
exp system/manager@TestDB file=E:\sampleDB.dmp tables=(TableA,TableB)
4 将数据库中的表tableA中的字段filed1 值为 "王五" 的数据导出
exp hr/hr tables=(employees) file=query.dmp log=query.log query='where employee_id ">" 110 '
--将会导出导出满足条件的数据。
下面是一些特殊字符的转化
windows下面的处理:
exp ... query='where deptno=10'
exp ... query='where deptno=''10'''
exp ... query='where deptno"<"10'
在Solaris(C shell)下, 如何指定query参数:
exp ..... query=\"where col1 \< 1000\"
exp ..... query=\"where col1 \< '1000'\"
如果想对dmp文件进行压缩,可以在上面命令后面 加上 compress=y 来实现。
数据的导入
1 将备份数据库文件中的数据导入指定的数据库SampleDB 中,如果 SampleDB 已存在该表,则不再导入;
imp system/manager@TEST file=E:\sampleDB.dmp full=y ignore=y
2 将d:\daochu.dmp中的表table1 导入
imp system/manager@TEST file=E:\sampleDB.dmp tables=(table1)
3. 导入一个完整数据库
imp system/manager file=bible_db log=dible_db full=y ignore=y
4. 导入一个或一组指定用户所属的全部表、索引和其他对象
imp system/manager file=seapark log=seapark fromuser=seapark
imp system/manager file=seapark log=seapark fromuser=(seapark,amy,amyc,harold)
5. 将一个用户所属的数据导入另一个用户
imp system/manager file=tank log=tank fromuser=seapark touser=seapark_copy
imp system/manager file=tank log=tank fromuser=(seapark,amy) touser=(seapark1, amy1)
6. 导入一个表
imp system/manager file=tank log=tank fromuser=seapark TABLES=(a,b)
7. 从多个文件导入
imp system/manager file=(paycheck_1,paycheck_2,paycheck_3,paycheck_4)
log=paycheck, filesize=1G full=y
8. 使用参数文件
imp system/manager parfile=bible_tables.par
bible_tables.par参数文件:
#Import the sample tables used for the Oracle8i Database Administrator's
Bible. fromuser=seapark touser=seapark_copy file=seapark log=seapark_import
例 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
log==/backup/import_20030623.log
9. 增量导入
imp system./manager inctype= RECTORE FULL=Y FILE=A
不少情况下要先将表彻底删除,然后导入。
EXP常规模式、EXP直接路径模式和EXPDP三种方式导出的性能对比
exp常规模式格式:(不指定exp命令中的direct 参数,默认为N)
exp zhejiang/zhejiang file=/data1_regular.dmp buffer=20480000
EXP直接路径模式:
exp zhejiang/zhejiang file=/data1_regular.dmp buffer=20480000 direct =y
EXPDP数据泵:
expdp zhejiang/zhejiang dumpfile=zj_datapump.dp directory=d_test schemas=zhejiang
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/maqinqin/archive/2009/05/26/4218697.aspx
这篇关于exp,expdp命令实践的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!