/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实现:
四个参数:
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实现:
四个参数:
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
作用:访问历史数据;生成报表,进行审计,恢复数据