头图

在Oracle数据库的操作过程中,会不可避免地出现操作失误或者用户失误,例如不小心删除了一个表或者提交了一个错误的事务等。这些失误和错误可能会造成重要数据的丢失,最终导致Oracle数据库停止。

在传统意义上,当发生数据丢失、数据错误问题时,解决的主要办法是数据的导入导出或者使用备份恢复技术。但是这些方法都需要在发生错误前,有一个正确的备份才能进行恢复。为了减少这方面的损失,Oracle提供了闪回技术。依靠闪回技术就可以实现数据的快速恢复,而且不需要数据备份。

通过使用Oracle数据库的闪回技术,可以访问过去某一时间的数据并从人为错误中进行恢复。闪回技术支持任何级别的恢复,包括行、事务、表和数据库范围。使用闪回的特性,可以查询以前的数据版本、可以执行更改分析和自助式修复,以便在保持数据库联机的同时从逻辑损坏中恢复。

视频讲解如下:
https://www.bilibili.com/video/BV1LCDWY8Eoy/?aid=113425053326...

Oracle数据库提供7种不同类型的闪回操作,它们分别是:

  1. 闪回查询(Flashback Query):闪回查询允许用户查询过去某个时间点的数据,以重新构建由于意外删除或更改而丢失的数据。
  2. 闪回版本查询(Flashback Version Query):闪回版本查询提供了一种查看行级数据库随时间变化的方法。
  3. 闪回表(Flashback Table):闪回表的功能可以使DBA可以非常快速、轻松地将一个表或一组表恢复至过去特定的某一时间点。
  4. 闪回数据库(Flashback Database):闪回数据库是进行时间点恢复的新策略。它能够快速将Oracle数据库恢复到以前的时间,正确更正由于逻辑数据损坏或用户错误而引起的任何问题。
  5. 闪回删除(Flashback Drop):闪回删除在删除对象时提供了一个安全网。因此可以非常快速、轻松地取消对一个表及其相关对象对象的删除。
  6. 闪回事务查询(Flashback Transaction Query):闪回事务查询提供了一种查看事务级数据库变化的方法,甚至可以撤销一个已经提交的事务。
  7. 闪回数据归档(Flashback Data Archive):闪回数据归档则为表的还原数据提供了一种新的备份方式。
# 提示:如果发生了数据库的物理错误,如:磁盘损坏和文件丢失等,
# 则需要借助于Oracle更高级的备份恢复工具去完成,例如,使用RMAN完成备份与恢复。

Oracle的闪回技术是以还原(undo)数据中的内容为基础的。要使用闪回,必须启用Oracle数据库还原数据的自动管理。还原数据的工作原理如下视频讲解:
https://www.bilibili.com/video/BV1nv6xYjEsj/?aid=113733720347...

通过执行下面的语句可以查看当前数据库的还原数据的管理方式。

SQL> show parameter undo

# 输出的信息如下:
NAME                TYPE        VALUE
------------------- -------- ------------
undo_management        string        AUTO
undo_retention        integer        900
undo_tablespace        string        UNDOTBS1

赵渝强老师
36 声望15 粉丝

20年以上的IT行业从业经历,清华大学计算机软件工程专业毕业,京东大学大数据学院院长,Oracle中国有限公司高级技术顾问;曾在BEA、甲骨文、摩托罗拉等世界500强公司担任高级软件架构师或咨询顾问等要职,精通大...