- 浏览: 788767 次
- 性别:
- 来自: 广州
文章分类
最新评论
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 1240Oracle 10g 的clusterware 32位 下载地 ... -
oracle 分析函数 RANK()
2013-04-11 00:05 1108RANK()既是一个聚合函数,也是一个分析函数 其具体的语法 ... -
oracle 分析函数
2013-04-09 23:25 1185分析函数是用于计算一组中多行的聚合值,与聚合函数的区别在于聚合 ... -
批量执行 bulk collect与forall用法
2013-04-08 23:49 1400BULK COLLECT 子句会批量检 ... -
pl/sql集合类型
2013-03-26 10:12 1578--集合类型 /* 单行单列的数据,使用标量变量 单行 ... -
oracle 行链接与行迁移
2013-03-16 01:06 1113表里的一行对于一个数据块太大的情况有二种(一行在一个数据块里放 ... -
oracle Health Monitor
2013-01-20 00:02 1621About Health Monitor Beginning ... -
oracle moving window size与 AWR retention period关系
2013-01-19 15:58 8495转自: http://tomszrp.itpub.net/po ... -
Oracle11.2新特性之INSERT提示IGNORE_ROW_ON_DUPKEY_INDEX
2013-01-12 00:20 2933insert提示IGNORE_ROW_ON_DUPKEY_IN ... -
RMAN List和report 命令
2012-12-25 00:07 2915LIST 命令 使用RMAN LIST 命令显示有关资料档案库 ... -
oracle ASM中ASM_POWER_LIMIT参数
2012-12-24 23:46 6445ASM_POWER_LIMIT 该初始化参数用于指定ASM例程 ... -
oracle I/O 从属进程
2012-12-24 23:24 1440I/O 从属进程 I/O从 ... -
easy connect 之 ORA-12154: TNS: 无法解析指定的连接标识符
2012-12-19 23:43 5647用easy connect连接出现“tns无法解析指定的连接标 ... -
Flashback Database --闪回数据库
2012-12-19 23:38 1398Flashback 技术是以Undo segment中的内容为 ... -
Oracle 11g新特性:Automatic Diagnostic Repository
2012-12-19 22:35 1400Oracle Database 11g的FDI(Fault D ... -
RMAN配置中通道(CHANNEL)相关参数 PARALLELISM 、FILESPERSET的关系
2012-12-19 22:09 2729RMAN配置中通道(CHANNEL)相 ... -
oracle 空间RESUMABLE
2012-12-14 22:05 3068空间RESUMABLE操作 转 Oracle从9i开始 ... -
oracle 创建视图 with check option
2012-12-13 23:14 1539我们来看下面的例子: create or replace vi ... -
flashback transaction闪回事务查询
2012-11-26 22:00 1508闪回事务查询有别于闪回查询的特点有以下3个: (1) ... -
pl/sql连不上oracle数据库
2012-11-21 22:56 3754pl/sql 9.2版本连不上oracle数据库 当系统安装 ...
相关推荐
Oracle 11g 引入的 Flashback Data Archive (FDA) 是一个强大的工具,用于长期保存数据库表的历史数据。此特性使得用户可以在指定的时间范围内轻松地恢复或查询过去的数据变化,而无需依赖传统的备份和恢复机制。...
Oracle 11g的闪回功能得到增强,特别是闪回数据归档(Flashback Data Archive),它为数据增加了时间维度,使得用户能够查询任何过去时间点的数据状态。这一特性对于跟踪变更、信息生命周期管理(ILM)、审计和法规...
基本信息 出版社: 清华大学出版社; 第1版 (2009年1月1日) 平装: 594页 语种: 简体中文 开本: 16 ... 使用最新的Oracle Database 11g工具——Oracle Total Recall和Oracle Flashback Data Archive等。
Oracle 10g Flashback是Oracle数据库10g版本中引入的一个强大特性,它为数据库管理员和用户提供了恢复数据到过去某个时间点的能力,而无需依赖传统的备份和恢复过程。这个功能极大地增强了数据库的可恢复性和灵活性...
基本信息 出版社: 清华大学出版社; 第1版 (2009年1月1日) 平装: 594页 语种: 简体中文 开本: 16 ... 使用最新的Oracle Database 11g工具——Oracle Total Recall和Oracle Flashback Data Archive等。
Oracle Database 11g新特性卷二中包含了对数据库管理员来说极其重要的一些新特性,这些特性可能包括但不限于以下几个方面: 1. 自动工作负载存储库(AWR)报告的增强:Oracle 11g引入了更为详尽的AWR报告功能,它...
在Oracle 11g中,Oracle引入了Flashback Data Archive (FDA)特性,这是一个独立于常规Undo管理的存储机制。FDA允许用户长期保存特定表或对象的历史数据,并可以设定不同的存储策略,以便在不影响当前Undo策略的情况...
**闪回数据存档(Flashback Data Archive)**是Oracle 11g中另一个重要的特性,它提供了一种简便的方式来保留历史数据,并能够在需要时快速检索这些数据。 - **特点**:这项功能可以自动维护指定时间范围内的数据版本...
4. Flashback Data Archive(闪回数据归档):这是一个可选的特性,用于存储被删除或更新的行的历史版本,以便于长期的数据审计和恢复。创建闪回数据归档后,即使行已被删除或更新,也可以通过查询归档来恢复。 5. ...
Oracle Database 11g R2高可用性是Oracle公司推出的一种关键数据库系统解决方案,旨在确保企业数据和服务在各种故障情况下的连续性和可访问性。这一版本的数据库系统提供了多种先进的特性,以提升系统的稳定性和灾难...
- **FBDA:** 与Flashback Data Archive特性相关的进程,用于归档追踪表的历史数据。 - **RMSn:** Oracle RAC管理进程,负责RAC资源的管理和新实例的添加。 - **DSKM:** Slave磁盘监控进程,负责实例、ASM实例和磁盘...
4. **闪回数据区(Flashback Data Archive)**:提供了历史数据的长期保留和查询,无需额外的备份或归档。 5. **RAC on Single Instance(Real Application Clusters on Single Instance)**:在单实例模式下实现...
二、Oracle 10g的新特性 1. 数据库自动管理:Oracle 10g的亮点之一是其自动管理能力,如自动存储管理(ASM)和数据库配置助手(DBCA),这些工具简化了数据库的创建、配置和维护过程。 2. Real Application Clusters ...
10. **闪回数据归档 (Flashback Data Archive)**:提供了一种历史数据的非破坏性存档方法,方便审计和合规性需求。 11. **SQL查询并行执行**:通过改进的并行执行策略,提高了大型查询的性能。 12. **Advanced ...
组织需要一个长期保留数据的有效机制,该机制不涉及应用程序重写、第三...Oracle 11g 引入了 Total Recall,该功能所使用的基础技Flashback Data Archive可以通过高度安全和有效的方式透明地跟踪对数据库表数据的更改。
Oracle Database 11g通过引入上述这些新特性,在提高数据库性能的同时,也极大地增强了数据的安全性和可管理性。无论是对于DBA还是开发者而言,这些功能都是非常有价值的。通过学习和掌握这些特性,可以更好地应对...
Oracle闪回特性是Oracle数据库提供的一种强大的数据恢复和时间旅行功能,它允许用户查看和恢复到数据库的某个历史状态,而无需依赖传统的备份和恢复过程。这一特性在故障排查、误操作恢复以及历史数据分析等方面有着...