Oracle Flashback
10g中Flashback包括:flashback database(数据库级),flashback table(表级),flashback drop(表级),flashback version query(记录级),flashback transaction query(记录级)。
记录级与表级的flashback操作可以由普通用户使用,不需要dba介入,而数据库级flashback需要由dba完成。
Flashback Database整个架构包括一个Recover Writer(RVWR)后台进程,flashback database log日志和flash recovery area。能够把整个数据库回退到过去某个时间点的状态,依赖于flashback log日志,这些日志包括数据块的前镜像,因此比rman更快速。但flashback database有某些限制。
Flashback Drop 用于恢复用户误删除的对象。依赖于Tablespace Recycle Bin(表空间回收站)。
Flashback Table 真正进数据进行闪回操作,以下三种只是用于分析,真正的操作使用Flashback Table。依赖于UNDO。
9iFlashback Query 可以查询过去某个时间点对象的状态。依赖于UNDO。
Flashback Version Query 可以查看过去某个时间段内,记录是如何发生变化的,即记录的演变历史。根据这些历史,可以快速判断是在什么时间点发生了错误,进而恢复到之前的状态。依赖于UNDO。
Flashback Transaction Query 可以查看某个事务执行的所有变化,需要访问flashback_transaction_query视图。依赖于UNDO。
启用Flashback Database
Flashback Database主要通过3个初始化参数来设置和管理
db_recovery_file_dest:指定闪回恢复区的位置, 如果使用asm,只能指定磁盘组,而不能指定目录。
db_recovery_file_dest_size:指定闪回恢复区的可用空间大小
db_flashback_retention_target:指定数据库可以回退的时间,单位为分钟,默认1440分钟,也就是一天。当然,实际上可回退的时间还决定于闪回恢复区的大小,因为里面保存了回退所需要的 flash log。所以这个参数要和db_recovery_file_dest_size配合修改。
10g中Flashback包括:flashback database(数据库级),flashback table(表级),flashback drop(表级),flashback version query(记录级),flashback transaction query(记录级)。
记录级与表级的flashback操作可以由普通用户使用,不需要dba介入,而数据库级flashback需要由dba完成。
Flashback Database整个架构包括一个Recover Writer(RVWR)后台进程,flashback database log日志和flash recovery area。能够把整个数据库回退到过去某个时间点的状态,依赖于flashback log日志,这些日志包括数据块的前镜像,因此比rman更快速。但flashback database有某些限制。
Flashback Drop 用于恢复用户误删除的对象。依赖于Tablespace Recycle Bin(表空间回收站)。
Flashback Table 真正进数据进行闪回操作,以下三种只是用于分析,真正的操作使用Flashback Table。依赖于UNDO。
9iFlashback Query 可以查询过去某个时间点对象的状态。依赖于UNDO。
Flashback Version Query 可以查看过去某个时间段内,记录是如何发生变化的,即记录的演变历史。根据这些历史,可以快速判断是在什么时间点发生了错误,进而恢复到之前的状态。依赖于UNDO。
Flashback Transaction Query 可以查看某个事务执行的所有变化,需要访问flashback_transaction_query视图。依赖于UNDO。
启用Flashback Database
Flashback Database主要通过3个初始化参数来设置和管理
db_recovery_file_dest:指定闪回恢复区的位置, 如果使用asm,只能指定磁盘组,而不能指定目录。
db_recovery_file_dest_size:指定闪回恢复区的可用空间大小
db_flashback_retention_target:指定数据库可以回退的时间,单位为分钟,默认1440分钟,也就是一天。当然,实际上可回退的时间还决定于闪回恢复区的大小,因为里面保存了回退所需要的 flash log。所以这个参数要和db_recovery_file_dest_size配合修改。
配置示例:
--某一节点执行
SQL> alter system set db_recovery_file_dest_size=100M scope=spfile sid='*';
System altered.
SQL> alter system set db_recovery_file_dest='+RECOVERY' scope=spfile sid='*';
System altered.
SQL> col name format a32 heading 'parameter'
SQL> col value format a32 heading 'setting'
SQL> select name,value from v$parameter where name like '%flash%' or name like '%recovery%' order by name;
parameter setting
-------------------------------- --------------------------------
db_flashback_retention_target 1440
db_recovery_file_dest
db_recovery_file_dest_size 104857600
recovery_parallelism 0
--关闭所有节点
SQL> shutdown immediate
--在某一节点执行,启动到mount状态,开启闪回
SQL> startup mount
ORACLE instance started.
Total System Global Area 264241152 bytes
Fixed Size 2020056 bytes
Variable Size 113249576 bytes
Database Buffers 146800640 bytes
Redo Buffers 2170880 bytes
Database mounted.
SQL> alter database flashback on;
Database altered.
SQL> col name format a12
SQL> col current_scn format 9999999
SQL> col flashback_on format a20
SQL> select name,current_scn,flashback_on
2 from v$database;
parameter CURRENT_SCN FLASHBACK_ON
------------ ----------- --------------------
ORARAC 0 YES
SQL> alter database open;
Database altered.
SQL> col name format a32 heading 'parameter'
SQL> col value format a32 heading 'setting'
SQL> select name,value from v$parameter where name like '%flash%' or name like '%recovery%' order by name;
parameter setting
-------------------------------- --------------------------------
db_flashback_retention_target 1440
db_recovery_file_dest +RECOVERY
db_recovery_file_dest_size 104857600
recovery_parallelism 0
--启动其它节点,并查看是否设置成功
SQL> select name,current_scn,flashback_on from v$database;
NAME CURRENT_SCN FLASHBACK_ON
--------- ----------- ------------------
ORARAC 956458 YES
--查看闪回日志
ASMCMD> pwd
+Recovery/orarac/flashback
ASMCMD> ls -ltr
Type Redund Striped Time Sys Name
FLASHBACK MIRROR FINE 11? 06 10:00:00 Y log_1.256.766492023
FLASHBACK MIRROR FINE 11? 06 10:00:00 Y log_2.257.766492493