29-Oracle 23ai Flashback Log Placement(闪回日志灵活配置)

小伙伴们有没有被各种存储路径满导致的业务崩,半夜起来清理的经历。一不小心 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_DEST='+DATA_FRA' scope=SPFILE;ALTER SYSTEM SET DB_FLASHBACK_LOG_DEST='/opt/oracle/FB_FRA' scope=SPFILE;ALTER SYSTEM SET DB_FLASHBACK_LOG_DEST_SIZE=100G;

二、新特性技术解析:参数与操作

​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. 查询视图

-- 闪回日志存储状态
-- 路径、空间使用率
SYS@CDB$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;
SYS@CDB$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_SIZE=100G SCOPE=SPFILE;
ALTER SYSTEM SET DB_FLASHBACK_LOG_DEST='+DATA_FRA' SCOPE=SPFILE;-- 3. 重新启用闪回
ALTER DATABASE FLASHBACK ON;  -- 开启闪回
ALTER DATABASE OPEN;-----
--检查参数
SYS@CDB$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;
--实操记录
SYS@CDB$ROOT> SHUTDOWN IMMEDIATE;
Database closed.
Database dismounted.
ORACLE instance shut down.
SYS@CDB$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.
SYS@CDB$ROOT> ALTER DATABASE ARCHIVELOG;
ALTER DATABASE ARCHIVELOG
SYS@CDB$ROOT> alter database open;Database altered.SYS@CDB$ROOT> SELECT LOG_MODE FROM V$DATABASE;LOG_MODE
_____________
ARCHIVELOGSYS@CDB$ROOT>
--
SYS@CDB$ROOT> alter system set db_recovery_file_dest_size=50G scope=SPFILE;
System altered.
SYS@CDB$ROOT> alter system set db_recovery_file_dest='/opt/oracle/DB_FRA' scope=SPFILE;
System altered.
-- 步骤2:关闭闪回并配置独立存储(必须按顺序执行)
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER DATABASE FLASHBACK OFF;       -- 先关闭闪回
--SYS@CDB$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.
SYS@CDB$ROOT> ALTER DATABASE FLASHBACK OFF;
Database altered.
--
-- 必须先设置_SIZE
ALTER SYSTEM SET DB_FLASHBACK_LOG_DEST_SIZE=100G SCOPE=SPFILE;
-- 支持ASM/文件系统
ALTER SYSTEM SET DB_FLASHBACK_LOG_DEST='+DATA_FRA' SCOPE=SPFILE;
ALTER SYSTEM SET DB_FLASHBACK_LOG_DEST='/opt/oracle/FB_FRA' SCOPE=SPFILE;
-- 重新启用闪回
ALTER DATABASE FLASHBACK ON;
SYS@CDB$ROOT> alter database flashback on;
Database altered.ALTER DATABASE OPEN;
SYS@CDB$ROOT> ALTER DATABASE OPEN;Database altered.
-- 步骤3:验证配置
-- **23ai新增视图
SYS@CDB$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
SYS@CDB$ROOT>SELECT * FROM v$flashback_database_log;
SYS@CDB$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;
SYS@CDB$ROOT> SELECT flashback_on, log_mode FROM v$database;FLASHBACK_ON    LOG_MODE
_______________ _____________
YES             ARCHIVELOG
SYS@CDB$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
SYS@CDB$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_SIZE=100G SCOPE=SPFILE SID='*';
ALTER SYSTEM SET DB_FLASHBACK_LOG_DEST='+DATA_FRA' SCOPE=SPFILE SID='*';
3、空间计算公式​所需空间=日均数据变化量×保留天数×1.5
  • 计算示例:日增量50GB × 7天保留期 × 1.5 = ​525GB

五、与从前设置的差异

技术本质​:从 ​​“FRA附属日志”​​ 到 ​​“一级恢复基础设施”​​ 的定位跃迁

​参数

​19c及之前版本​

​Oracle 23ai​

​存储路径​

强制使用FRA

独立路径(ASM/文件系统/云)

​空间管理​

与归档日志竞争,可能占满

专用配额,严格保留策略

​高可用影响​

FRA满导致数据库挂起

独立存储,故障隔离

​多路径支持​

不支持

本地+云多路径自动负载均衡

​RAC配置​

实例级参数可不同

所有实例必须相同

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/news/909315.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

React表单处理:如何获取输入框(input)的值?(受控组件)

系列回顾&#xff1a; 在前面的文章中&#xff0c;我们已经掌握了State、Props、事件处理、列表渲染和条件渲染。我们的应用已经能展示动态内容并响应用户的点击。现在&#xff0c;我们要 tackling 一个非常常见的需求&#xff1a;如何获取用户在表单输入框&#xff08;<inp…

探索现代 Web 开发:从 HTML5 到 Vue.js 的全栈之旅

在当今快速发展的互联网时代&#xff0c;Web 开发已经成为构建数字世界的重要基石。无论是企业级应用、社交媒体平台&#xff0c;还是个人博客和电商平台&#xff0c;Web 技术都在背后默默支撑着这些系统的运行。随着前端技术的不断演进&#xff0c;开发者们已经不再局限于传统…

ElasticSearch聚合查询从15秒到1.2秒的深度优化实践

一、问题背景 在金融风控场景中,我们需要对90天内的交易数据进行多维度聚合分析(按风险等级、地区、金额分段等)。随着数据量增长到日均3000万+记录,原有查询响应时间逐渐恶化至15秒以上,严重影响了业务决策效率。 二、原始架构性能分析 1. 集群拓扑 # 原单节点配置 N…

2025.06.09【读书笔记】|PromptBio:让生信分析更简单的AI平台

文章目录 一、PromptBio 是什么&#xff1f;二、主要功能介绍1. 对话式智能体&#xff0c;像聊天一样做分析2. 自动化工作流&#xff0c;省时省力3. 数据管理一站式搞定4. 机器学习也能一键搞定5. “无代码”到“全代码”&#xff0c;人人都能用 三、适合哪些人用&#xff1f;四…

实战解析:如何用克魔(KeyMob)等工具构建iOS应用稳定性与数据可观测体系

在iOS开发项目逐渐走向复杂化的今天&#xff0c;团队对“可观测性”的要求正不断提升。开发者不仅要知道App是否运行正常&#xff0c;更要明确“为什么异常、在哪里异常、是否可复现”。传统的调试工具往往侧重单一维度&#xff0c;要么是资源监控、要么是日志分析&#xff0c;…

如何轻松实现多源混算报表

报表作为综合业务&#xff0c;数据来源多种多样。传统实现多源混合查询报表要通过 ETL 将数据同库&#xff0c;但这种方式数据时效性太差使用场景受限。通过逻辑数仓能获得较强的数据实时性&#xff0c;但体系又过于沉重&#xff0c;为报表业务搭建逻辑数仓有点得不偿失。需要一…

Docker|简单入门

文章目录 Docker简介Docker和虚拟机的联系和区别基本原理和概念镜像容器仓库 Docker安装配置容器化和Dockerfile实践环节Docker Compose Docker简介 Docker是一个用于构建build、运行run、传送share应用程序的平台&#xff0c;可以把应用程序打包成一个个的集装箱&#xff0c;…

阿里云云原生数据库PolarDB和普通云数据库的区别?

文章目录 前言一、云数据库的演进&#xff1a;从“托管”到“原生”的跨越二、PolarDB的核心创新&#xff1a;重新定义云数据库的能力边界1. 存算分离架构&#xff1a;打破资源绑定的“枷锁”2. 多模引擎与兼容生态&#xff1a;降低应用迁移成本3. 智能化运维&#xff1a;让数据…

SNN学习(4):真实的生物神经学中神经元和人脑结构学习

目录 一、基础知识 1 简单神经元回路中的信号运作 2 高级功能相关的复杂神经元回路 3 细胞体、树突和轴突 3.1 神经元细胞 3.2 非神经元细胞 3.3 神经胶质细胞 3.4 神经细胞的信号传递 3.4.1 动作电位的特性 3.4.2 兴奋和抑制 3.4.3 电传递 二、大脑皮层及视觉系统…

第六天 界面操作及美化(6.1 建立菜单及异步调用)

6.1 建立菜单及异步调用 在程序中&#xff0c;菜单&#xff08;Menu&#xff09;是一种常见的用户界面元素&#xff0c;在程序中起到了组织功能、提高用户体验、提供快捷方式和帮助文档等重要作用。通过合理使用菜单&#xff0c;可以使程序的功能更加清晰、操作更加便捷&#…

论文解析:一文弄懂ResNet(图像识别分类、目标检测)

目录 一、相关资源 二、Motivation 三、技术细节 1.残差学习过程 2.快捷连接类型 (1)Identity Shortcuts&#xff08;恒等捷径&#xff09; (2)Projection Shortcuts&#xff08;投影捷径&#xff09; (3)两种捷径对比 3.深层瓶颈结构Deeper Bottleneck Architectures…

动态规划算法的欢乐密码(二):路径问题

专栏&#xff1a;算法的魔法世界 个人主页&#xff1a;手握风云 一、例题讲解 1.1. 不同路径 题目要求是计算从网格的左上角&#xff08;起点&#xff09;到右下角&#xff08;终点&#xff09;的所有不同路径的数量。机器人每次只能向下或向右移动一步。如下图所示&#xff0…

嵌入式相关开源项目、库、资料------持续更新中

嵌入式相关开源项目、库、资料------持续更新中 学习初期最难找的就是找学习资料了&#xff0c;本贴精心汇总了一些嵌入式相关资源&#xff0c;包括但不限于编程语言、单片机、开源项目、物联网、操作系统、Linux、计算机等资源&#xff0c;并且在不断地更新中&#xff0c;致力…

图像处理与机器学习项目:特征提取、PCA与分类器评估

图像处理与机器学习项目:特征提取、PCA与分类器评估 项目概述 本项目将完成一个完整的图像处理与机器学习流程,包括数据探索、特征提取、主成分分析(PCA)、分类器实现和评估五个关键步骤。我们将使用Python的OpenCV、scikit-learn和scikit-image库来处理图像数据并实现机器…

MATLAB | 如何使用MATLAB获取《Nature》全部绘图 (附23-25年图像)

文末有全部图片资源 我在两年前更过如何用 MATLAB 爬取 《Nature》全部插图&#xff0c;最近又有人问我有没有下载好的24&#xff0c;25年插图的压缩包&#xff0c;于是又去拿代码运行了一下&#xff0c;发现两年前写的代码今天居然还能用&#xff0c;代码如下&#xff1a; f…

中国老年健康调查(CLHLS)数据挖掘教程(1)--CLHLS简介和数据下载

北京大学“中国老年健康影响因素跟踪调查&#xff08;简称‘中国老年健康调查’&#xff1b;英文名称为Chinese Longitudinal Healthy Longevity Survey (CLHLS)&#xff09;”及交叉学科研究由国家自然科学基金委主任基金应急项目、重大项目、重点项目及国际合作项目。1998-20…

基本多线程编译make命令

背景&#xff1a; 在ffmpeg源码编译的时候要等很久&#xff0c;快下班了&#xff0c;等不及。 解决方法&#xff1a; 使用多线程编译。 make -j{n} 如&#xff1a; make -j8详解&#xff1a;&#xff08;没时间看的可以返回了&#xff01;&#xff09; 在编译 FFmpeg 时使用…

MNIST数据集上朴素贝叶斯分类器(MATLAB例)

MNIST数据集上朴素贝叶斯分类器 Naive Bayes Classification fitcnb Train multiclass naive Bayes model Syntax Mdl fitcnb(Tbl,ResponseVarName) Mdl fitcnb(Tbl,formula) Mdl fitcnb(Tbl,Y) Mdl fitcnb(X,Y) Mdl fitcnb(___,Name,Value) [Mdl,AggregateOptimization…

网站设计小技巧:利用交互设计提升用户体验

现在很多企业朋友都会感觉到&#xff0c;做网站设计掌握不好设计网页的魂&#xff0c;换了很多设计方式可能效果都不理想。蒙特网站专注高端网站建设20多年&#xff0c;基于为华为、字节跳动、海康威视等头部企业打造网站的经验&#xff0c;今天将近期用户比较喜欢的网页设计方…

Github指南-Add .gitignore和Choose a license

Add .gitignore&#xff08;添加忽略文件列表&#xff09; &#x1f4cc; 作用&#xff1a; .gitignore 文件用于告诉 Git 哪些文件或文件夹**不要被上传&#xff08;版本控制&#xff09;**&#xff0c;例如&#xff1a; 编译生成的临时文件&#xff08;如 .exe, .o&#x…