您的位置:首页 > 数据库 > Oracle

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

2017-07-07 14:55 543 查看


/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  

作用:访问历史数据;生成报表,进行审计,恢复数据
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: