WEB开发网
开发学院数据库Oracle Oracle数据库11g新特性:事务管理 阅读

Oracle数据库11g新特性:事务管理

 2008-12-16 13:03:10 来源:WEB开发网   
核心提示: 由于 11g 之前的闪回操作依赖于还原数据,而还原数据的可用时间短暂,Oracle数据库11g新特性:事务管理(6),您无法真正长期使用这些数据或者将其用于审计之类较永久的记录,作为变通手段,如果您选择了该行,则这一列将始终显示 2000.要查找早先某一时间点时的值,我们通过编写触发器来长

由于 11g 之前的闪回操作依赖于还原数据,而还原数据的可用时间短暂,您无法真正长期使用这些数据或者将其用于审计之类较永久的记录。作为变通手段,我们通过编写触发器来长期记录数据库的更改。

不过,不要感到失望。在 Oracle 数据库 11g 中,闪回数据存档结合了两者的优势:它既提供闪回查询的简易性与功能性,又不像还原数据一样依赖临时存储。它在更加永久的位置(即闪回恢复区)记录更改。

我们来看一个示例。(注:您需要激活自动撤消管理,这样闪回数据存档才能发挥作用。)首先,创建一个闪回数据存档,如下所示:

  SQL> create flashback archive near_term
 2 tablespace far_near_term
 3 retention 1 month
 4 /
  Flashback archive created.

关于时间,先不用管术语“保留”的意义,我们稍后再讨论。(这是记录更改的位置。)存档在表空间 far_near_term 中创建好了。

假设您需要记录表 TRANS 的更改。那么,您只需启用该表的闪回数据存档状态,开始在存档中记录更改即可。

  SQL> alter table trans flashback archive near_term;
  Table altered.

这会将表置于闪回数据存档模式。现在,该表中的所有行更改都将受到永久跟踪。我们来看一个演示。

首先,选择该表的一个具体行。

  SQL> select txn_amt from trans where trans_id = 2;
   TXN_AMT
----------
 19325.67
  SQL> update trans set txn_amt = 2000 where trans_id = 2;
  1 row updated.
  SQL> commit;
  Commit complete.

现在,如果您选择了该行,则这一列将始终显示 2000.要查找早先某一时间点时的值,您可以使用闪回查询,如下所示:

上一页  1 2 3 4 5 6 7 8 9  下一页

Tags:Oracle 数据库 特性

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接