闪回查询,9i,10G到11G的不断增强
2008-02-20 18:57
489 查看
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
依赖于回滚段,受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
相关文章推荐
- Oracle Database 9i, 10g闪回版本查询
- Oracle Database 9i, 10g闪回版本查询
- Oracle Database 9i, 10g闪回版本查询
- Oracle 10g 闪回查询特性的增强
- Oracle Flashback 闪回查询功能操作范例(9i and 10g)
- Oracle Flashback 闪回查询功能操作范例(9i and 10g)
- Oracle Flashback 闪回查询功能操作范例(9i and 10g)【转】
- oracle官方文档下载地址(9i,10g,11g,12c),软件下载地址
- Oracle 8i/9i/10g/11g 组件(Components) 说明
- oracle 9i使用闪回查询恢复数据库误删问题
- oracle 9i 和oracle 10g 和oracle 11g有什么区别
- oracle 8i 、oracle 9i 、oracle 10g 和oracle 11g区别详细剖析
- Oracle Database 9i 10g 11g编程艺术 深入数据库体系结构 第2版pdf
- Oracle 9i中闪回查询操作实例
- oracle merge从9i到10g的增强
- Oracle 9i/10g/11g数据库升级路线图总览
- cx_Oracle Oracle home does not refer to an 8i, 9i, 10g or 11g installation
- 转 Oracle 9i,10g,11g各自alert日志的位置
- Oracle 11g学习笔记--查询闪回
- Oracle 9i/10g/11g 数据库 升级路线图(upgrade roadmap)