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.确保数据库处于归档模式
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.确认
如何计算快速闪回区的大小:
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表
·簇表的一部分