铜陵商城网站建设,网站建设08,成都专业网站建设公司,行距网站小伙伴们有没有被各种存储路径满导致的业务崩#xff0c;半夜起来清理的经历。一不小心 FRA写满了#xff0c;导致了实例hang住。
OCM考试#xff0c;时不时就会冒出来这个直接给instance hang#xff0c;本就卡的环境中脑袋都卡壳、无从下手#xff0c;一脸懵直接崩。
…小伙伴们有没有被各种存储路径满导致的业务崩半夜起来清理的经历。一不小心 FRA写满了导致了实例hang住。
OCM考试时不时就会冒出来这个直接给instance hang本就卡的环境中脑袋都卡壳、无从下手一脸懵直接崩。
23ai flashback Log Placement解耦存储依赖重构性能瓶颈释放灵活性
一、Flashback发展演进
1. 之前的闪回日志的固定保存路径
在Oracle 23ai之前的版本19c/12c/11g等闪回日志Flashback Logs存在强耦合设计 存储位置强制绑定FRA闪回日志必须存储在DB_RECOVERY_FILE_DEST定义的FRA路径中空间竞争风险FRA同时存储归档日志、RMAN备份等空间不足时自动清理最早闪回日志导致保留周期不稳定FRA的存储空间的I/O速度决定了Log的写入速度 2. Oracle 23ai的架构革新Flashback Log Placement
23ai通过存储解耦与写入优化重构闪回架构 独立存储路径新增参数DB_FLASHBACK_LOG_DEST支持自定义闪回日志存储位置ASM/文件系统 空间隔离控制新增参数DB_FLASHBACK_LOG_DEST_SIZE设置独立空间配额默认0需显式配置 -- ASM磁盘组和文件路径
ALTER SYSTEM SET DB_FLASHBACK_LOG_DESTDATA_FRA scopeSPFILE;ALTER SYSTEM SET DB_FLASHBACK_LOG_DEST/opt/oracle/FB_FRA scopeSPFILE;ALTER SYSTEM SET DB_FLASHBACK_LOG_DEST_SIZE100G;
二、新特性技术解析参数与操作
1. 核心参数说明 可以单独设置独立的存储
1、可以设置到更快的磁盘中比如SSD
2、降低FRA的压力
3、提高FLASHBACK单独存储空间和FRA的性能。
4、三个参数可以动态设置RAC环境中所有的节点都要一致且在CDB$ROOT中设置 参数名称 作用 各种限制 DB_FLASHBACK_LOG_DEST 指定闪回日志独立存储路径 RAC所有实例需相同 DB_FLASHBACK_LOG_DEST_SIZE 设置闪回日志空间硬限制字节 必须 0 且早于_DEST设置 DB_FLASHBACK_RETENTION_TARGET 定义闪回可以保留的时间 默认1440需要按需设置
3. 查询视图
-- 闪回日志存储状态
-- 路径、空间使用率
SYSCDB$ROOT SELECT * FROM v$flashback_log_dest;NAME SPACE_LIMIT SPACE_USED NUMBER_OF_FILES CON_ID
_______ ______________ _____________ __________________ _________0 0 0-- 闪回窗口有效性 -- 可恢复的最早SCN
SELECT oldest_flashback_scn, retention_target FROM v$flashback_database_log;-- 性能指标
SELECT * FROM v$flashback_database_stat;
SYSCDB$ROOT SELECT * FROM v$flashback_database_stat;BEGIN_TIME END_TIME FLASHBACK_DATA DB_DATA REDO_DATA ESTIMATED_FLASHBACK_SIZE CON_ID
_____________ ____________ _________________ __________ ____________ ___________________________ _________
13-JUN-25 13-JUN-25 4038656 2383872 3918848 0 0
三、23ai 闪回日志独立存储配置脚本
-- 1. 关闭闪回日志需MOUNT状态
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER DATABASE FLASHBACK OFF; -- 关闭闪回-- 2. 配置独立存储路径与空间
ALTER SYSTEM SET DB_FLASHBACK_LOG_DEST_SIZE100G SCOPESPFILE;
ALTER SYSTEM SET DB_FLASHBACK_LOG_DESTDATA_FRA SCOPESPFILE;-- 3. 重新启用闪回
ALTER DATABASE FLASHBACK ON; -- 开启闪回
ALTER DATABASE OPEN;-----
--检查参数
SYSCDB$ROOT show parameter flashback;
NAME TYPE VALUE
----------------------------- ----------- -----
db_flashback_log_dest string
db_flashback_log_dest_size big integer 0
db_flashback_retention_target integer 1440
-- 步骤1启用归档模式必需前提
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER DATABASE ARCHIVELOG; -- 必须为归档模式
ALTER DATABASE OPEN;
--实操记录
SYSCDB$ROOT SHUTDOWN IMMEDIATE;
Database closed.
Database dismounted.
ORACLE instance shut down.
SYSCDB$ROOT STARTUP MOUNT;
ORACLE instance started.
Total System Global Area 1603287928 bytes
Fixed Size 4922232 bytes
Variable Size 872415232 bytes
Database Buffers 721420288 bytes
Redo Buffers 4530176 bytes
Database mounted.
SYSCDB$ROOT ALTER DATABASE ARCHIVELOG;
ALTER DATABASE ARCHIVELOG
SYSCDB$ROOT alter database open;Database altered.SYSCDB$ROOT SELECT LOG_MODE FROM V$DATABASE;LOG_MODE
_____________
ARCHIVELOGSYSCDB$ROOT
--
SYSCDB$ROOT alter system set db_recovery_file_dest_size50G scopeSPFILE;
System altered.
SYSCDB$ROOT alter system set db_recovery_file_dest/opt/oracle/DB_FRA scopeSPFILE;
System altered.
-- 步骤2关闭闪回并配置独立存储必须按顺序执行
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER DATABASE FLASHBACK OFF; -- 先关闭闪回
--SYSCDB$ROOT STARTUP MOUNT;
ORACLE instance started.Total System Global Area 1603287928 bytes
Fixed Size 4922232 bytes
Variable Size 620756992 bytes
Database Buffers 973078528 bytes
Redo Buffers 4530176 bytes
Database mounted.
SYSCDB$ROOT ALTER DATABASE FLASHBACK OFF;
Database altered.
--
-- 必须先设置_SIZE
ALTER SYSTEM SET DB_FLASHBACK_LOG_DEST_SIZE100G SCOPESPFILE;
-- 支持ASM/文件系统
ALTER SYSTEM SET DB_FLASHBACK_LOG_DESTDATA_FRA SCOPESPFILE;
ALTER SYSTEM SET DB_FLASHBACK_LOG_DEST/opt/oracle/FB_FRA SCOPESPFILE;
-- 重新启用闪回
ALTER DATABASE FLASHBACK ON;
SYSCDB$ROOT alter database flashback on;
Database altered.ALTER DATABASE OPEN;
SYSCDB$ROOT ALTER DATABASE OPEN;Database altered.
-- 步骤3验证配置
-- **23ai新增视图
SYSCDB$ROOT desc v$flashback_database_log;Name Null? Type
___________________________ ________ _________
OLDEST_FLASHBACK_SCN NUMBER
OLDEST_FLASHBACK_TIME DATE
RETENTION_TARGET NUMBER
FLASHBACK_SIZE NUMBER
ESTIMATED_FLASHBACK_SIZE NUMBER
CON_ID NUMBER
SYSCDB$ROOTSELECT * FROM v$flashback_database_log;
SYSCDB$ROOT SELECT * FROM v$flashback_database_log;OLDEST_FLASHBACK_SCN OLDEST_FLASHBACK_TIME RETENTION_TARGET FLASHBACK_SIZE ESTIMATED_FLASHBACK_SIZE CON_ID
_______________________ ________________________ ___________________ _________________ ___________________________ _________3294212 13-JUN-25 1440 419430400 0 0
-- 确认闪回状态和归档模式
SELECT flashback_on, log_mode FROM v$database;
SYSCDB$ROOT SELECT flashback_on, log_mode FROM v$database;FLASHBACK_ON LOG_MODE
_______________ _____________
YES ARCHIVELOG
SYSCDB$ROOT show parameter db_flashback;
NAME TYPE VALUE
----------------------------- ----------- ------------------
db_flashback_log_dest string /opt/oracle/FB_FRA
db_flashback_log_dest_size big integer 100G
db_flashback_retention_target integer 1440
SYSCDB$ROOT
四、关键约束点
设置flashback DEST和开启flashback之前必须开启归档这个大家都知道了
1、参数设置顺序强制约束 - 必须 **先设置 DB_FLASHBACK_LOG_DEST_SIZE** 再设置 DB_FLASHBACK_LOG_DEST否则报错。空间配额是路径生效的前提条件必须先设定db_recovery_file_dest_size和db_recovery_file_dest ORA-02097: parameter cannot be modified because specified value is invalidORA-38706: Cannot turn on FLASHBACK DATABASE logging.
ORA-38709: Recovery Area is not enabled.2、RAC环境特殊要求
-- RAC中所有实例配置必须一致
ALTER SYSTEM SET DB_FLASHBACK_LOG_DEST_SIZE100G SCOPESPFILE SID*;
ALTER SYSTEM SET DB_FLASHBACK_LOG_DESTDATA_FRA SCOPESPFILE SID*; 3、空间计算公式所需空间日均数据变化量×保留天数×1.5 计算示例日增量50GB × 7天保留期 × 1.5 525GB 五、与从前设置的差异
技术本质从 “FRA附属日志” 到 “一级恢复基础设施” 的定位跃迁 参数 19c及之前版本 Oracle 23ai 存储路径 强制使用FRA 独立路径ASM/文件系统/云 空间管理 与归档日志竞争可能占满 专用配额严格保留策略 高可用影响 FRA满导致数据库挂起 独立存储故障隔离 多路径支持 不支持 本地云多路径自动负载均衡 RAC配置 实例级参数可不同 所有实例必须相同