1.oracle的备份和恢复之expdp和impdp命令01

1.前言

  oracle常用的备份工具是导出工具expdp和导入命令impdp命令

2.使用

  2.1.创建备份目录  

create or replace directory  exp as '/home/oracle/backup/exp';##创建文件

  2.2.给某个用户赋予对这个备份目录权限

grant read,write on directory exp to system;       ##比如说给这个system用户赋予对这个目录读写权限
grant 'EXP_FULL_DATABASE' to system;          ##给system用户赋予数据导出权限

  2.3数据导出

##导出全库
expdp system/system#123 directory=exp dumpfile=实例名_expdp%U.dmp logfile=实例名_expdp.log schemas=用户1,用户2,... exclude=statistics parallel=4
##导出system用户下的t表
expdp system/system#123 directory=exp tables=system.t dumpfile=表名_expdp%U.dmp logfile=表名_expdp.log exclude=statistics parallerl=4

导入完成后若有报错:可以执行grep ORA-实例名_expdp.log 快速地查找错误

  2.4数据的导入

1.create or replace directory  imp as '/home/oracle/backup/imp';##创建文件
2.grant read,write on directory imp to system;
3.grant 'imp_ful_database' to system ##赋予导入权限
##全库导入
impdp system/system#123 directory=imp dumpfile=实例名_expdp%U.dmp logfile=实例名_impdp.log full=y parallel=2

  补充,以上是在一台oracle服务器上就行备份和恢复的,其实在生产中我们用的比较多的是两台oracle服务器上进行数据的迁移和恢复

3.情景

 如果有oracle两台服务器,其中一台是旧的,一台是新的,这里要求:需要将就的数据库中的数据迁移到新的数据库中

 说明:这里的关于一些准备工作暂时就不说了,比如说有关于旧库中的基线、还有旧库中的待迁移的对象(这个是重点)等等

 这里只说说关于数据的导入和导出:

 源库上操作:  

##创建存放dump文件的目录,并授予导出和导入用户读写权限,目录需要有足够空间存放dump,也可以使用默认的data_pump_dir.
create directory <exp_tab_dir> as '/oradata/ext_tab';   
grant read,write on directory <exp_tab_dir> to <exp_user>; 
#授予导出用户EXP_FULL_DATABASE权限
grant 'EXP_FULL_DATABASE' to <exp_user>; 

 源库上进行数据导出(全库)

expdp <exp_user>/password directory=data_pump_data   dumpfile=实例名_expdp%U.dmp logfile=实例名_expdp.log schemas=<schema_name1>,<schema_name2>   exclude=statistics parallel=4

该命令会将源库中的数据导出到data_pump_data这个目录下,该data_pump_data只是一个虚拟名,对应的真实路径是在create directory时 as后面的内容此时它实际上的目录,

目标库中操作

create directory <imp_tab_dir> as '/oradata/imp_tab';
grant read,write on directory <imp_tab_dir> to <imp_user>; 
#授予导入用户EXP_FULL_DATABASE权限
grant 'imp_FULL_DATABASE' to <imp_user>; 

当上述源库的数据被导出后,然后再把导出的数据库给放在目标库中对应的目录下面,在这里就是我在上面创建的as后面的路径/oradata/imp_tab

目标库进行数据的导入(全库)

impdp <exp_user>/password directory=<imp_tab_dir>    dumpfile=实例名_expdp%U.dmp logfile=实例名_impdp.log   full=y parallel=4

注意:

  • 在创建导出和导入目录都用data_pump_dir,这里也可以用别的名字替代,然后导出的实际路径用/oradata/exp_tab, 导入的实际路径用/oradata/imp_tab
  • 以上两个实际的路径需要我们用oracle用户用户下手工进行创建出来
  • 导出和导入的dumpfile后面的内容一定要相同,而logfile后面的内容可以不相同,但最好一个实例名_expdp.log 另一个是实例名_impdp.log.  

  

 

 

  

  

  

原文地址:https://www.cnblogs.com/zmc60/p/15356853.html