归档重做日志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.mzph.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…