oracle帮助文档——Advanced Application Developer's Guide







/12 Using Oracle Flashback Technology



12.2 为flashback技术配置数据库
配置FB database 的undo管理:

配闪回事务查询:(1)10.0版本(2)Enable supplemental logging(闪回日志要启用):

配置Flashback Transaction:(1) SUPPLEMENTAL LOG   启用归档日志  ——不太懂
                      (2)如果未启用,则ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS;(最小和主键补充日志记录)
                      (3)ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (FOREIGN KEY) COLUMNS;(外键的也行)

12.3 使用Oracle Flashback Query(SELECT AS OF)
作用: 只能used to query DML
(1)误delete或者update了row,并且commit了
(2)当前与较早的数据进行比较
(3)特定时间的事务状态
(4)检索过去的数据






12.4 使用Oracle Flashback Version Query
VERSIONS_ENDSCN/ VERSIONS_ENDTIME:different versions of specific rows that existed during a given time interval.
如果这个pseudocolumn是NULL,则行版本在查询时是当前的( 是更大的SCN ),或者行对应于一个 DELETE 操作。
(1)语句:select * from ersions_startscn,versions_starttime,...from emp  VERSIONS BETWEEN TIMESTAMP TO_TIMESTAMP() and TO_TIMESTAMP()
  是查一个表上的多个版本     
(2)闪回版本查询仅允许仅使用IOT(索引组织的表)进行索引访问,但不允许索引快速完全扫描
(3)闪回版本查询能用version子句的是适用于堆表和索引组织表???
(4)不能使用VERSIONS子句查询: – 外部表 – 临时表 – 固定表 – 视图,不能使用VERSIONS子句查询视图。但是,在视图定义中可使用VERSIONS子句。





12.5 使用Flashback Transaction Query  
定义:检索给 a given transaction or for all transactions in a given time interval的 元数据和历史数据
select * FROM   flashback_transaction_query  WHERE xid = HEXTORAW('000200030000002D');

SELECT versions_xid XID,versions_startscn START_SCN, versions_endscn END_SCN,versions_operation OPERATION
      from emp  VERSIONS BETWEEN SCN MINVALUE AND MAXVALUE 
          WHERE empno = 111;



12.8 使用Flashback Transaction
通过参数dbms_flashback.transaction_backout实现:
四个参数:
NOCASCADE: 若检测到Transaction之间存在依赖关系,则无法进行回退
NOCASCADE_FORCE: 若Transaction间仅存在” Write-after-write dependency”类型的依赖关系,则可以实施强行回退;若遇到除” Write-after-write dependency”以外的其它类型的依赖关系,则无法进行回退
CASCADE: 对存在依赖关系的Transaction实施连带回退
NONCONFLICT_ONLY: 仅回退Transaction里不存在依赖关系的SQL,会破坏事务的原子性
查询静态数据字典视图*_FLASHBACK_TXN_STATE和*_FLASHBACK_TXN_REPORT

12.9 Using Flashback Data Archive (Oracle Total Recall)
和FRA无关;不需要归档模式;与undo无关保持自动undue即可
create条件:仅用于该表;不是嵌套/聚集/临时/远程/外部;不包含long;没有保留字
create语句:CREATE FLASHBACK ARCHIVE DEFAULT fla1 TABLESPACE tbs1 QUOTA 10G RETENTION 1 YEAR;
ALTER语句: ALTER  FLASHBACK ARCHIVE
drop语句: DROP FLASHBACK ARCHIVE fla1;
启用禁用: ALTER TABLE employee NO FLASHBACK ARCHIVE;
支持的DDL语句:
1.alter 列
2.alter 约束
3.drop或truncate分区或子分区
4.rename table  
作用:访问历史数据;生成报表,进行审计,恢复数据





/12 Using Oracle Flashback Technology



12.2 为flashback技术配置数据库
配置FB database 的undo管理:

配闪回事务查询:(1)10.0版本(2)Enable supplemental logging(闪回日志要启用):

配置Flashback Transaction:(1) SUPPLEMENTAL LOG   启用归档日志  ——不太懂
                      (2)如果未启用,则ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS;(最小和主键补充日志记录)
                      (3)ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (FOREIGN KEY) COLUMNS;(外键的也行)

12.3 使用Oracle Flashback Query(SELECT AS OF)
作用: 只能used to query DML
(1)误delete或者update了row,并且commit了
(2)当前与较早的数据进行比较
(3)特定时间的事务状态
(4)检索过去的数据






12.4 使用Oracle Flashback Version Query
VERSIONS_ENDSCN/ VERSIONS_ENDTIME:different versions of specific rows that existed during a given time interval.
如果这个pseudocolumn是NULL,则行版本在查询时是当前的( 是更大的SCN ),或者行对应于一个 DELETE 操作。
(1)语句:select * from ersions_startscn,versions_starttime,...from emp  VERSIONS BETWEEN TIMESTAMP TO_TIMESTAMP() and TO_TIMESTAMP()
  是查一个表上的多个版本     
(2)闪回版本查询仅允许仅使用IOT(索引组织的表)进行索引访问,但不允许索引快速完全扫描
(3)闪回版本查询能用version子句的是适用于堆表和索引组织表???
(4)不能使用VERSIONS子句查询: – 外部表 – 临时表 – 固定表 – 视图,不能使用VERSIONS子句查询视图。但是,在视图定义中可使用VERSIONS子句。





12.5 使用Flashback Transaction Query  
定义:检索给 a given transaction or for all transactions in a given time interval的 元数据和历史数据
select * FROM   flashback_transaction_query  WHERE xid = HEXTORAW('000200030000002D');

SELECT versions_xid XID,versions_startscn START_SCN, versions_endscn END_SCN,versions_operation OPERATION
      from emp  VERSIONS BETWEEN SCN MINVALUE AND MAXVALUE 
          WHERE empno = 111;



12.8 使用Flashback Transaction
通过参数dbms_flashback.transaction_backout实现:
四个参数:
NOCASCADE: 若检测到Transaction之间存在依赖关系,则无法进行回退
NOCASCADE_FORCE: 若Transaction间仅存在” Write-after-write dependency”类型的依赖关系,则可以实施强行回退;若遇到除” Write-after-write dependency”以外的其它类型的依赖关系,则无法进行回退
CASCADE: 对存在依赖关系的Transaction实施连带回退
NONCONFLICT_ONLY: 仅回退Transaction里不存在依赖关系的SQL,会破坏事务的原子性
查询静态数据字典视图*_FLASHBACK_TXN_STATE和*_FLASHBACK_TXN_REPORT

12.9 Using Flashback Data Archive (Oracle Total Recall)
和FRA无关;不需要归档模式;与undo无关保持自动undue即可
create条件:仅用于该表;不是嵌套/聚集/临时/远程/外部;不包含long;没有保留字
create语句:CREATE FLASHBACK ARCHIVE DEFAULT fla1 TABLESPACE tbs1 QUOTA 10G RETENTION 1 YEAR;
ALTER语句: ALTER  FLASHBACK ARCHIVE
drop语句: DROP FLASHBACK ARCHIVE fla1;
启用禁用: ALTER TABLE employee NO FLASHBACK ARCHIVE;
支持的DDL语句:
1.alter 列
2.alter 约束
3.drop或truncate分区或子分区
4.rename table  
作用:访问历史数据;生成报表,进行审计,恢复数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值