码迷,mamicode.com
首页 > 数据库 > 详细

Oracle 手工不完全恢复总结(一)

时间:2018-11-26 20:32:41      阅读:448      评论:0      收藏:0      [点我收藏+]

标签:状态   ase   重做日志   通过   2.4   1.2   删除表   删除   table   

完全恢复和不完全恢复都是对数据库进行恢复的操作。

 

完全恢复:指的是利用重做日志或增量备份将数据恢复到最近的当前时间点。回滚未提交事务。之所以叫完全恢复是由于Oracle应用了归档日志和联机重做日志中的所有的修改。

 

不完全恢复:利用备份产生一个非当前版本的数据库。恢复过程中不会应用备份产生后生成的所有重做日志。

 

不完全恢复应用的场景:

  • 介质失败、损坏了一个、几个或全部的联机重做文件;
  • 用户操作造成的数据丢失,比如用户误删除一张表;
  • 由于个别归档日志文件的丢失;
  • 丢失了当前的控制文件,必须使用备份的控制文件打开数据库。

为了执行不完整介质恢复,必须使用恢复时间点以前的备份来还原数据文件,并在恢复完成后使用RESETLOG选项打开数据库。

 

Resetlog参数:

在不完全恢复中,通畅需要使用resetlog命令打开数据库,这是因为我们要从已经建立的现有的重做日志流中脱离出来,resetlog参数教室一个数据库逻辑生存期的结束,另一个数据库逻辑的开始。数据库的逻辑生存期也被成为一个对应物(incarnation)。每次使用resetlog命令时,SCN计数器不会重置,但是Oracle会重置其他计数器,同事还会重置联机重做日志的内容

 

不完全恢复的可实现目标:

  • 1.1重做日志文件丢失或损坏
  • 1.2重做日志文件,数据文件同时丢失或损坏
  • 2.1控制文件丢失或损坏
  • 2.2控制文件、数据文件丢失或损坏
  • 2.3控制文件,重做日志文件,数据文件丢失或损坏
  • 2.4控制文件,重做日志文件损坏或丢失
  • 2.5控制文件,重做日志文件,参数文件,数据文件丢失或损坏
  • 3.1把数据库恢复到某一SCN
  • 3.2把数据库恢复到某一时间点
  • 4.表空间基于时间点的恢复

 

不完全恢复的操作步骤:

  1.  先通过logmnr找到误删除操作的时间点
  2. 对现在的Database做新全备
  3. 还原该时间点前所有datafile
  4. 在mount状态下,对Database做recover,恢复到过去时间点
  5. 将恢复出来的table做逻辑备份(exp)
  6. 再将全备还原
  7. 将导出的表导入Database(imp)

Logmnr工具:可对数据库日志文件中的数据解析,以供DBA使用。

 

不完全恢复的刻度类型:

  1. 基于时间点(until time)  使整个数据库恢复到过去的某一个时间点;
  2. 基于SCN(until scn)  使整个数据库恢复到过去的某一个SCN;
  3. 基于cancel(until cancel)  使整个数据库恢复到归档日志或当前日志的断点前
  4. 基于误删除表空间(使用备份的controlfile)  使整个数据库恢复到误删除表空间前。

 

下一期【Oracle 手工不完全恢复总结(二)——不完全手工恢复的刻度类型总结】

Oracle 手工不完全恢复总结(一)

标签:状态   ase   重做日志   通过   2.4   1.2   删除表   删除   table   

原文地址:https://www.cnblogs.com/wdymyoraclelinux/p/10021757.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!