Oracle的闪回数据归档(Flashback Data Archive)的本质就是给表创建一个快照,便于用于保护重要表中的数据。
![]() |
---|
点击这里查看视频讲解:【赵渝强老师】Oracle的闪回数据归档 |
一、 闪回数据归档简介
闪回数据归档可以将表中的还原数据进行归档,从而提供全面的历史数据查询。因此这便引入一个新的概念:Oracle Total Recall,即Oracle全面回忆。闪回数据归档与归档日志是两个不同的概念。闪回数据归档是将还原数据的历史记录进行归档,可以用于对数据进行闪回和追溯查询;而归档日志是将重做日志的历史记录进行归档,可以用于保证恢复的连续性。
二、 【实战】启用闪回数据归档
在了解到了什么是Oracle数据库的闪回数据归档后,下面将通过一个具体是示例来演示如何使用闪回数据归档生成表的归档数据。
(1)使用数据库管理员登录数据,并创建新的表空间用于保存还原数据归档。
(2)在新创建的表空间上创建数据归档。
(3)将新创建的数据归档设置系统默认的数据归档。
(4)授予c##scott用户访问数据归档的权限。
(5)切换到c##scott用户,并确定表c##scott.emp中的记录数。
(6)开启表c##scott.emp的数据归档。
(7)记录当前的时间和SCN号。
(8)执行一个误操作,不小心清空了表c##scott.emp中的数据。
(9)查看生成的数据归档。
(10)查看表SYS_FBA_HIST_76659的结构。
(11)查看表SYS_FBA_HIST_76659中的数据如下图所示。
(12)在员工表上执行一个简单的闪回查询。
(13)为确定数据来至数据归档,可以将第(12)步的SQL执行计划输出。执行下面的语句:
从上图可以看出,当查询员工表的数据时,对数据归档SYS_FBA_HIST_76659执行了全表扫描(TABLE ACCESS FULL)。