歸檔重做日志archived log (明顯) 比redo log重做日志文件小

歸檔重做日志 (明顯) 比重做日志文件小。 (文檔 ID 1356604.1)

日志切換將由于以下原因發生:

1. 由于在重做日志文件已滿之前強制創建存檔而記錄和設計的行為

  1. SQL> alter system switch logfile;
  2. SQL> alter system archive log current;
  3. RMAN> backup archivelog all;
  4. RMAN> backup database plus archivelog;
  5. ARCHIVE_LAG_TARGET?: limits the amount of data that can be lost and effectively increases the availability of the standby database by forcing a log switch after the specified amount of time elapses. you can see this aswell in RAC with an idle/low-load instance. ADG下定期自動切換

2. 未記錄但設計好的行為:

  1. BUG 9272059?- 由于 CMT CPU,重做日志切換大小為 1/8
  2. BUG 10354739?- REDOLOGSIZE 未完全使用
  3. BUG 12317474?- 頻繁重做日志切換生成小型存檔日志?
  4. BUG 5450861?- 生成的存檔日志比重做日志文件小
  5. BUG 7016254?- 減少日志切換時控制文件入隊等待時間
  6. BUG 29221745?- 刪除由代理發起的日志切換

解釋 :

根據Bug: 5450861?(已關閉為“非 Bug”):

* 存檔日志的大小不必相等。這是很久以前就決定的,當時停止了存檔日志的空白填充,理由很充分 - 為了節省磁盤空間。
* The archive logs do not have to be even in size. This was decided a very long time ago,when blank padding the archive logs was stopped, for a very good reason - in order to save disk space.redo 沒有用滿的話不會寫入archived log?

* 當重做日志文件已 100% 滿時,不會發生日志切換。有一個內部算法可以確定日志切換時刻。這也有一個很好的理由 - 在最后一刻進行日志切換可能會導致性能問題(出于各種原因,超出了本文的范圍)。因此,在發生日志切換后,歸檔程序只會從重做日志文件中復制實際信息。由于日志切換后重做日志并非 100% 滿,并且復制操作完成后存檔日志未填充空白,因此會導致文件比原始重做日志文件不均勻且更小。

* The log switch does not occur when a redo log file is 100% full. There is an internal algorithm that determines the log switch moment. This also has a very good reason - doing the log switch at the last moment could incur performance problems (for various reasons, out of the scope of this note). As a result, after the log switch occurs, the archivers are copying only the actual information from the redo log files. Since the redo logs are not 100% full after the log switch and the archive logs are not blank padded after the copy operation has finished, this results in uneven, smaller files than the original redo log files.

有許多因素共同決定了日志切換頻率。以下是本例中最相關的因素:


a) RDBMS 參數 LOG_BUFFER_SIZE

如果 DBA 沒有明確設置,則我們使用默認值;在實例啟動時,RDBMS 將共享重做線程數計算為 ncpus/16,每個線程的大小為 128Kb * ncpus(其中 ncpus 是系統中的 CPU 數量)。日志緩沖區大小是線程數乘以線程大小。計算或指定的大小四舍五入為 SGA 中內存段粒度的倍數。對于 11.2,如果
SGA 大小 >= 128GB,則顆粒大小為 512MB
64GB <= SGA 大小 < 128GB,則顆粒大小為 256MB
32GB <= SGA 大小 < 64GB,則顆粒大小為 128MB
16GB <= SGA 大小 < 32GB,則顆粒大小為 64MB
8GB <= SGA 大小 < 16GB,則顆粒大小為 32MB
1GB <= SGA 大小 < 8GB,則顆粒大小為 16MB
SGA 大小 < 1GB,則顆粒大小為 4MB
有一些強制執行的最低限度和最高限度。


b) 系統負載
STRAND翻譯:線, (線、繩等的)縷,股

最初只使用一個重做 strand,即“活動”重做 strand 的數量為 1,所有進程將其重做復制到該 strand 中。當/如果對該 strand 存在爭用,則活動重做 strand 的數量將增加到 2。隨著對活動 strand 的爭用增加,活動 strand 的數量也會增加。活動重做 strand 的最大可能數量是日志緩沖區中最初分配的 strand 數量。(此功能稱為“動態 strand”,有一個隱藏參數可以禁用它,然后允許進程從一開始就使用所有 strand)。
?


c) 日志文件大小

這是 DBA 在創建日志文件時決定的日志文件大小。


d) 日志文件空間預留算法

當 RDBMS 切換到新的聯機重做日志文件時,所有日志緩沖區重做線程內存都會“映射”到日志文件空間( 此功能稱為“動態 strand”,有一個隱藏參數可以禁用它,然后允許進程從一開始就使用所有 strand,? ? 這樣的話就不會有用不滿的情況了)。如果日志文件大于日志緩沖區,則每個線程將映射/保留其線程大小的日志文件空間,剩余的日志文件空間(“日志殘留”)仍然可用。如果日志文件小于日志緩沖區,則整個日志文件空間在所有線程之間 平均分配/映射/保留,并且沒有未保留的空間(即沒有日志殘留)。當任何進程填充線程,使得該線程的所有保留的底層日志文件空間都被使用,并且沒有日志殘留時,將安排日志切換。

示例:128 個 CPU,因此 RDBMS 分配一個大小為 128Mb 的 log_buffer,其中包含 8 個大小為 16Mb 的共享線程。它可能比 128Mb 稍大,因為它四舍五入到 SGA 粒度邊界。日志文件為 100Mb,因此當 RDBMS 切換到新的在線重做日志文件時,每個 strand 會保留 100Mb/8 = 25600 ( 12.5MB=12.5*1024*1024B/512B(redo 塊大小就是512B,datafile blocksize默認8k)=25600)個塊,并且沒有日志殘留。如果系統負載較低,則只有一個重做 strand 處于活動狀態/使用狀態,當該 strand 中的 25600 個塊已滿時,將安排日志切換 - 創建的存檔日志的大小約為 25600 個塊。
在實例啟動時,RDBMS 將共享重做線程數計算為 ncpus/16,每個線程的大小為 128Kb * ncpus(其中 ncpus 是系統中的 CPU 數量)。日志緩沖區大小是線程數乘以線程大小。 128/16=8? 128*128=16384=16MB? ? ? ?log buffer=? 8*16=128MB


在其他所有條件保持不變(128 個 CPU 和低負載)的情況下,使用更大的日志文件不會真正減少請求日志切換時未填充空間的數量,但它會使未填充空間占總日志文件空間的百分比降低,例如

- 對于 100Mb 的日志文件,日志切換發生在 7 x 16Mb=112MB 日志文件空間未填充的情況下(即,請求日志切換時日志文件已滿 10%) 這里錯了應該是7*100/8吧,反正是1/8

- 對于 1Gb 的日志文件,日志切換將在 7 x 16Mb 日志文件空間未填充的情況下發生(即,請求日志切換時日志文件已滿 90%)
1GB的情況下 初次映射了8*16MB,只有一個16MB在不停的增加,所以
1000MB/16MB=62.5 個有7個是不能用的,所以總共損失了 62.5-7/62.5= 88%
如果 CPU_COUNT 較高、負載較低且重做日志文件大小小于重做日志緩沖區,您可能會看到較小的歸檔日志文件,因為日志切換的大小約為定義日志文件大小的 1/8。這是因為 CPU_COUNT 定義了重做線程的數量 (ncpus/16)。如果負載較低,則只能使用單個線程。如果重做日志文件大小小于重做日志緩沖區,則日志文件空間將劃分為可用線程。例如,當僅使用單個活動線程時,當該線程已滿時,日志切換可能已經發生。
(最初只使用一個重做 strand,即“活動”重做 strand 的數量為 1,所有進程將其重做復制到該 strand 中。當/如果對該 strand 存在爭用,則活動重做 strand 的數量將增加到 2。隨著對活動 strand 的爭用增加,活動 strand 的數量也會增加。活動重做 strand 的最大可能數量是日志緩沖區中最初分配的 strand 數量。(此功能稱為“動態 strand”,有一個隱藏參數可以禁用它,然后允許進程從一開始就使用所有 strand)。)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/899446.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/899446.shtml
英文地址,請注明出處:http://en.pswp.cn/news/899446.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

645.錯誤的集合

import java.util.HashMap; import java.util.Map;/*** program: Test* description: 645 錯誤的集合* author: gyf* create: 2025-03-23 10:22**/ public class Test {public static void main(String[] args) {}public static int[] findErrorNums(int[] nums) {int[] arr n…

力扣刷題494. 目標和

494. 目標和 - 力扣&#xff08;LeetCode&#xff09; 方法一&#xff0c;暴力dfs 直接進行深搜查找出所有的情況&#xff0c;缺點嚴重超時&#xff0c;只能過20個案例 留一下超時的 class Solution {//首先定義全局變量int[] abs { 1, -1 }; //用來記錄當前遍歷的數的正…

一周學會Flask3 Python Web開發-SQLAlchemy數據遷移migrate

鋒哥原創的Flask3 Python Web開發 Flask3視頻教程&#xff1a; 2025版 Flask3 Python web開發 視頻教程(無廢話版) 玩命更新中~_嗶哩嗶哩_bilibili 模型類(表)不是一成不變的&#xff0c;當你添加了新的模型類&#xff0c;或是在模型類中添加了新的字段&#xff0c;甚至是修改…

Python練習之抽獎界面

前言 一、代碼整體架構分析 1、數據層 (Model) 2、控制層 (Controller) 3、視圖層 (View) 二、核心功能實現詳解 1、 文件導入功能 1.1、實現邏輯 1.2、代碼涉及知識點講解 1.2.1、wildcard 1.2.2、wx.FileDialog 1.2.3、dlg.ShowModal() 2、抽獎動畫控制 1.1、…

【云原生】docker 搭建單機PostgreSQL操作詳解

目錄 一、前言 二、前置準備 2.1 服務器環境 2.2 docker環境 三、docker安裝PostgreSQL過程 3.1 獲取PostgreSQL鏡像 3.2 啟動容器 3.2.1 創建數據卷目錄 3.2.2 啟動pg容器 3.3 客戶端測試連接數據庫 四、創建數據庫與授權 4.1 進入PG容器 4.2 PG常用操作命令 4.2…

算法為舟 思想為楫:AI時代,創作何為?

在科技浪潮洶涌澎湃的當下,AI技術以前所未有的態勢席卷各個領域,創作領域亦未能幸免。當生成式AI展現出在劇本撰寫、詩歌創作、圖像設計等方面的驚人能力時,人類創作者仿佛置身于文明演化的十字路口,迷茫與困惑交織,興奮與擔憂并存。在AI時代,創作究竟該何去何從?這不僅…

JAVA的內存圖理解

目錄 一、方法區1、類常量池2、靜態常量池3、方法區過程 二、棧三、堆1、字符常量池2、堆內存圖的繪制 java中內存可以分為 方法區、 堆、 棧、 程序計數器、 本地方法棧&#xff0c;其中比較中重要的是方法區、堆、棧。 一、方法區 1.方法區&#xff08;Method Area&…

基于Selenium的IEEE Xplore論文數據爬取實戰指南

基于Selenium的IEEE Xplore論文數據爬取實戰指南 一、項目背景與目標 IEEE Xplore作為全球知名的學術資源平臺,收錄了大量高質量科技文獻。本教程將演示如何通過Python的Selenium庫實現: 自動化獲取指定領域論文列表(以"構音障礙"為例)完整提取論文標題、摘要、…

軟件工程面試題(十二)

1、文件和目錄(i/o)操作,怎么列出某目錄下所有文件?某目錄下所有子目錄,怎么判斷文件或目錄是否存在?如何讀寫文件? 列出某目錄下所有文件:調用listFile(),然后判斷每個File對象是否是文件可以調用 isFile(),判斷是否是文件夾可以調用isDirectory(),判斷文件或目…

醫療CMS高效管理:簡化更新維護流程

內容概要 醫療行業內容管理系統&#xff08;CMS&#xff09;的核心價值在于應對醫療信息管理的多維復雜性。面對診療指南的動態更新、科研數據的快速迭代以及多機構協作需求&#xff0c;傳統管理模式往往面臨效率瓶頸與合規風險。現代化醫療CMS通過構建結構化權限管理矩陣&…

談談Minor GC、Major GC和Full GC

目錄 一、背景 二、三者之間的區分 1、Minor GC 2、Major GC &#xff08;1&#xff09;老年代空間不足&#xff1a; &#xff08;2&#xff09;晉升&#xff08;Promotion&#xff09;失敗&#xff1a; &#xff08;3&#xff09;空間分配擔保失敗&#xff1a; &#x…

C盤清理技巧分享:PE Dism++ 空間清理篇

C盤清理技巧分享&#xff1a;PE & Dism 空間清理篇 C盤空間不足是許多用戶面臨的常見問題&#xff0c;尤其是在使用 Windows 系統時。本文將重點介紹如何使用 PE&#xff08;Preinstallation Environment&#xff09;和 Dism 工具高效清理 C盤空間&#xff0c;釋放寶貴的存…

低功耗LPWAN模塊開發指南:遠距離無線通信與邊緣計算融合實戰?

在遠程資產追蹤、野外環境監測等場景中&#xff0c;穩定可靠的長距離通信與超低功耗是系統設計的核心挑戰。eFish-SBC-RK3576通過 ?原生雙UART接口 USB OTG擴展能力? &#xff0c;可無縫集成主流LPWAN模組&#xff08;LoRa/NB-IoT&#xff09;&#xff0c;實現“數據采集-邊…

迅為iTOP-RK3576人工智能開發板Android 系統接口功能測試

2.1 開機啟動 開發板接通電源&#xff0c;并按下電源開關&#xff0c;系統即啟動&#xff0c;在啟動過程中&#xff0c;系統會顯示下圖中的開機畫面&#xff0c;它們分別是 Android 系統啟動時的 Logo 畫面&#xff1a; 最后會顯示如下解鎖畫面&#xff1a; 2.2 命令終端 將…

RAG基建之PDF解析的“無OCR”魔法之旅

PDF文件轉換成其他格式常常是個大難題,大量的信息被鎖在PDF里,AI應用無法直接訪問。如果能把PDF文件或其對應的圖像轉換成結構化或半結構化的機器可讀格式,那就能大大緩解這個問題,同時也能顯著增強人工智能應用的知識庫。 嘿,各位AI探險家們!今天我們將踏上了一段奇妙的…

二層框架組合實驗

實驗要求&#xff1a; 1,內網IP地址使用172.16.0.0/16分配 2,SW1和sw2之間互為備份 3,VRRP/STP/VLAN/Eth-trunk均使用 4,所有PC均通過DHCP獲取IP地址 5,ISP只能配置IP地址 6,所有電腦可以正常訪問ISP路由器環回 實驗思路順序&#xff1a; 創建vlan eth-trunk 劃分v…

光纖耦合器

以下是關于光纖耦合器的詳細介紹&#xff1a; 定義與原理 - 定義&#xff1a;光纖耦合器是一種能使傳輸中的光信號在特殊結構的耦合區發生耦合&#xff0c;并進行再分配的器件&#xff0c;也叫分歧器、連接器、適配器、光纖法蘭盤。 - 原理&#xff1a;利用不同光纖面緊鄰光纖芯…

惠普(HP)和聯想(Lenovo)作為全球兩大電腦品牌,并不是簡單的“拼接電腦”

惠普&#xff08;HP&#xff09;和聯想&#xff08;Lenovo&#xff09;作為全球兩大電腦品牌&#xff0c;并不是簡單的“拼接電腦”&#xff0c;它們都有自己的核心技術、專利設計和生態體系。以下是它們“自己的”核心部分&#xff1a; 1. 關鍵自研技術 品牌自研技術/專利說明…

若依賴前端處理后端返回的錯誤狀態碼

【背景】 后端新增加了一個過濾器&#xff0c;用來處理前端請求中的session 若依賴存放過濾器的目錄&#xff1a;RuoYi-Vue\ruoyi-framework\src\main\java\com\ruoyi\framework\security\filter\ 【問題】 后端返回了一個狀態碼為403的錯誤&#xff0c;現在前端需要處理這…

智能的數學公式:Intelligence = Priori knowledge * Reasoning ?

愛因斯坦的相對論公式大道至簡&#xff0c; 假如智能有公式的話&#xff0c;會不會是&#xff1a; 其中&#xff0c;兩個影響因子分別是先驗知識 和 推理能力&#xff0c;推理能力的指數部分可以是整數也是小數&#xff0c;但是暫時還不好確定。 解析&#xff1a;&#xff08…