完全恢复和不完全恢复都是对数据库进行恢复的操作。
完全恢复:指的是利用重做日志或增量备份将数据恢复到最近的当前时间点。回滚未提交事务。之所以叫完全恢复是由于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.表空间基于时间点的恢复
不完全恢复的操作步骤:
- 先通过logmnr找到误删除操作的时间点
- 对现在的Database做新全备
- 还原该时间点前所有datafile
- 在mount状态下,对Database做recover,恢复到过去时间点
- 将恢复出来的table做逻辑备份(exp)
- 再将全备还原
- 将导出的表导入Database(imp)
Logmnr工具:可对数据库日志文件中的数据解析,以供DBA使用。
不完全恢复的刻度类型:
- 基于时间点(until time) 使整个数据库恢复到过去的某一个时间点;
- 基于SCN(until scn) 使整个数据库恢复到过去的某一个SCN;
- 基于cancel(until cancel) 使整个数据库恢复到归档日志或当前日志的断点前
- 基于误删除表空间(使用备份的controlfile) 使整个数据库恢复到误删除表空间前。
下一期【Oracle 手工不完全恢复总结(二)——不完全手工恢复的刻度类型总结】
原文地址:https://www.cnblogs.com/wdymyoraclelinux/p/10021757.html
时间: 2024-11-15 20:59:40