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

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

完全恢复:指的是利用重做日志或增量备份将数据恢复到最近的当前时间点。回滚未提交事务。之所以叫完全恢复是由于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 手工不完全恢复总结(二)——不完全手工恢复的刻度类型总结】

猜你喜欢

转载自www.cnblogs.com/wdymyoraclelinux/p/10021757.html
今日推荐