- 浏览: 770918 次
- 性别:
- 来自: 广州
文章分类
最新评论
1. 什么是flashback data archive
Flashback data archive是oracle 11g中引入的一个新特性。Flashback archive是一个新的数据库对象,用于存储一个或多表的历史数据。Flashback archive是一个逻辑对象,概念上类似于表空间。实际上flashback archive可以看作是存储一个或多个表的所有事务变化的逻辑空间。
2. flashback data archive的实现原理
从9i开始,Oracle就提供了表的flashback query功能,使用户可以查询表上过去某一时刻的数据或一段时间内数据的变化情况。flashback query实际上是利用UNDO信息来获得过去的数据。由于UNDO空间是循环使用的,事务的前映像不可能永久保存,因此flashback query只能支持过去一段时间内的数据查询,这个时间与UNDO_RETENTION相关。
Flashback data archive相比flashback query则更进了一步。Flashback data archive不再直接使用UNDO信息获得历史数据,而是把历史数据保存在一个track table里。Oracle新增加了一个后台进程fbda,此进程每隔一段时间(通常是5分钟)把UNDO中的历史数据信息加到track table里。如果表上开启了flashback archive功能,则Oracle先给事务产生的UNDO信息做标记,直到被标记的UNDO信息加到track table后,此UNDO空间才能被重用。
Flashback data archive采用压缩方式存储历史数据,以减小空间占用。同时flashback data archive采用range分区方式对track table表进行分区。track table表上没有索引,用户可根据需要对track table增加索引。
2.2 Altering a Flashback Data Archive
With the ALTER FLASHBACK ARCHIVE statement, you can:
-- 使用alter flashback archive 可以修改如下内容:
(1)Change the retention time of a Flashback Data Archive
(2)Purge some or all of its data
(3)Add, modify, and remove tablespaces
Note:
Removing all tablespaces of a Flashback Data Archive causes an error.
If you are logged on as SYSDBA, you can also use the ALTER FLASHBACK ARCHIVE statement to make a specific file the default Flashback Data Archive for the system.
-- 不能移除Flashback Data Archive里的所有表空间。 否则报错。 如果用sysdba 登陆,可以修改默认的Flashback archive。
示例:
2.2.1 将Flashback Data Archive 修改为default FA
先用我们具有flashback archive administer 权限的用户试试:
SQL> conn dvd/dvd;
Connected.
SQL> alter flashback archive fla1 set default;
alter flashback archive fla1 set default
*
ERROR at line 1:
ORA-55611: No privilege to manage default Flashback Archive
报错,没有权限,用sysdba 测试成功:
SQL> conn / as sysdba;
Connected.
SQL> alter flashback archive fla1 set default;
Flashback archive altered.
注意一点,只能有一个默认的Flashback archive.
SQL> select flashback_archive_name name, status from dba_flashback_archive;
NAME STATUS
---------- -------
FLA1 DEFAULT
FLA2
当前默认的Flashback Archive 是FLA1,我们将默认改成FLA2,在查看:
SQL> alter flashback archive fla2 set default;
Flashback archive altered.
SQL> select flashback_archive_name name, status from dba_flashback_archive;
NAME STATUS
---------- -------
FLA1
FLA2 DEFAULT
2.2.2 为已经存在的Flashback Archive 添加表空间,并指定配额
SQL> alter flashback archive fla1 add tablespace fda3 quota 20M;
Flashback archive altered.
2.2.3 为已经存在的Flashback Archive 添加表空间,不指定配额,即需要多少用多少空间
SQL> alter flashback archive fla1 add tablespace fda4;
Flashback archive altered.
2.2.4 修改已经存在的Flashback Archive的配额
SQL> alter flashback archive fla1 modify tablespace fda1 quota 20m;
Flashback archive altered.
2.2.5 修改配额不受限制
SQL> alter flashback archive fla1 modify tablespace fda1;
Flashback archive altered.
2.2.6 修改Flashback Archive 的retention time
SQL> alter flashback archive fla1 modify retention 2 year;
Flashback archive altered.
SQL> alter flashback archive fla1 modify retention 1 month;
Flashback archive altered.
SQL> alter flashback archive fla1 modify retention 2 month;
Flashback archive altered.
SQL> alter flashback archive fla1 modify retention 2 day;
Flashback archive altered.
SQL> alter flashback archive fla1 modify retention 1 day;
Flashback archive altered.
2.2.7 将表空间从Flashback Archive中移除
SQL> alter flashback archive fla1 remove tablespace fda4;
Flashback archive altered.
-- 注意,这里移除的仅仅是Flashback Archive中的信息,表空间不会被删除。
2.2.8 清空Flashback Archive中的所有历史记录
SQL> alter flashback archive fla1 purge all;
Flashback archive altered.
2.2.9 清空Flashback Archive 中超过1天的历史数据
SQL> alter flashback archive fla1 purge before timestamp (systimestamp - interval '1' day);
Flashback archive altered.
2.2.10 清空Flashback Archive 中指定SCN 之前的所有历史数据
SQL> select current_scn from v$database;
CURRENT_SCN
-----------
1315755078
SQL> alter flashback archive fla1 purge before scn 1315755078;
Flashback archive altered.
2.5.1 创建table,使用默认的Flashback Data Archive 来存储历史数据
SQL> create table 安庆 (id number) flashback archive;
Table created.
2.5.2 创建table,使用指定的Flashback Data Archive 来存储历史数据
SQL> create table 怀宁 (id number) flashback archive fla1;
Table created.
2.5.3 对表启用Flashback archive,并使用默认的Flashback archive。
SQL> alter table dave flashback archive;
Table altered.
2.5.4 禁用表的Flashback Archive
SQL> alter table dave no flashback archive;
Table altered.
2.5.5 对table 启用Flashback archive,并指定Flashaback Archive 区。
SQL> alter table dave flashback archive fla1;
Table altered.
DDL Statements on Tables Enabled for Flashback Data Archive
Flashback Data Archive supports many DDL statements, including some that alter the table definition or move data. For example:
--启动Flashback Data Archive的表支持以下的DDL 操作
(1)ALTER TABLE statement that does any of the following:
1)Adds, drops, renames, or modifies a column
2)Adds, drops, or renames a constraint
3)Drops or truncates a partition or subpartition operation
(2)TRUNCATE TABLE statement
(3)RENAME statement that renames a table
Some DDL statements cause error ORA-55610 when used on a table enabled for Flashback Data Archive. For example:
-- 启动Flashback Data Archive的表上的一些DDL 操作可能触发ORA-55610的错误,这些DDL 如下:
(1)ALTER TABLE statement that includes an UPGRADE TABLE clause, with or without an INCLUDING DATA clause
(3)ALTER TABLE statement that moves or exchanges a partition or subpartition operation
(3)DROP TABLE statement
Flashback data archive是oracle 11g中引入的一个新特性。Flashback archive是一个新的数据库对象,用于存储一个或多表的历史数据。Flashback archive是一个逻辑对象,概念上类似于表空间。实际上flashback archive可以看作是存储一个或多个表的所有事务变化的逻辑空间。
2. flashback data archive的实现原理
从9i开始,Oracle就提供了表的flashback query功能,使用户可以查询表上过去某一时刻的数据或一段时间内数据的变化情况。flashback query实际上是利用UNDO信息来获得过去的数据。由于UNDO空间是循环使用的,事务的前映像不可能永久保存,因此flashback query只能支持过去一段时间内的数据查询,这个时间与UNDO_RETENTION相关。
Flashback data archive相比flashback query则更进了一步。Flashback data archive不再直接使用UNDO信息获得历史数据,而是把历史数据保存在一个track table里。Oracle新增加了一个后台进程fbda,此进程每隔一段时间(通常是5分钟)把UNDO中的历史数据信息加到track table里。如果表上开启了flashback archive功能,则Oracle先给事务产生的UNDO信息做标记,直到被标记的UNDO信息加到track table后,此UNDO空间才能被重用。
Flashback data archive采用压缩方式存储历史数据,以减小空间占用。同时flashback data archive采用range分区方式对track table表进行分区。track table表上没有索引,用户可根据需要对track table增加索引。
2.2 Altering a Flashback Data Archive
With the ALTER FLASHBACK ARCHIVE statement, you can:
-- 使用alter flashback archive 可以修改如下内容:
(1)Change the retention time of a Flashback Data Archive
(2)Purge some or all of its data
(3)Add, modify, and remove tablespaces
Note:
Removing all tablespaces of a Flashback Data Archive causes an error.
If you are logged on as SYSDBA, you can also use the ALTER FLASHBACK ARCHIVE statement to make a specific file the default Flashback Data Archive for the system.
-- 不能移除Flashback Data Archive里的所有表空间。 否则报错。 如果用sysdba 登陆,可以修改默认的Flashback archive。
示例:
2.2.1 将Flashback Data Archive 修改为default FA
先用我们具有flashback archive administer 权限的用户试试:
SQL> conn dvd/dvd;
Connected.
SQL> alter flashback archive fla1 set default;
alter flashback archive fla1 set default
*
ERROR at line 1:
ORA-55611: No privilege to manage default Flashback Archive
报错,没有权限,用sysdba 测试成功:
SQL> conn / as sysdba;
Connected.
SQL> alter flashback archive fla1 set default;
Flashback archive altered.
注意一点,只能有一个默认的Flashback archive.
SQL> select flashback_archive_name name, status from dba_flashback_archive;
NAME STATUS
---------- -------
FLA1 DEFAULT
FLA2
当前默认的Flashback Archive 是FLA1,我们将默认改成FLA2,在查看:
SQL> alter flashback archive fla2 set default;
Flashback archive altered.
SQL> select flashback_archive_name name, status from dba_flashback_archive;
NAME STATUS
---------- -------
FLA1
FLA2 DEFAULT
2.2.2 为已经存在的Flashback Archive 添加表空间,并指定配额
SQL> alter flashback archive fla1 add tablespace fda3 quota 20M;
Flashback archive altered.
2.2.3 为已经存在的Flashback Archive 添加表空间,不指定配额,即需要多少用多少空间
SQL> alter flashback archive fla1 add tablespace fda4;
Flashback archive altered.
2.2.4 修改已经存在的Flashback Archive的配额
SQL> alter flashback archive fla1 modify tablespace fda1 quota 20m;
Flashback archive altered.
2.2.5 修改配额不受限制
SQL> alter flashback archive fla1 modify tablespace fda1;
Flashback archive altered.
2.2.6 修改Flashback Archive 的retention time
SQL> alter flashback archive fla1 modify retention 2 year;
Flashback archive altered.
SQL> alter flashback archive fla1 modify retention 1 month;
Flashback archive altered.
SQL> alter flashback archive fla1 modify retention 2 month;
Flashback archive altered.
SQL> alter flashback archive fla1 modify retention 2 day;
Flashback archive altered.
SQL> alter flashback archive fla1 modify retention 1 day;
Flashback archive altered.
2.2.7 将表空间从Flashback Archive中移除
SQL> alter flashback archive fla1 remove tablespace fda4;
Flashback archive altered.
-- 注意,这里移除的仅仅是Flashback Archive中的信息,表空间不会被删除。
2.2.8 清空Flashback Archive中的所有历史记录
SQL> alter flashback archive fla1 purge all;
Flashback archive altered.
2.2.9 清空Flashback Archive 中超过1天的历史数据
SQL> alter flashback archive fla1 purge before timestamp (systimestamp - interval '1' day);
Flashback archive altered.
2.2.10 清空Flashback Archive 中指定SCN 之前的所有历史数据
SQL> select current_scn from v$database;
CURRENT_SCN
-----------
1315755078
SQL> alter flashback archive fla1 purge before scn 1315755078;
Flashback archive altered.
2.5.1 创建table,使用默认的Flashback Data Archive 来存储历史数据
SQL> create table 安庆 (id number) flashback archive;
Table created.
2.5.2 创建table,使用指定的Flashback Data Archive 来存储历史数据
SQL> create table 怀宁 (id number) flashback archive fla1;
Table created.
2.5.3 对表启用Flashback archive,并使用默认的Flashback archive。
SQL> alter table dave flashback archive;
Table altered.
2.5.4 禁用表的Flashback Archive
SQL> alter table dave no flashback archive;
Table altered.
2.5.5 对table 启用Flashback archive,并指定Flashaback Archive 区。
SQL> alter table dave flashback archive fla1;
Table altered.
DDL Statements on Tables Enabled for Flashback Data Archive
Flashback Data Archive supports many DDL statements, including some that alter the table definition or move data. For example:
--启动Flashback Data Archive的表支持以下的DDL 操作
(1)ALTER TABLE statement that does any of the following:
1)Adds, drops, renames, or modifies a column
2)Adds, drops, or renames a constraint
3)Drops or truncates a partition or subpartition operation
(2)TRUNCATE TABLE statement
(3)RENAME statement that renames a table
Some DDL statements cause error ORA-55610 when used on a table enabled for Flashback Data Archive. For example:
-- 启动Flashback Data Archive的表上的一些DDL 操作可能触发ORA-55610的错误,这些DDL 如下:
(1)ALTER TABLE statement that includes an UPGRADE TABLE clause, with or without an INCLUDING DATA clause
(3)ALTER TABLE statement that moves or exchanges a partition or subpartition operation
(3)DROP TABLE statement
发表评论
-
Oracle 10g 的clusterware 32位 下载地址
2013-04-19 23:03 1159Oracle 10g 的clusterware 32位 下载地 ... -
oracle 分析函数 RANK()
2013-04-11 00:05 1065RANK()既是一个聚合函数,也是一个分析函数 其具体的语法 ... -
oracle 分析函数
2013-04-09 23:25 1134分析函数是用于计算一组中多行的聚合值,与聚合函数的区别在于聚合 ... -
批量执行 bulk collect与forall用法
2013-04-08 23:49 1335BULK COLLECT 子句会批量检 ... -
pl/sql集合类型
2013-03-26 10:12 1537--集合类型 /* 单行单列的数据,使用标量变量 单行 ... -
oracle 行链接与行迁移
2013-03-16 01:06 1063表里的一行对于一个数据块太大的情况有二种(一行在一个数据块里放 ... -
oracle Health Monitor
2013-01-20 00:02 1573About Health Monitor Beginning ... -
oracle moving window size与 AWR retention period关系
2013-01-19 15:58 8454转自: http://tomszrp.itpub.net/po ... -
Oracle11.2新特性之INSERT提示IGNORE_ROW_ON_DUPKEY_INDEX
2013-01-12 00:20 2830insert提示IGNORE_ROW_ON_DUPKEY_IN ... -
RMAN List和report 命令
2012-12-25 00:07 2826LIST 命令 使用RMAN LIST 命令显示有关资料档案库 ... -
oracle ASM中ASM_POWER_LIMIT参数
2012-12-24 23:46 6364ASM_POWER_LIMIT 该初始化参数用于指定ASM例程 ... -
oracle I/O 从属进程
2012-12-24 23:24 1369I/O 从属进程 I/O从 ... -
easy connect 之 ORA-12154: TNS: 无法解析指定的连接标识符
2012-12-19 23:43 5590用easy connect连接出现“tns无法解析指定的连接标 ... -
Flashback Database --闪回数据库
2012-12-19 23:38 1332Flashback 技术是以Undo segment中的内容为 ... -
Oracle 11g新特性:Automatic Diagnostic Repository
2012-12-19 22:35 1345Oracle Database 11g的FDI(Fault D ... -
RMAN配置中通道(CHANNEL)相关参数 PARALLELISM 、FILESPERSET的关系
2012-12-19 22:09 2593RMAN配置中通道(CHANNEL)相 ... -
oracle 空间RESUMABLE
2012-12-14 22:05 3005空间RESUMABLE操作 转 Oracle从9i开始 ... -
oracle 创建视图 with check option
2012-12-13 23:14 1463我们来看下面的例子: create or replace vi ... -
flashback transaction闪回事务查询
2012-11-26 22:00 1458闪回事务查询有别于闪回查询的特点有以下3个: (1) ... -
pl/sql连不上oracle数据库
2012-11-21 22:56 3705pl/sql 9.2版本连不上oracle数据库 当系统安装 ...
相关推荐
主要介绍了Oracle 11g 新特性 Flashback Data Archive 使用实例,Flashback Data Archive 的主要作用是在它的有效期内将保存事务改变的信息,需要的朋友可以参考下
基本信息 出版社: 清华大学出版社; 第1版 (2009年1月1日) 平装: 594页 语种: 简体中文 开本: 16 ... 使用最新的Oracle Database 11g工具——Oracle Total Recall和Oracle Flashback Data Archive等。
基本信息 出版社: 清华大学出版社; 第1版 (2009年1月1日) 平装: 594页 语种: 简体中文 开本: 16 ... 使用最新的Oracle Database 11g工具——Oracle Total Recall和Oracle Flashback Data Archive等。
组织需要一个长期保留数据的有效机制,该机制不涉及应用程序重写、第三...Oracle 11g 引入了 Total Recall,该功能所使用的基础技Flashback Data Archive可以通过高度安全和有效的方式透明地跟踪对数据库表数据的更改。
OCPOCA认证考试指南全册:Oracle Database 11g(1Z0-051,1Z0-052,1Z0-053) 共2部分:此为第002部分 基本信息 原书名: OCA/OCP Oracle Database 11g All-in-One Exam Guide with CD-ROM: Exams 1Z0-051, 1Z0-052...
(八)12c 审计的新特性 73 十、移动数据 76 (一)移动数据的整体架构 76 (二)目录对象 76 (三)使用 SQL*Loader 77 (四)数据泵 78 (五)外部表 80 十一、性能管理基础 82 (一)性能监视 82 (二)性能监视 ...
Archive 660 Wrap Code 660 Service Manager 661 External tools 662 FTP 665 Java Manager 668 Network Utilities 672 Task Scheduler 676 Unix Job Scheduler 678 Source Control and Team Coding 693 Support for...
OCPOCA认证考试指南全册:Oracle Database 11g(1Z0-051,1Z0-052,1Z0-053) 共2部分:此为第001部分 基本信息 原书名: OCA/OCP Oracle Database 11g All-in-One Exam Guide with CD-ROM: Exams 1Z0-051, 1Z0-052...