Oracle EXP和IMP

2014-11-24 17:27:34 · 作者: · 浏览: 0

Exp/Imp是普遍使用的逻辑备份方式



使用Exp/Imp工具的场景


1、 两个数据库之间传送数据,可以不同数据库版本,不同操作系统


2、 数据库的备份和恢复


3、 从一个数据库用户传到另一个数据库用户


4、 从一个表空间传到领一个表空间



在sqlplus中设置显示数据的长度大小


colcol_name for a50;



查看数据文件名和对应的表空间


col file_name for a50;


col tablespace_name for a15;


select file_name,tablespace_name from dba_data_files;



创建一个表空间


create tablespace bank_tbs


datafile 'C:\APP\DRAGON\ORADATA\ZLPXB\BANK_DATA02.DBF'


size 5M autoextend maxsize10G;



创建用户使用该表空间


default tablespace bank_tbs;


grant connect,resource to bankuser;



使用bankuser登陆数据库并创建表


createtable dept


(


deptno number(2) constraint pk_dept PrimaryKey,


dname varchar2(14),


loc varchar2(13)


);


insert into dept values(10,'accounting','new york');


commit;



查看用户使用的表空间


select tablespace_name from user_tables;



测试exp、imp


exp bankuser/oracle@zlpxb file=D:\bankuser.dmp log=D:\bankuserExp.log


drop table dept;


select * from dept;


imp bankuser/oracle@zlpxb fromuser=bankuser touser=bankuser file=D:\bankuser.dmp log=D:\bankuserImp.log


select * from dept;




实际工作中用的最多的导出命令


exp userid=sys/sys@orcl BUFFER=8192 FILE=x:\*.dmp LOG=x:\*.log full=y grants=y



实际工作中用的最多的导入命令


imp userid=sys/sys@orcl BUFFER=81920 FILE=x:\*.dmp LOG=x:\*.log full=y grants=y ignore=y





使用expdp、impdp迁移数据


expdp、impdp可以看做是exp、imp的升级版,两者主要区别如下:


1、 emp和imp是客户端工具程序,但他们可以在客户端和服务端都可以使用。


2、 expdp和impdp是服务端的工具程序,只能在服务端使用,迁移速度比较快。



测试expdp、impdp


create directory dir_dpas'D:\';


grant read,write on directory dir_dp to bankuser;


expdp bankuser/oracle@zlpxbdirectory=dir_dp dumpfile=bankuserdp.dmp logfile=bankuserdp.log


drop table dept;


select * from dept;


impdp bankuser/oracle@zlpxbdirectory=dir_dp dumpfile=bankuserdp.dmp logfile=bankuserimpdp.log


select *from dept;




在Linux下使用expdp、impdp


create or replace directory expdp_dir as '/home/oracle/expdp_dir';


mkdir expdp_dir


chmod 777 expdp_dir


expdp bankuser/oracle@zlpxb directory=expdp_dir dumpfile=Linux.dmp logfile=Linuxdmp.log






数据泵导出的方法有多种,这里我们只介绍两种:


单个用户方案导出


Expdp [用户名]/[密码]@[主机字符窜] schemas=[用户名] dumpfile=X.dmp logfile=X.log directory=expdp_dir


数据库全库导出


Expdp [用户名]/[密码]@[主机字符窜] full=y dumpfile=X.dmp logfile=X.log directory=expdp_dir


数据泵导入


按以上导出方式:


单个用户方案导入


impdp [用户名]/[密码]@[主机字符窜] schemas=[用户名] dumpfile=X.dmp logfile=X.log directory=expdp_dir ignore=y


数据库全库导入


impdp [用户名]/[密码]@[主机字符窜] full=y dumpfile=X.dmp logfile=X.log directory=expdp_dir ignore=y