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表
·簇表的一部分

原文地址:https://www.cnblogs.com/abclife/p/4595282.html