0

0

Oracle 11G闪回数据归档新功能详述

php中文网

php中文网

发布时间:2016-06-07 16:53:33

|

1207人浏览过

|

来源于php中文网

原创

Oracle数据库10g提供了五个新的闪回功能:闪回版本查询,闪回事务查询,闪回删除,闪回表和闪回数据库。Oracle数据库11gR1提供了

简介

Oracle数据库10g提供了五个新的闪回功能:闪回版本查询,闪回事务查询,闪回删除,闪回表和闪回数据库。Oracle数据库11gR1提供了一个有趣的新的闪回功能:闪回数据存档,它允许一个Oracle数据库管理员维护一个记录,对指定时间范围内对所有表的的改变情况进行记录。

许多年前-事实上,在上个世纪-我是一名美国大西部饮料生产厂家人力资源系统的承包商。有一天,人力资源总监问我:“如何为我们的雇员数据配置一个delta表,使我们能够跟踪所有对雇员数据的更改情况?”出现在我脑袋中的答案就像最近的美国总统大选期间CNN用来显示和分析投票结果的“神奇地图”一样:

我想创建一个名为EMPLOYEES_HISTORY的表,,除了增加了一个相应的时间戳记的日期和时间的变化外,它与Employees表的列完全一样。

我希望把这个新表放在一个单独的表空间。

我想套用外键参照完整性约束EMPLOYEES_HISTORY表,以确保两个表之间的数据一致。

最后,我想创建一个AFTER …… FOR EACH ROW触发器,无论何时在Employees表上发生INSERT,UPDATE或DELETE事务时,都将在EMPLOYEES_HISTORY表中插入delta记录。

然后一些潜在的问题开始萦绕着我,这样做了会发生什么,我不停地问我自己,如果某人:

禁用了EMPLOYEES_HISTORY表上的触发器,并且忘记重新开启了,会发生什么事情?

需要向EMPLOYEES表中增加新列,或修改数据类型,但忘记同步修改EMPLOYEES_HISTORY表上对应的列了,会发生什么?

AItools.fyi
AItools.fyi

找到让生活变得更轻松的最佳AI工具!

下载

虽然同时对EMPLOYEES和EMPLOYEES_HISTORY表做了一致的修改,但忘记修改触发器了,会发生什么?

如果需要删除EMPLOYEES表的列或将其标记为UNUSED时,会发生什么?

意外TRUNCATE掉EMPLOYEES_HISTORY表时会发生什么?

意外删除了EMPLOYEES_HISTORY表时会发生什么?甚至更糟糕的是删除了EMPLOYEES表时会发生什么?

这些问题的简单答案是,如果真发生了这些事情,我不得不向客户解释为什么弄丢了EMPLOYEES_HISTORY表中的delta数据。

用闪回数据归档实现Oracle“完全撤销”

如果我拥有Oracle 11g,我会直接告诉客户我花几分钟就能恢复数据,Oracle 11gR1新的闪回数据归档(FBDA)功能创建一个独立的仓库保留表中数据改变的历史记录。

FBDA信息存储在一套独立的对象中,跟踪目标表的事务历史,这些对象存储在一个或多个表空间中,FBDA表的名称是由系统自动产生的,可以通过视图DBA_FLASHBACK_ARCHIVE_TABLES查看,一旦在表上开启了FBDA,所有保留的事务历史都可以查看,这样就不用再为关键事务表创建对应的历史跟踪表了,那样做很麻烦,因为创建历史跟踪表后,还有编写复杂的触发器,确保历史数据被精确跟踪。

历史信息的捕捉也是非常高效的,因为Oracle 11g专门修改了内核,使保留历史数据的性能开销减到最小,此外,这些历史数据以压缩格式存储,减少了存储的需要,另外,只要在表上开启了FBDA,Oracle 11g就不会再对历史数据做使其无效的操作(如删除或清空目标表)或阻止捕捉(如删除目标表的列)。

linux

相关专题

更多
c++ 根号
c++ 根号

本专题整合了c++根号相关教程,阅读专题下面的文章了解更多详细内容。

22

2026.01.23

c++空格相关教程合集
c++空格相关教程合集

本专题整合了c++空格相关教程,阅读专题下面的文章了解更多详细内容。

24

2026.01.23

yy漫画官方登录入口地址合集
yy漫画官方登录入口地址合集

本专题整合了yy漫画入口相关合集,阅读专题下面的文章了解更多详细内容。

99

2026.01.23

漫蛙最新入口地址汇总2026
漫蛙最新入口地址汇总2026

本专题整合了漫蛙最新入口地址大全,阅读专题下面的文章了解更多详细内容。

132

2026.01.23

C++ 高级模板编程与元编程
C++ 高级模板编程与元编程

本专题深入讲解 C++ 中的高级模板编程与元编程技术,涵盖模板特化、SFINAE、模板递归、类型萃取、编译时常量与计算、C++17 的折叠表达式与变长模板参数等。通过多个实际示例,帮助开发者掌握 如何利用 C++ 模板机制编写高效、可扩展的通用代码,并提升代码的灵活性与性能。

15

2026.01.23

php远程文件教程合集
php远程文件教程合集

本专题整合了php远程文件相关教程,阅读专题下面的文章了解更多详细内容。

65

2026.01.22

PHP后端开发相关内容汇总
PHP后端开发相关内容汇总

本专题整合了PHP后端开发相关内容,阅读专题下面的文章了解更多详细内容。

61

2026.01.22

php会话教程合集
php会话教程合集

本专题整合了php会话教程相关合集,阅读专题下面的文章了解更多详细内容。

63

2026.01.22

宝塔PHP8.4相关教程汇总
宝塔PHP8.4相关教程汇总

本专题整合了宝塔PHP8.4相关教程,阅读专题下面的文章了解更多详细内容。

33

2026.01.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
SQL 教程
SQL 教程

共61课时 | 3.6万人学习

Java 教程
Java 教程

共578课时 | 50.5万人学习

oracle知识库
oracle知识库

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号