oracle备份恢复的具体方法

  • A+
所属分类:oracle


1.1      数据库数据全库备份
注:此操作需要启动数据库。


切换至oracle用户,在OS侧创建备份使用目录:


mkdir /oracle/backup


登录oracle数据库,在数据库中创建备份使用目录


sqlplus / as sysdba


create directory backupdir as '/oracle/backup';


退出sqlplus后,用oracle用户执行全库备份,备份文件生成在/oracle/backup下:


expdp system/System123 DIRECTORY=backupdir DUMPFILE=backup201309XX.dmp  logfile=backup.log full=y


1.2      数据库数据恢复


注:此操作需要启动数据库。


1、  用orale用户登陆数据库服务器


2、  删除要恢复的用户.


sqlplus / as sysdba


drop user USER_NAME cascade;


exit


3、  执行恢复命令


如下语句恢复pgm用户的数据到backup201309XX.dmp状态


impdp system/System123 DIRECTORY=backupdir DUMPFILE=backup201309XX.dmp schemas=pgm TABLE_EXISTS_ACTION=TRUNCATE logfile=restore.log


数据库恢复时注意事项:


exp/imp方式备份恢复数据库无法对数据库定义(也就是表结构之类的)进行删除和修改。


所以,如果在恢复时,数据库表结构发生变化了,则需要将表结构恢复,或将表删除,再执行恢复操作。如果搞不清楚哪些表结构发生了变化,可以先将需要恢复的数据库用户删除,然后再执行恢复操作。


另外,经过证实,删除表后,再恢复该表,存在一个问题:删表的时候,其他表创建的引用这个表的外键删掉。


恢复的时候,无法恢复该外键。这种情况需要恢复后手动创建外键约束。


drop table TABLE_NAME cascade constraints;


impdp system/System123 DIRECTORY=backupdir DUMPFILE=backup201309XX.dmp tables=sdu.E_UC_ENTANN TABLE_EXISTS_ACTION=TRUNCATE logfile=restore_sdu.log


  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: