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
繁體地址,請注明出處:http://hk.pswp.cn/news/909315.shtml
英文地址,請注明出處:http://en.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…