Oracle闪回日志管理(flashbackup log)
1.开启闪回日志
shutdown immediate
startup mount;
alter database archivelog;
alter database flashback on;
alter database open;
2、查看闪回日志保留期限
show parameter flash
默认是1440分钟,即保留一天。但是Oracle会尽可能多的保留闪回日志。具体保留多少还需要结合闪回区大小的配置。
尝试把参数调整到720分钟,闪回日志保留的时间也会超过1440分钟都不删除。
根据连续2天的观察,当闪回日志保留时间修改到720分钟的时候,闪回日志的保留基本上保持在1440分钟之前的数据。这么推算的话,也就是说实际保留下来的闪回日志约是保留时间的2倍。
查看当前闪回日志的大小,数据库记录和实际文件系统系统保存的都是50GB。
select oldest_flashback_scn,
to_char(oldest_flashback_time,'yyyy-mm-dd hh24:mi:ss') old_ftime,retention_target,
round(flashback_size/1024/1024/1024,2) flashback_size_GB,
round(estimated_flashback_size/1024/1024/1024,2) estimated_flashback_size_GB from v$flashback_database_log
V$FLASHBACK_DATABASE_LOG
显示闪回数据的信息,用来评估当前负载下需要的闪回空间
v$flashback_database_log
Name Description
------------------------------ --------------------------
OLDEST_FLASHBACK_SCN Lowest system change number (SCN) in the flashback data, for any incarnation
闪回数据最小的scn
OLDEST_FLASHBACK_TIME Time of the lowest SCN in the flashback data, for any incarnation
闪回数据最小的时间
RETENTION_TARGET Target retention time (in minutes)
闪回保留时间
FLASHBACK_SIZE Current size (in bytes) of the flashback data
闪回数据大小
ESTIMATED_FLASHBACK_SIZE Estimated size of flashback data needed for the current target retention
评估满足当前闪回保留时间,需要的闪回空间的大小
根据Oracle的文档说明
FLASH RECOVERY AREA and FLASHBACK database ( Doc ID 369759.1 )
FRA: Flashback logs are not being deleted when space is needed for archive logs ( Doc ID 1481739.1 )
FRA的闪回日志只能通过数据库自动管理。用户只需要关心空间问题。怎么看着有点恶心呢。。就不能像归档日志那样手工清理,只有在遇到空间压力的时候才会自动清理,但是这个时候清理闪回日志的速度是特别慢的,只会一点点清理,然后归档日志又比较快的情况下,就会导致归档失败,影响应用程序。
Oracle automatically creates, deletes, and resizes Flashback logs in the flash recovery area.
You only need to be aware of Flashback logs for monitoring performance and deciding how much disk space to allocate to
the flash recovery area for Flashback logs.
3、查看闪回日志的保留时长
alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') as systemdate,
to_char(min(first_time),'yyyy-mm-dd hh24:mi:ss') as fdate,(sysdate-min(first_time))*24*60 as durtion
from v$flashback_database_logfile;
4、根据1481739.1的说明,只有当FRA出现空间压力的时候才会清理,实际上这个时候很多数据库已经出现了hang或者应用程序不可用的情况了。突然感觉这个功能好鸡肋。。