Oracle数据库11g新特性:事务管理
2008-12-16 13:03:10 来源:WEB开发网由于 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.要查找早先某一时间点时的值,您可以使用闪回查询,如下所示:
- ››oracle 中 UPDATE nowait 的使用方法
- ››Oracle ORA-12560解决方法
- ››Oracle 10g RAC 常用维护命令
- ››Oracle如何在ASM中定位文件的分布
- ››Oracle的DBMS_RANDOM.STRING 的用法
- ››oracle 外部表导入时间日期类型数据,多字段导入
- ››Oracle中查找重复记录
- ››oracle修改用户登录密码
- ››Oracle创建删除用户、角色、表空间、导入导出等命...
- ››Oracle中登陆时报ORA-28000: the account is lock...
- ››Oracle数据库在配置文件中更改最大连接数
- ››Oracle中在pl/sql developer修改表的两种方式
更多精彩
赞助商链接