Oracle EXP和IMP
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;
创建用户使用该表空间
createuser bankuser identified by Oracle
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