http://www.cnblogs.com/zlja/archive/2010/10/08/2449379.html
创建导出路径 1.create directory dump_ehreos as '/u01/app/oracle/dump/ehreos';
查看导出路径 2.select * from dba_directories;
分配路径操作权限 3.grant read,write on directory dump_ehreos to ehreos;
建立真正的目录4.mkdir /u01/app/oracle/dump
建立真正的目录5.mkdir /u01/app/oracle/dump/ehreos
导出表格模式()6.expdp dprm/thisisCRM directory=dump_ehreos dumpfile=dumpehreos.dmp logfile=ehreos.log tables=ehreos.t_auth_function,dbwlhr.t_hr_webserviceinfo,ehreos.ac_menu; #导出ehreos.t_auth_function,dbwlhr.t_hr_webserviceinfo,ehreos.ac_menu表
7.impdp directory=DUMP_EHREOS0317 dumpfile=dumpehreosmenu.dmp logfile=imp150218.log schemas=ehreos tables=ac_menu #如果是内容想替换掉,加上这句:TABLE_EXISTS_ACTION=REPLACE。scp root@192.168.20.115:/opt/u01/app/oracle/dumpdir/20150318.dmp 将文件复制到本地当前位置。
scp root@192.168.20.115:/opt/u01/app/oracle/dumpdir/20150318.dmp /opt/u01/app/oracle 将文件复制到本地对应的目录
scp -r /opt/u01/app/oracle root@192.168.20.115:/opt/u01/app/oracle/dumpdir/20150318.dmp 将对应的目录复制到目标服务器去
导出案例1,按表导出
expdp scott/tiger directory=dump_scott dumpfile=tab.dmp logfile=scott.log tables=dept,emp
导出案例2,按用户导出
expdp scott/tiger directory=dump_scott dumpfile=dumpscott.dmp logfile=scott.log schemas=scott
导出案例3,全库导出,且并行导出
expdp scott/tiger directory=dump_scott dumpfile=full.dmp logfile=scott.log parallel=4 full=y
样例操作
一、源数据库操作
1、切换用户
[root@crmtest ~]# su � oracle
2、连接数据库
[oracle@crmtest ~]$ sqlplus / as sysdba
SQL> conn / as sysdba
3、创建导出路径
SQL> create directory DATA_PUMP_DIR as ' /u01/app/oracle/admin/crmdb/dpdump/'; //标黄的部分自己命名
5、导出数据(整个库)
(1)按照用户导出数据
[oracle@crmtest ~]$ expdp dpcrm/thisisCRM directory=DATA_PUMP_DIR dumpfile=dyg.dmp logfile=dyg.log schemas=dpcrm
(说明:dpcrm/thisisCRM 按照用户导出,用户的账号密码;
directory=DATA_PUMP_DIR ***的是上面查询出来路径的名字,不是路径的目录内容
dumpfile=dyg.dmp 导出后的文件名字,自己命名,但是文件名后缀必须是 .dmp
logfile=dyg.log 导出的日志的文件名字,自己命名,但是文件名后缀必须是 .log
schemas=dpcrm 导出的模式,这里是按照用户导出的,所有是 用户名)
备注:此命令导出数据花费时间比较长,需要等待。
6、将源库中导出的数据导入到目标数据库,一定要更改文件的所属主为oracle,所属组为:oinstall
7、导入数据库(整个库)
首先使用sql查询,查询目前数据库里面有哪些已经存在的目录
通过查询得知,一共有4个,选择其中一个,例如选择第三个“DATA_PUMP_DIR”,需要通过ftp文件传输,把源数据通过expdb命令生成的dmp包和log日志文件导入目标数据的 /u01/app/oracle/admin/crmdb/dpdump/ 路径下面
[oracle@crmtest ~]$ impdp dpcrm/ thisisCRM directory= DATA_PUMP_DIR dumpfile=dyg.dmp schemas=dpcrm logfile=dyg.log TABLE_EXISTS_ACTION=replace
(说明:
Directory为数据文件存放地址
Dumpfile导出的文件名称设置
Logfile 导出的文件日志记录
Schemas 实例名称,导出的时候写的啥,导入的时候就写啥
TABLE_EXISTS_ACTION 表存在后的操作,replace直接替换
)
2. 数据泵导出
数据泵导出的方法有多种,这里我们只介绍两种:
单个用户方案导出
Expdp [用户名]/[密码]@[主机字符窜] schemas=[用户名] directory=TEST dumpfile=X.dmp logfile=X.log
数据库全库导出
Expdp [用户名]/[密码]@[主机字符窜] full=y directory=TEST dumpfile=X.dmp logfile=X.log
实例: expdp dpcrmdb/dpcrmdb full=y directory=DUMP_DIR dumpfile=dyg.dmp logfile=dyg.log ignore=y
3. 数据泵导入
按以上导出方式:
单个用户方案导入
impdp [用户名]/[密码]@[主机字符窜] schemas=[用户名] directory=TEST dumpfile=X.dmp logfile=X.log ignore=y
数据库全库导入
impdp [用户名]/[密码]@[主机字符窜] full=y directory=TEST dumpfile=X.dmp logfile=X.log ignore=y
实例: impdp dpcrmdb/dpcrmdb full=y directory=DUMP_DIR dumpfile=dyg.dmp logfile=dyg.log ignore=y TABLE_EXISTS_ACTION=replace
注意:directory的位置
drop directory test 删除目录