Oracle闪回数据归档

从Oracle 11g开始,提供了一个这样的功能:闪回数据归档(Flashback Data Archive)。通过这一功能,Oracle数据库可以将UNDO数据进行归档,从而提供全面的历史数据查询,也因此引入一个新的概念:Oracle Total Recall,即Oracle全面回忆。闪回数据归档可以和我们一直熟悉的日志归档类比,日志归档记录的是REDO的历史状态,用于保证恢复的连续性。而闪回归档记录的是UNDO的历史状态,可以用于对数据进行闪回追溯查询。后台进程LGWR用于将REDO信息写出到联机日志文件,ARCH进程负责写出到归档日志,而在Oracle 11g中新增的后台进程FBDA(Flashback Data Archiver Process)则用于对闪回数据进行归档写出。

前面讲述的闪回功能都有时间限制:闪回数据库受闪回日志空间大小及保留时间的限制,闪回查询受撤销表空间及保留时间的限制,闪回删除受表空间可用空间的限制。而闪回数据归档则可以配置长期的存储表行数据的前映像,甚至可以存储多年。FBDA会确保保存该时间点之前的所有数据,超出保存时间之前的数据会自动维护删除。这对于像司法和审计方面的需求尤其适用,闪回数据归档透明的支持了这种做法,DBA能够保证符合法律要求而不需要做任何额外的工作。

对于繁忙的数据库,闪回数据存储显然要耗用更多的磁盘空间和时间。当然用户可以根据需要,仅对部分表启用闪回数据归档,从而满足特定的业务需求。

配置闪回数据归档的基本步骤:
创建一个表空间,然后创建归档,指定表空间、保留时间及表空间配额:
create tablespace fda datafile 'd:\oradata\mes\fda01.dbf' size 10g;
create flashback archive default fa tablespace fda quota 10g retention 1 year;

其中fa是创建的闪回归档名,fda是为归档创建的表空间,default关键字表示除非另行说明,该归档将用作所有表的归档。也可以稍后设置默认的归档:
alter flashback archive fa set default;

quota子句显示归档在表空间中占用的配额。还可以在原有的表空间或另一个表空间中扩展更多的空间:
alter flashback archive fa add tablespace fda2 quota 10g;

也可以调整闪回归档的保留时间:
alter flashback archive fa modify retention 2 year;

那么一旦数据超过了指定的保留期限,FBDA后台进程将自动从归档中删除过期的数据。在数据过期之前,也可以手动进行删除,如:
alter flashback archive fa purge before timestamp to_timestamp('2015-01-01 00:00:00', 'yyyy-mm-dd hh24:mi:ss');

创建、修改或删除归档以及控制归档的保留和清除,需要flashback archive administer系统权限,归档表的用户必须授予flashback archive的权限:
grant flashback archive administer to cmes;
grant flashback archive on fa to rmes;

为了启用表的归档保护,使用如下命令:
alter table rmes.r_wip_station_t flashback archive fa;

如要删除表的归档保护,可以使用如下命令:
alter table rmes.r_wip_station_t no flashback archive;

如要删除闪回数据归档,则可用以下命令:
drop flashback archive fa;

加入到闪回数据归档的表、表空间、用户是受保护不允许删除的,除非先将归档保护删除。

另外,有三个数据字典视图记录了闪回数据归档的配置信息:

dba_flashback_archive,描述了配置的归档

col flashback_archive_name for a30
select owner_name, flashback_archive_name, flashback_archive#, retention_in_days, to_char(create_time, 'yyyy-mm-dd hh24:mi:ss') create_time, status from dba_flashback_archive;

OWNER_NAME                     FLASHBACK_ARCHIVE_NAME         FLASHBACK_ARCHIVE# RETENTION_IN_DAYS CREATE_TIME         STATUS
------------------------------ ------------------------------ ------------------ ----------------- ------------------- -------
SYS                            FA                                              1               365 2017-01-29 22:31:29 DEFAULT

dba_flashback_archive_ts,显示了每个表空间为闪回归档分配的配额

col flashback_archive_name for a30
col quota_in_mb for a20
select * from dba_flashback_archive_ts;

FLASHBACK_ARCHIVE_NAME         FLASHBACK_ARCHIVE# TABLESPACE_NAME                QUOTA_IN_MB
------------------------------ ------------------ ------------------------------ --------------------
FA                                              1 FDA                            1024

dba_flashback_archive_tables,列出了启用闪回归档的表

col archive_table_name for a30
select * from dba_flashback_archive_tables;

TABLE_NAME                     OWNER_NAME                     FLASHBACK_ARCHIVE_NAME         ARCHIVE_TABLE_NAME             STATUS
------------------------------ ------------------------------ ------------------------------ ------------------------------ --------
R_WIP_STATION_T                RMES                           FA                             SYS_FBA_HIST_98694             ENABLED


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28974745/viewspace-2139608/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/28974745/viewspace-2139608/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值