重做日志及归档日志的工作原理解析

简介: 开门见山,先来看张图(PS:这张图是我从网上找的):工作原理:首先lgwr进程将redo log buffer中的重做数据写入到redo log中,此时的redo log分组,每当一个redo log group写满时,或者发出switch logfile指令时都会触发日志组的切换,当发生日志组切换时,arc进程会将当前的重做日志数据写入归档日志。

开门见山,先来看张图(PS:这张图是我从网上找的):


wKiom1nlvunS7gcRAAJVzjFWZKc589.png

工作原理:

首先lgwr进程将redo log buffer中的重做数据写入到redo log中,此时的redo log分组,每当一个redo log group写满时,或者发出switch logfile指令时都会触发日志组的切换,当发生日志组切换时,arc进程会将当前的重做日志数据写入归档日志。

要知道,lgwr进程是将内存中的数据写入到重做日志文件,这是内存读磁盘写。而arc进程是将重做日志文件写入到归档文件,是磁盘读磁盘写。显然lgwr进程的读写效率或者读写速度比arc进程要快,而频繁发生DML操作的数据库中,可能会发生归档慢,而重做日志写入速度快的情况,这就会导致数据库被HANG住,此时数据库什么也不做就是等待arc进程将当前重做日志数据写入到归档文件。

这时候就要考虑启动更多的归档进程了,通过修改参数log_archive_max_processes来实现。

该参数是动态参数,直接修改即可。

① 查看当前该参数值

wKiom1nlw27DmoSWAAAVUsXeLTw500.png

很明显,当前最大归档进程数是4

② 修改归档最大进程数为5

wKioL1nlwtai-N_hAAAjX0hGV3E911.png

③ 通过命令验证一下

wKiom1nlxcqAuMNsAAA8sNQE_i8483.png


你看,就是这么简单!

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
11月前
|
数据库
数据库恢复技术
数据库恢复技术
100 0
|
存储 安全 数据库
LotusDB 设计与实现—2 WAL 日志
WAL 是 Write Ahead Log 的简称,通常叫做预写日志,是为了预防内存崩溃,保证数据不丢失的常用手段。WAL 是 LSM 存储模型中重要的组件,在 LotusDB 当中的重要性是一样的。
363 0
|
Oracle 关系型数据库 测试技术
一个不完全恢复的疑惑
最近讨论恢复的贴子好多,所以我也拿个出来讨论讨论,恢复的场景是:误操作删除表,并且控制文件也被损坏了,讨论只是为了彻底搞懂内部原量,避免下次犯同样的错误!
|
SQL Oracle 关系型数据库
归档模式redo丢失
归档模式redo丢失
1105 0
|
SQL Oracle NoSQL
非归档模式redo丢失情况处理
实验1: 非归档模式ACTIVE redo丢失。实验2: 非归档模式CURRENT redo 丢失。实验3: 非归档模式redo 多个member 丢失部分member.实验4: 非归档模式INACTIVE redo丢失。
1353 0