设为首页 加入收藏

TOP

SYS_FBA_为前缀表如何服务于Flashback Data Archive(一)
2015-08-31 20:00:13 来源: 作者: 【 】 浏览:249
Tags:SYS_FBA_ 前缀 如何 服务于 Flashback Data Archive

undo里的before-image受系统负荷等因素的影响保留时间较短有的时候无法完全满足flashback query、flashback version query等闪回查询较早前数据的功能要求,flashback data archive的引入正是为了解决这个问题,将before image从undo定时归档到archive table。
数据库里如果创建了flashback data archive,那么后台进程FBDA(Flashback Data Archiver Process)就会启动,alert.log也会有下面的输出:
Sun May 17 13:35:18 2015
Starting background process FBDA
Sun May 17 13:35:18 2015
FBDA started with pid=35, OS id=12257378


在flashback data archive的技术实现过程中,SYS_FBT_为前缀的表起到了不小的作用,通过下面的实验了解一下


/////////////Part 1. SYS_FBA_表基本介绍////////////////


###数据库已有一个名为FBA0516_1的flashback archive,quota为300M,存放在TS0512_1表空间,FBA0516_1里目前尚未存放任何表的历史数据
SYS@tstdb1-SQL> select * from DBA_FLASHBACK_ARCHIVE;


OWNER_NAME FLASHBACK_ FLASHBACK_ARCHIVE# RETENTION_IN_DAYS CREATE_TIME? ? ? ? ? ? ? ? ? ? ? ? LAST_PURGE_TIME? ? ? ? ? ? ? ? ? ? STATUS
---------- ---------- ------------------ ----------------- ----------------------------------- ----------------------------------- -------
SYS? ? ? ? FBA0516_1? ? ? ? ? ? ? ? ? 1? ? ? ? ? ? ? ? 1 16-MAY-15 11.46.01.000000000 AM? ? 16-MAY-15 11.46.01.000000000 AM


SYS@tstdb1-SQL> select * from DBA_FLASHBACK_ARCHIVE_TS;


FLASHBACK_ FLASHBACK_ARCHIVE# TABLESPACE_NAME? ? ? ? ? ? ? ? QUOTA_IN_MB
---------- ------------------ ------------------------------ ----------------------------------------
FBA0516_1? ? ? ? ? ? ? ? ? 1 TS0512_1? ? ? ? ? ? ? ? ? ? ? 300


SYS@tstdb1-SQL> select * from DBA_FLASHBACK_ARCHIVE_TABLES;


no rows selected


###创建测试表
create table t0516_5 (id number,c2 varchar2(3)) flashback archive fba0516_1;


col object_name format a20
set linesize 100
select object_name,created,object_id from dba_objects where object_name='T0516_5';
OBJECT_NAME? ? ? ? ? CREATED? ? ? ? ? ? OBJECT_ID
-------------------- ----------------- ----------
T0516_5? ? ? ? ? ? ? 20150516 20:45:54? ? ? 36945


---T0516_5对应的archive table是SYS_FBA_HIST_36937,但我们在dba_tables还没有查到SYS_FBA_HIST_36937
col OWNER_NAME format a10
set numwidth 4
col FLASHBACK_ARCHIVE_NAME format a10
col create_time format a35
col last_purge_time format a35
set linesize 140
select * from DBA_FLASHBACK_ARCHIVE_TABLES;
TABLE_NAME? ? ? ? ? ? ? ? ? ? OWNER_NAME FLASHBACK_ ARCHIVE_TABLE_NAME? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? STATUS
------------------------------ ---------- ---------- ----------------------------------------------------- -------------
T0516_5? ? ? ? ? ? ? ? ? ? ? ? SCOTT? ? ? FBA0516_1? SYS_FBA_HIST_36945? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ENABLED


select owner,table_name,partitioned from dba_tables where table_name like '%36945';


no rows selected


根据官方的说法后台进程FBDA会每隔5分钟检测一次是否有新的archive table要创建,这里等待超过了10分钟也未见SYS_FBA_HIST_36937表创建出来,下面进行一些DML操作后再观察
---插入若干数据
insert into t0516_5 values(1,'AAA');
insert into t0516_5 values(2,'BBB');
insert into t0516_5 values(3,'CCC');
commit;


SCOTT@tstdb1-SQL> select sysdate from dual;


SYSDATE
-----------------
20150516 20:47:06


---没有马上查询到SYS_FBA开头的表,直到20150516 20:50:19,SYS_FBA才被创建出来,与上次的insert操作的时间相隔<5分钟
SCOTT@tstdb1-SQL> select owner,table_name,partitioned from dba_tables where table_name like '%36945';


no rows selected


。。。。等待片刻


SCOTT@tstdb1-SQL> select owner,table_name,partitioned from dba_tables where table_name like '%36945';


OWNER? ? ? ? ? ? ? ? ? ? ? ? ? TABLE_NAME? ? ? ? ? ? ? ? ? ? PAR
------------------------------ ------------------------------ ---
SCOTT? ? ? ? ? ? ? ? ? ? ? ? ? SYS_FBA_HIST_36945? ? ? ? ? ? YES
SYS? ? ? ? ? ? ? ? ? ? ? ? ? ? SYS_MFBA_NHIST_36945? ? ? ? ? NO
SCOTT? ? ? ? ? ? ? ? ? ? ? ? ? SYS_FBA_TCRV_

首页 上一页 1 2 3 4 5 6 7 下一页 尾页 1/10/10
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇MySQL分表分区 下一篇alert日志中的两种ORA错误分析

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: