Oracle Flashback Technologies (总)

Posted 王超元

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle Flashback Technologies (总)相关的知识,希望对你有一定的参考价值。

Oracle Flashback Technologies

Oracle 9i中增加了闪回查询技术,闪回查询为数据库提供了一种简单、强大、完全无干扰从人为错误中恢复的机制。通过闪回查询,用户可以查看过去某个时间点的数据状态,而不需对数据库结构做任何修改。Oracle 10g扩展了闪回技术,分别在数据库、表、行、事务级别提供了快速而简单的恢复机制。

Oracle 10g中闪回技术包含了以下技术:

·闪回数据库:将数据库快速变回之前的某个时间点,不需要restore和recover操作,减少停机时间和人为错误发生的几率

·闪回表:将表恢复到之前的一个时间点,不需要restore操作等,

·闪回drop:还原被错误删除的表

·闪回版本查询:使用undo数据

·闪回事务查询:在事务级别进行查看

 

Oracle 11g提供了闪回数据归档(Flashback Data Archive)技术,用来管理和查询长期历史数据。

如果发生了一个错误,比如批job执行了两次,管理员可以进行闪回操作将数据库快速恢复到之前的某个状态,而不需要还原备份并进行基于时间点的恢复。 闪回技术不仅仅是在数据库级别,也可以是在表级别。

 

下表为闪回特性的图表说明

开启闪回功能需要设置数据库归档和设置flash recovery area (FRA)

1.确保数据库处于归档模式

复制代码
SQL> select log_mode from v$database;

LOG_MODE
------------
ARCHIVELOG

SQL> 
复制代码

 

2.设置闪回恢复区

#设置闪回区大小:

SQL> alter system set db_recovery_file_dest_size=6g scope=both ;

#设置闪回区位置

SQL> alter system set db_recovery_file_dest=\'/u01/app/oracle/fast_recovery_area\' scope=both sid=\'*\'; 

#设置闪回retention目标,以分钟为单位

SQL> alter system set db_flashback_retention_target=3600 scope=both sid=\'*\';

 

3.开启数据库闪回功能

#开启数据库闪回功能

SQL> alter database flashback on;

 

4.确认

复制代码
SQL> select flashback_on from v$database;

FLASHBACK_ON
------------------
YES

SQL> 
复制代码

 

如何计算快速闪回区的大小:

复制代码
Disk Quota =
Size of a copy of database +
Size of an incremental backup +
Size of (n+1) days of archived redo logs +
Size of (y+1) days of foreign archived redo logs (for logical standby) +
Size of control file +
Size of an online redo log member * number of log groups +
Size of flashback logs (based on DB_FLASHBACK_RETENTION_TARGET value)
复制代码

 

以下类型的表不支持表闪回:
·高级队列表
·单独的分区表或子分区
·物化视图
·嵌套表
·对象表
·远程表
·静态数据字典表
·system表
·簇表的一部分

以上是关于Oracle Flashback Technologies (总)的主要内容,如果未能解决你的问题,请参考以下文章

Oracle Flashback和RMAN示例

Flashback Oracle文档阅读

Flashback Oracle文档阅读

云迁移-oracle flashback

Oracle Blogs上的Flashback文章

Oracle Blogs上的Flashback文章