打对了

实践Oracle优化技术在医疗信息化中的深入应用,探索医院信息系统性能优化设计之道。公众号:医信系统性能优化。

 

闪回查询,9i,10G到11G的不断增强

9i开始,oracle推出了闪回查询的功能,即可能查询和恢复历史数据,
依赖于回滚段,受undo_retention参数的控制,只能查询一定时间段以内的历史数据,并且回滚段没有被新的事务覆盖.
10g中,对闪回查询做了较大改进,不再局限于闪回查询,还可用于恢复错误的DDL(Drop)操作、闪回表、闪回数据库等,增加了闪回恢复区(Flashback recovery area)的新特性.
它依赖于flashback Log闪回日志,受db_flashback_retention_target等参数的控制
而11G中又进行了增强,增加了闪回数据存档库的概念,闪回数据可以存放到单独的表空间,不依赖归档日志,
并且更加灵活方便,不同的表可以制定不同的闪回存储策略,而且通过表空间方式来管理,更便于维护闪回数据.
下面以一个例子来说明.

CREATE TABLESPACE zlflashback
DATAFILE 'D:\APP\ADMINISTRATOR\ORADATA\ORCL\zlflashback.dbf'
SIZE 10M AUTOEXTEND ON;

Create Flashback Archive fla_zltab Tablespace zlflashback Retention 1 Month;
alter table 病人信息 flashback archive fla_zltab;

SQL> insert into 病人信息(病人id,姓名) values(1,'巴基斯');
1 row inserted
SQL> commit;
Commit Complete
SQL> update 病人信息 set 姓名='卡巴基斯' where 病人id=1;
1 row Updated
SQL> commit;
Commit Complete
SQL> set time on;
17:12:09 SQL> delete 病人信息 where 病人id=1;
1 row deleted
17:12:29 SQL> commit;

SQL>Select * From 病人信息
As Of Timestamp To_Timestamp('02/20/2008 17:12:09', 'mm/dd/yyyy hh24:mi:ss')
Where 病人id = 1;
             病人ID 姓名
------------------- --------------------
                  1 卡巴基斯

查看闪回事务
Select * From flashback_transaction_query Where table_name='病人信息'
查看有哪些闪回归档库
Select * From dba_flashback_archive;
查看哪些表使用了闪回归档
Select * From User_Flashback_Archive_Tables

参考文档:http://www.oracle.com/technology/global/cn/pub/articles/oracle-database-11g-top-features/11g-transactionmanagement.html
注意,该文档这两个表名有错,flashback_archives,user_flashback_archived_tables

posted on 2008-02-20 18:57  知道得越多知道的越少  阅读(629)  评论(0编辑  收藏  举报

导航