OracleDatabase10g:闪回版本查询

OracleDatabase10g:闪回版本查询,第1张

不需要设置 立即识别对行的所有更改

在 Oracle i Database 中 我们看到它推出了以闪回查询形式表示的 时间机器 该特性允许 DBA 看到特定时间的列值 只要在还原段中提供该数据块此前镜像的拷贝即可 但是 闪回查询只提供某时刻数据的固定快照 而不是在两个时间点之间被更改数据的运行状态表示 某些应用程序 如涉及到外币管理的应用程序 可能需要了解一段时期内数值数据的变化 而不仅仅是两个时间点的数值 由于闪回版本查询特性 Oracle Database g 能够更方便高效地执行该任务

查询对表的更改

在本示例中 我使用了一个银行外币管理应用程序 其数据库含有一个名称为 RATES 的表 用于记录特定时间的汇率

SQL>desc rates    Name              Null?Type        CURRENCY                   VARCHAR ( )    RATE                       NUMBER( )

该表显示 US$ 与各种其他货币的汇率 在 CURRENCY 列中显示 在金融服务行业中 汇率不但在变更时进行更新 而且被记录在历史中 需要这种方式的原因是银行交易可能在 过去时间 生效 以便适应由于汇款而耗费的时间 例如 对于一项在上午 : 发生但在上午 : 生效的交易 其有效汇率是上午 : 的汇率 而不是现在的汇率

直到现在 唯一的选择是创建一个汇率历史表来存储汇率的变更 然后查询该表是否提供历史记录 另一种选择是在 RATES 表本身中记录特定汇率适用性的开始和结束时间 当发生变更时 现有行中的 END_TIME 列被更新为 SYSDATE 并插入一个具有新汇率的新行 其 END_TIME 为 NULL

但是在 Oracle Database g 中 闪回版本查询特性不需要维护历史表或存储开始和结束时间 使用该特性 您不必进行额外的设置 即可获得某行在过去特定时间的值

例如 假定该 DBA 在正常业务过程中数次更新汇率 ― 甚至删除了某行并重新插入该行

insert into rates values ( EURO )    mit    update rates set rate =     mit    update rates set rate =     mit    delete rates    mit    insert into rates values ( EURO )    mit    update rates set rate =     mit

在进行了这一系列 *** 作后 DBA 将通过以下命令获得 RATE 列的当前提交值

SQL>select * from rates

CURR       RATE        EURO    

此输出显示 RATE 的当前值 没有显示从第一次创建该行以来发生的所有变更 这时使用闪回查询 您可以找出给定时间点的值 但我们对构建变更的审计线索更感兴趣 ― 有些类似于通过便携式摄像机来记录变更 而不只是在特定点拍摄一系列快照

以下查询显示了对表所做的更改

select versions_starttime versions_endtime versions_xid     versions_operation rate    from rates versions beeen timestamp minvalue and maxvalue    order by VERSIONS_STARTTIME    /

VERSIONS_STARTTIME     VERSIONS_ENDTIME       VERSIONS_XID     V       RATE        DEC PM  DEC PM  C I         DEC PM  DEC PM  A A U         DEC PM  DEC PM  A B U         DEC PM                         A C D         DEC PM  DEC PM  A D I         DEC PM                         A E U    

注意 此处显示了对该行所作的所有更改 甚至包括该行被删除和重新插入的情况 VERSION_OPERATION 列显示对该行执行了什么 *** 作 (Insert/Update/Delete) 所做的这些工作不需要历史表或额外的列

在上述查询中 列 versions_starttime versions_endtime versions_xid versions_operation 是伪列 与 ROWNUM LEVEL 等其他熟悉的伪列相类似 其他伪列 ― 如 VERSIONS_STARTSCN 和 VERSIONS_ENDSCN ― 显示了该时刻的系统更改号 列 versions_xid 显示了更改该行的事务标识符 有关该事务的更多详细信息可在视图 FLASHBACK_TRANSACTION_QUERY 中找到 其中列 XID 显示事务 id 例如 使用上述的 VERSIONS_XID 值 A D UNDO_SQL 值显示了实际的语句

SELECT UNDO_SQL    FROM FLASHBACK_TRANSACTION_QUERY    WHERE XID = A D

UNDO_SQL        insert into ANANDA RATES ( CURRENCY RATE ) values ( EURO )

除了实际语句之外 该视图还显示提交 *** 作的时间标记和 SCN 查询开始时的 SCN 和时间标记以及其他信息

找出一段时期中的变更

现在 让我们来看如何有效地使用这些信息 假设我们需要找出下午 : : 时 RATE 列的值 我们可以执行

select rate versions_starttime versions_endtime    from rates versions    beeen timestamp    to_date( / / : : mm/dd/yyyy hh :mi:ss )    and to_date( / / : : mm/dd/yyyy hh :mi:ss )    /

RATE VERSIONS_STARTTIME     VERSIONS_ENDTIME           

此查询与闪回查询类似 在以上的示例中 开始和结束时间为空 表示汇率在该时间段中没有更改 而是包含一个时间段 还可以使用 SCN 来找出过去的版本值 可以从伪列 VERSIONS_STARTSCN 和 VERSIONS_ENDSCN 中获得 SCN 号 以下是一个示例

select rate versions_starttime versions_endtime    from rates versions    beeen scn and     /

使用关键词 MINVALUE 和 MAXVALUE 可以显示还原段中提供的所有变更 您甚至可以提供一个特定的日期或 SCN 值作为范围的一个端点 而另一个端点是文字 MAXVALUE 或 MINVALUE 例如 以下查询提供那些只从下午 : : 开始的变更 而不是全部范围的变更

select versions_starttime versions_endtime versions_xid     versions_operation rate    from rates versions beeen timestamp    to_date( / / : : mm/dd/yyyy hh :mi:ss )    and maxvalue    order by VERSIONS_STARTTIME    /

VERSIONS_STARTTIME     VERSIONS_ENDTIME       VERSIONS_XID     V       RATE        DEC PM                         A C D         DEC PM  DEC PM  A D I         DEC PM                         A E U    

最终的分析

闪回版本查询随取随用地复制表变更的短期易变数值审计 这一优点使得 DBA 能够获得过去时间段中的所有变更而不是特定值 只要还原段中提供数据 就可以尽情使用 因此 最大的可用版本依赖于 UNDO_RETENTION 参数

lishixinzhi/Article/program/Oracle/201311/17217

问题一:闪回是什么意思啊? 闪回就是指,在时间为当下的人物在思想活动时回忆起时间为过去的功件.

比如说,我们看到人物在回忆的时候,回忆的片段被处理成灰色的那一段关于过去的影象,这种手法就叫闪回.

问题二:电影里的“闪回”是什么意思 一个白领从家到公司坐公交上班,在车上她偶然看见一个中年男子的右手小拇指在不断d动。(这时镜头切入前天晚上被抢劫的画面,并且给抢劫犯的特写是 d动的小拇指 插入时间也就3、5秒)这时候,白领突础变得心慌。

问题三:电影术语:闪回是什么意思 就是电影镜头反映的是以前发生的事情,相当于回忆的内容。

问题四:新闻运用时间闪回的文学手法,时间闪回是什么意思? 通常指在一定的场景结构中插人另一场景或片断。闪回可以是电影的一种片断叙述闪...从内容上看,闪回的内容一般为闪回前面镜头中某个人物的思维或回忆。它可以是情绪性的,也可以是叙事性的;可以是较长篇幅的,也可以是瞬间意识表现,目的是使观众更清晰

...

问题五:什么是闪回技术啊?主要内容有哪些啊? 为了使oracle数据库从任何逻辑误 *** 作中迅速恢复,Oracle 数据库10g 提供了一系列人为错误更正技术,称为闪回。闪回从根本上改变了数据恢复。过去,数据库在几分钟内就可能损坏,但需要几小时才能恢复。利用闪回技术,更正错误的时间与错误发生时间几乎相同。而且它非常易用,使用一条短命令便可恢复整个数据库,而不必执行复杂的程序。闪回技术提供了一个 SQL 界面,能够快速分析和修复人为错误。闪回技术为本地数据损坏提供了细粒度外部分析和修复,如当错误删除客户订单时。闪回技术还支持修复更多广泛的损坏,同时快速避免长时间停机,如当本月的所有客户订单都被删除时。闪回技术是 Oracle 数据库独有的特性,支持各级恢复,包括行、事务、表、表空间和数据库范围。

1 闪回查询

在Oracle 9i之前,如果用户错误 *** 作数据后,除了不完全恢复外,没有好的解决办法。Oracle 9i中提供闪回查询,由一个新的包DBMS_FLASH来实现。用户使用闪回查询可以及时取得误 *** 作DML(Delete、Update、Insert)前某一时间点数据库的映像视图,用户可以利用系统时间或系统改变号(SCN:System Change Number)来指定这个只读视图,并可以针对错误进行相应的恢复措施。闪回查询功能完全依赖于自动回滚段管理(AUM),对于Drop等误 *** 作不能恢复。闪回特性可应用在以下方面:

(1)自我维护过程中的修复:当一些重要的记录被意外删除,用户可以向后移动到一个时间点,查看丢失的行并把它们重新插入现在的表内恢复。

(2)恢复Email和声音Email:当用户意外删除了Email或者声音信息时,可以通过移回到固定时间点来恢复删除。

(3)账号平衡状况:可以查看以前的历史数据。如银行外币管理中用于记录特定时间的汇率。在以前,汇率变更被记录在一个历史表中,现在就可以通过闪回功能进行查询。

(4)用于趋势分析的决策支持系统:决策支持系统和联机分析应用必须执行一个长时间的事务。使用闪回查询,这些应用可以对历史数据执行分析和建模。例如,特定产品如矿泉水随季节变化需求情况的变化。

2 闪回版本查询

闪回版本查询提供了一种查看行级数据库变化的方法。它是 SQL 的扩展,支持以特定时间间隔检索所有不同版本的行。例如:

Select * from EMPLOYEE versions between ‘2:00 PM’ and ‘3:00 PM’ where …

该语句显示出今天下午 2 点至 3 点之间该行的各版本,每个版本都由不同的事务所更改。使用 DBA 可指出数据何时、如何被更改的,并追溯到用户、应用程序或事务。这使得 DBA 可以跟踪数据库中的逻辑破坏并加以更正。它还让应用开发人员能够对其代码进行调试。

3 闪回事务查询

闪回事务查询提供了一种查看事务级数据库变化的方法。它是 SQL 的扩展,能够看到事务带来的所有变化。例如:

Select * from DBA_TRANSACTION_QUERY where xid = ‘000200030000002D’

该语句显示出该事务引起的结果性变化。此外,返回补充 SQL 语句,并用于撤消由事务引起的各行变化。使用精密工具(如 DBA),应用开发人员可以精确地诊断和更正数据库或应用中的逻辑问题。

4 闪回数据库

要将 Oracle 数据库恢复到以前的时间点,传统方法是进行时间点恢复。然而,时间点恢复需要用数小时甚至几天的时间,因为它需要从备份......>>

问题六:僵尸国度第三季闪回版是什么意思 贴吧可以查看哦

tieba.baidu/p/4822818441

百度经验也有

jingyan.baidu/...6

喜欢就采纳吧。

问题七:僵尸国度闪回剧场版什么意思? 。

问题八:剧本中 闪回 意思? 闪回是电影术语,就是电影镜头反映的是以前发生的事情,相当于回忆的内容。

问题九:闪回是什么意思啊? 闪回就是指,在时间为当下的人物在思想活动时回忆起时间为过去的功件.

比如说,我们看到人物在回忆的时候,回忆的片段被处理成灰色的那一段关于过去的影象,这种手法就叫闪回.

问题十:电影里的“闪回”是什么意思 一个白领从家到公司坐公交上班,在车上她偶然看见一个中年男子的右手小拇指在不断d动。(这时镜头切入前天晚上被抢劫的画面,并且给抢劫犯的特写是 d动的小拇指 插入时间也就3、5秒)这时候,白领突础变得心慌。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/6423598.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-21
下一篇 2023-03-21

发表评论

登录后才能评论

评论列表(0条)

保存