异构环境oracle数据库迁移dmp文件之exp和imp以及expdp和impdp

exp/imp可在以下情况下使用

两个数据库之间传送数据

  1.同一个oracle数据库的版本之间

  2.不同oracle数据库的版本之间

  3.相同或不相同的操作系统之间的oracle数据库

用于数据库的备份与恢复

从一个数据库用户传送到另一个用户中

从一个表空间传送到另一个表空间中

创建一个表空间

create tablespace bank_tbs(数据库表空间) datafile '/oracle/test(数据路径) bank_data02.dbf(数据文件名)' size 5M autoextend on maxsize 10G;

创建用户时指定表空间

create user bankuser identified by bankpwd default tablespace bank_tbs;

使用export导出数据

exp bankuser/bankpwd file='/backup/bankuser.dmp' log='/backup/bankuserExp.log'             格式为exp 用户名/密码 file=导出路径及文件名称

使用import导入数据

imp bankuser/bankpwd file=/backup/bankuser.dmp  full=y               注意后面这个full=y,这是指全部导入,也可以指定某个表的表名

为了有明显效果,我们可以先用bankuser用户创建一个表,然后exp,接着进入sqlplus删掉这个表,最后imp就会发现数据库恢复了

如果是在windows环境的话,貌似还需要在用户名/密码后面加上@数据库名及ORACLE_SID

使用另一种方法expdp实现备份数据库

首先在sqlplus中执行,使用sysdba登录,因为涉及到grant权限

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

grant read,write on directory to dbauser;

退出sqlplus,进入oracle家目录

创建文件夹

mkdir expdp_dir

修改权限

chmod 777 expdp_dir

导出数据

expdp dbauser/123456 directory=expdp_dir(这里不再需要使用绝对路径) dumpfile=backuptest.dmp logfile=backuptestlog.log

导入数据

impdp dbauser/123456 directory=expdp_dir(这里不再需要使用绝对路径) dumpfile=backuptest.dmp logfile=backuptestlog.log

也可以把参数写入到配置文件中

[oracle@localhost ~]$ cat impdp.par
userid='/ as sysdba'
fromuser=czwdm
touser=czwdm
file=/home/oracle/FACTINFO.dmp
log=impdp.log
tables=FACTINFO
[oracle@localhost ~]$

  

然后直接执行

impdp parfile=impdp.par(执行之后,报ora-39143错误,所以改用下面的命令)
或者

imp parfile=impdp.par

  

上一篇:Oracle批量执行脚本文件


下一篇:Oracle误删表空间文件后数据库无法启动