FRA最小可用空间需覆盖未备份归档日志、最近一次全备及闪回日志三类文件;估算须结合每小时归档生成量、单个归档大小、RMAN保留策略天数及DB_FLASHBACK_RETENTION_TARGET设定。
FRA空间不足是ORA-00257报错最常见原因,不是配了就能用,得按实际归档量和备份策略来算大小。
闪回恢复区(FRA)不是越大越好,但必须能撑住“未被备份的归档日志 + 最近一次全备 + 闪回日志”这三类文件。低于这个底线,ORA-00257随时会触发。
SELECT TRUNC(FIRST_TIME,'HH') AS HOUR, COUNT(*) AS LOG_COUNT FROM V$ARCHIVED_LOG WHERE FIRST_TIME > SYSDATE-1 GROUP BY TRUNC(FIRST_TIME,'HH') ORDER BY 1; —— 看每小时平均生成多少个归档日志SELECT MAX(BLOCKS*BLOCK_SIZE) FROM V$ARCHIVED_LOG WHERE FIRST_TIME > SYSDATE-1; —— 结合上一步可估算每小时归档体积CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;,意味着FRA至少要存下7天内所有归档 + 对应的备份集FLASHBACK DATABASE,默认会占用FRA的20%左右,可通过DB_FLASHBACK_RETENTION_TARGET控制时长(单位秒),但实际占用由写入压力决定这不是性能问题,是单点故障风险。FRA本质是“恢复用的临时仓库”,如果和DATAFILE、REDO LOG共用同一块物理磁盘,一旦该盘损坏,连恢复所需的归档日志都丢了——等于备份和原件一起报废。
+FRA),或独立挂载的文件系统(如/u02/fast_recovery_area)/u01/oradata/DBNAME(和数据文件同根)、/u01/app/oracle/product(和软件目录混用)oracle)对FRA路径要有读写执行权限,否则ALTER SYSTEM ARCHIVE LOG CURRENT会失败FRA空间自动回收依赖RMAN的DELETE OBSOLETE或DELETE ARCHIVELOG行为,不是“备份完就删”。常见卡点在配置和执行时机。
SHOW ALL; 查看RETENTION POLICY是否为TO RECOVERY WINDOW OF N DAYS或REDUNDANCY M
SHOW ARCHIVELOG DELETION POLICY; —— 如果返回NONE,说明即使备份成功,归档也不会被标记为可删DELETE ARCHIVELOG UNTIL TIME 'SYSDATE-2';(慎用),再看V$RECOVERY_FILE_DEST中SPACE_USED是否下降BACKUP ARCHIVELOG,策略不触发不需要重启数据库,但有严格顺序限制,且部分操作需MOUNT状态。
DB_RECOVERY_FILE_DEST_SIZE):在线执行即可,ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE=100G;
DB_RECOVERY_FILE_DEST):必须数据库处于MOUNT状态,ALTER SYSTEM SET DB_RECOVERY_FILE_DEST='/new/path' SCOPE=BOTH;,然后ALTER DATABASE OPEN;
rm -rf,要用RMAN:DELETE NOPROMPT OBSOLETE; 或 CROSSCHECK ARCHIVELOG ALL; DELETE EXPIRED ARCHIVELOG ALL;
SELECT NUMBER_OF_FILES, SPACE_LIMIT, SPACE_USED, SPACE_RECLAIMABLE FROM V$RECOVERY_FILE_DEST; —— SPACE_RECLAIMABLE非零才说明有可回收空间真正容易被忽略的是归档日志的“双重生命周期”:它既要满足RMAN保留策略,又要满足Data Guard备库的接收进度(比如ARCHIVE_LAG_TARGET或LOG_ARCHIVE_DEST_n的DELAY参数)。哪怕RMAN认为该删,只要备库还没应用,FRA就不会释放——这点在DG环境中常被漏查。