用Oracle闪回功能恢复偶然丢失的数据
摘 要:本文提出了闪回功能的原理,描述了利用Oracle 9i或Oracle 10g的闪回功能进行恢复偶然丢失数据的方法。
关键词:Oracle;闪回;回滚段;数据恢复
引言
人为的错误是数据库系统失败的重要原因之一,根据调查约40%的系统问题是操作失误或者用户错误引起的,这些人为的错误又特别难以避免。传统上当发生数据丢失、数据错误问题时,解决的主要方法就是数据的导入/导出、备份/恢复技术。这些方法都需要发生数据错误之前有一个正确的备份,才能进行恢复。恢复时不取决于错误程度,而只取决于备份/恢复策略。这种方法既耗时又使数据库系统不能提供服务,对于一些用户偶然地删除数据这类小错误来说显得有些"大材小用"。那么如何来恢复这种偶然的错误操作造成的数据丢失呢?从Oracle 9i开始提供了基于回滚段的闪回查询(Flashback Query)功能,可用于恢复错误的DML操作。在Oracle 10g中对闪回查询做了较大改进,不再局限于闪回查询,还可用于恢复错误的DDL(Drop)操作、闪回表、闪回数据库等。
Oracle 9i的闪回查询概述
1、Oracle 9i的闪回查询功能
在Oracle 9i之前,如果用户错误操作数据后,除了不完全恢复外,没有好的解决办法。Oracle 9i中提供闪回查询,由一个新的包DBMS_FLASH来实现。用户使用闪回查询可以及时取得误操作DML(Delete、Update、Insert)前某一时间点数据库的映像视图,用户可以利用系统时间或系统改变号(SCN:System Change Number)来指定这个只读视图,并可以针对错误进行相应的恢复措施。闪回查询功能完全依赖于自动回滚段管理(AUM),对于Drop等误操作不能恢复。闪回特性可应用在以下方面:
(1)自我维护过程中的修复:当一些重要的记录被意外删除,用户可以向后移动到一个时间点,查看丢失的行并把它们重新插入现在的表内恢复。
(2)恢复Email和声音Email:当用户意外删除了Email或者声音信息时,可以通过移回到固定时间点来恢复删除。
(3)账号平衡状况:可以查看以前的历史数据。如银行外币管理中用于记录特定时间的汇率。在以前,汇率变更被记录在一个历史表中,现在就可以通过闪回功能进行查询。
(4)用于趋势分析的决策支持系统:决策支持系统和联机分析应用必须执行一个长时间的事务。使用闪回查询,这些应用可以对历史数据执行分析和建模。例如,特定产品如矿泉水随季节变化需求情况的变化。
2、回滚段概述
回滚段用于存放数据修改之前的位置和值,回滚段的头部包含正在使用的该回滚段事
相关文档:
oracle表空间操作详解
1
2
3作者: 来源: 更新日期:2006-01-04
5
6
7建立表空间
8
9CREATE TABLESPACE data01
10DATAFILE '/ora ......
下载地址:
http://www.itsoba.com/Article.asp?id=847
视频介绍:
本套ORACLE视频教程为传智播客内部经典教学视频的一集,后续视频正在录制和整理中,敬请关注。
讲师介绍:
王治国,有多年软件开发经验和教学经验,先后在多家软件公司担任软件工程师、项目经理,精通J2SE、J2ME、J2EE、Linux、Oracle、SqlS ......
[精华] ORACLE的几种启动方式
http://www.chinaunix.net 作者:wuwenlong 发表于:2003-07-27 16:58:57
【发表评论】 【查看原文】 【Oracle讨论区】【关闭】
1、startup nomount
非安装启动,这种方式启动下可执行:重建控制文件、重建数据库
读取 ......
很不幸,建立的表被某人误删了,,,
还好可以通过这样恢复。
select * from user_recyclebin where original_name like 'FINANCE_%' order by droptime desc;
FLASHBACK TABLE FINANCE_CASE_FEE_ITEM TO BEFORE DROP
即所有drop的表都在 user_recyclebin 这个oracle回收站里面的,再通过flashback命 ......
Oracle 中的树查询和 connect by
使用 connect by 和 start with 来建立类似于树的报表并不难,只要遵循以下基本原则即可:
使用 connect by 时各子句的顺序应为:
select
from
where
start with
connect by
order by
prior 使报表的顺序为从根到叶(如果 prior 列是父辈)或从叶到根(如果 prior 列是后代)。
......