1 创建FRA磁盘组
create diskgroup FRA normal redundancy
failgroup qone1 disk
'/dev/qdata/local-VolGroup-redo'
failgroup qone2 disk
'/dev/qdata/mpath-s01.3267.01.redo'
attribute 'au_size'='1M',
'compatible.asm'='11.2.0.4',
'compatible.rdbms' = '11.2.0.4';
alter diskgroup FRA mount;
alter diskgroup FRA set attribute 'disk_repair_time'='24h';
2 配置FRA
db_recovery_file_dest:闪回恢复区的位置
db_recovery_file_dest_size:闪回恢复区的可用空间大小
db_flashback_retention_target:数据库可以回退的时间,单位为分钟,默认1440分钟(1天)
3 开启闪回
4 查看FRA使用情况
select * from v$flash_recovery_area_usage;
快速恢复区:Fast Recovery Area
- 数据库所有文件大小
- 增量备份的大小
- (n+1)天归档日志大小
- (y+1)天外部归档日志文件(逻辑备用数据库)
- 控制文件大小
- 联机重做日志文件大小 * 日志组数量
- 闪回日志大小(db_flashback_retion_targert)
5 测试闪回
6 关闭闪回
关闭闪回
置空dest
尝试闪回
尝试关闭闪回
闪回到还原点
闪回还原点restore point
select scn,name,guarantee_flashback_database,time from v$restore_point;
drop restore point BEFORE_20220324;
alter system reset db_recovery_file_dest_size;
全部置为空,db_recovery_file_dest_size参数需要重启生效
7 闪回空间满
select scn,name,guarantee_flashback_database,time from v$restore_point;
drop restore point BEFORE_20220325;
当你在Oracle数据库中删除闪回点时,实际空间可能没有立即释放的原因有以下几种可能性:
-
回滚段未被完全清除:Oracle在执行事务期间使用回滚段来保存旧版本的数据。当删除闪回点时,回滚段中的旧版本数据可能仍然存在。这些旧版本数据会占用空间,直到回滚段需要该空间来存储新的事务数据为止。可以通过执行
ALTER SYSTEM CHECKPOINT;
命令来尝试触发回滚段的清理。 -
闪回区域大小限制:Oracle数据库中的闪回区域是用于存储闪回日志的特殊区域。如果闪回区域的大小有限制,并且达到了最大容量,那么删除闪回点并不会立即释放空间。可以通过执行以下查询来检查闪回区域的大小和使用情况:
SELECT * FROM V$FLASH_RECOVERY_AREA_USAGE;
如果闪回区域已满,则需要调整相关参数或增加闪回区域的大小。
-
闪回日志文件还在使用:有时候,即使删除了闪回点,闪回日志文件也可能仍在使用,从而导致实际空间无法释放。可以通过执行以下查询来检查闪回