码迷,mamicode.com
首页 > 数据库 > 详细

Oracle数据库导入导出exp(expdp) imp(impdp)

时间:2015-03-17 18:16:01      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:oracle   create   数据库   tiger   write   


Oracle数据库的导入导出



首先,又尴尬了一次。


其实oracle导入和导出命令是有两种的

即:

exp(expdp) imp(impdp)


先给自己普及一下常识:


    在平常备库和数据库迁移的时候,当遇到大的数据库的时候在用exp的时候往往是需要好几个小时,耗费大量时间。oracle10g以后可以用expdp来导出数据库花费的时间要远小于exp花费的时间,而且文件也要小很多。


1.使用expdp要先在数据库中创建directory,并给相应的用户read,write权限.

SQL>create directory dmpdir as ‘/opt/mydbbackup‘;

SQL>grant read,write on directory to test;



2.常用导出方法

$expdp scott/tiger DUMPFILE=scott.dmp DIRECTORY=dmpdir SCHEMAS=test

$expdp scott/tiger DUMPFILE=tmp_dump.dmp DIRECTORY=dmpdir TABLES=(tmp_test:p1,tmp_test:p2) JOB_NAME=tmp_dump LOGFILE=tmp_dump.log

$expdp scott/tiger DUMPFILE=full.dmp DIRECTORY=dmpdir FULL=Y JOB_NAME=full

$expdp scott/timer DUMPFILE=tmp_200703.dmp DIRECTORY=dmpdir TABLES=tmp QUERY=\”where to_char\(create_time,\’yyyy-mm-dd\’\)\<\‘2007-04\‘\"

常用一些参数说明:

SCOTT/TIGER:用户/密码(*)

DUMPFILE:导出后的文件名(*)

DIRECTORY:导出文件存放位置(位于服务器端)(*)

CONTENT:导出文件中包含的内容(默认为:ALL,可选DATA_ONLY/METADATA_ONLY)

FILESIZE:指定导出文件大小(单位为bytes).

JOB_NAME:此次导出进程使用的名称,方便跟踪查询(可选)

LOGFILE:日志文件名(默认为:export.log)

INCLUDE:导出时包含指定的类型

(例:INCLUDE=TABLE_DATA,

INCLUDE=TABLE:"LIKE ‘TAB%‘"

INCLUDE=TABLE:”NOT LIKE ‘TAB%’”…)

EXCLUDE:导出时排除的数据类型(例:EXCLUDE=TABLE:EMP)

FULL:全库导出时使用(同EXP的FULL,默认为N)

SCHEMA:导出某一个SCHEMA下的所有数据

TABLES:按表导出(这里的方法和EXP一样)

TABLESPACE:指定一个表空间导出.

QUERY:按表导出时,使用条件语句限定导出范围(同exp中的QUERY)

TRANSPORT_FULL_CHECK:

TRANSPORT_TABLESPACES:

FLASHBACK_SCN:

FLASHBACK_TIME:

PARALLEL:并行操作

PARFILE:

NETWORK_LINK:

当 Data Pump Export (DPE) 运行时,按 Control-C;它将阻止消息在屏幕上显示,但不停止导出进程本身。相反,它将显示 DPE 提示符(如下所示)。进程现在被认为处于“交互式”模式:

Export>

这种方法允许在这个 DPE 作业上输入命令查询及控制当前作业。









数据导出:



1 将数据库TEST完全导出,用户名system 密码manager 导出到D:daochu.dmp中  exp system/manager@TEST file=d:daochu.dmp full=y


2 将数据库中system用户与sys用户的表导出    exp system/manager@TEST file=d:daochu.dmp owner=(system,sys)


3 将数据库中的表inner_notify、notify_staff_relat导出     exp aichannel/aichannel@TESTDB2 file= d:datanewsmgnt.dmp tables=(inner_notify,notify_staff_relat)


4 将数据库中的表table1中的字段filed1以"00"打头的数据导出exp system/manager@TEST file=d:daochu.dmp tables=(table1) query=" where filed1 like ‘00%‘"  上面是常用的导出,对于压缩,既用winzip把dmp文件可以很好的压缩。 也可以在上面命令后面 加上 compress=y 来实现。


数据的导入:


1 将D:daochu.dmp 中的数据导入 TEST数据库中。 imp system/manager@TEST file=d:daochu.dmp   imp aichannel/aichannel@HUST full=y file=d:datanewsmgnt.dmp ignore=y上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。 在后面加上 ignore=y 就可以了。





用什么方式导出的就用对应的方式导入,不然会出错误。









本文出自 “Isuncle的技术博客” 博客,请务必保留此出处http://baoer7758.blog.51cto.com/8187563/1621501

Oracle数据库导入导出exp(expdp) imp(impdp)

标签:oracle   create   数据库   tiger   write   

原文地址:http://baoer7758.blog.51cto.com/8187563/1621501

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!