这篇文章是参考甲骨论老相老师的教学视频
http://v.youku.com/v_show/id_XMzk0NjYxNzgw.html
所做的学习笔记

作为1个DBA, 需要学习许多数据库知识, 但是目的无非两大部分.
1. 保持数据库数据的一致性
2. 优化数据库性能

而日志系统只对应第1点,日志系统就是用来保持数据的一致性的.

我们先回顾下之前讲过的sql语句执行流程

如上图.可以见到:
1. 产生日志的原因是Buffer cache里发生的数据改动.

2. buffer cache里数据改动产生的日志被写入Redo log buffer(日志缓存)里.
3. 后台进程LGWR会将redo log buffer里的日志写入到硬盘上的日志文件(物理IO)

而且之前我们讲过,Buffer cache是由许多个大小为1个block size 的buffer组成的. 所以buffer cache里的数据改动实际上就是buffer的改动.

从逻辑上看,我们可以假定Buffer cache存在一名记录者. 这名记录者可以实施地观察出buffer cache哪1个buffer被修改, 在那个时间点被修改, 并严格按照修改时间顺序把被修改的buffer的改动记录下来.''

如下图:

3. 并不关心buffer是被哪个session修改的      3. 并不关心buffer是被哪个session修改的

当然,实际上Database Buffer Cache中是不存在记录者这个东西的.
     不过这两个逻辑也让我们明白三点:

     1. 日志记录的单位是buffer.

     2. 严格按照buffer被修改的时间顺序来记录.
     3. 并不关心buffer是被哪个session修改的

从实际上看, buffer cache里的buffer是被server process修改的, 一旦server process修改了1个buffer里的数据, server process就同时生成重做日志数据,并放入与该server process对应的PGA中.  然后根据一些触发条件,会将PGA里的日志写入到SGA里面的redo log buffer中,  最后会被后台进程LGWR写入到日志文件中...

我们也可以分析出
      1. 对小量数据的多次修改可能会产生大量的日志数据.
      2. 大量的日志数据被写入到日志文件会占用大量IO资源

这一节,老相老师只提到这几个点,  他说以后讲优化数据库时会再详细讲..

Oracle 日志原理剖析相关推荐

  1. oracle 日志 性能,Oracle日志的性能介绍及原理剖析-Oracle

    Oracle日志的性能介绍及原理剖析 一)一致性和性能 日志是所有数据库的一个很核心的内容很重要 它关系到数据库的数据的一致性 目前大家在使用的我们可看到的有几个数据库 有oracle.sqlserv ...

  2. Elasticsearch分布式一致性原理剖析(一)-节点篇

    2019独角兽企业重金招聘Python工程师标准>>> 摘要: ES目前是最流行的开源分布式搜索引擎系统,其使用Lucene作为单机存储引擎并提供强大的搜索查询能力.学习其搜索原理, ...

  3. oracle的日志分析工具,oracle日志分析工具LogMiner使用(实战)

    要安装LogMiner工具,必须首先要运行下面这样两个脚本,这两个脚本必须均以SYS用户身份运行.其中第一个脚本用来创建DBMS_LOGMNR包,该包用来分析日志文件.第二个脚本用来创建DBMS_LO ...

  4. NameNode与DataNode的工作原理剖析

    NameNode与DataNode的工作原理剖析 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.HDFS写数据流程 1>.客户端通过Distributed FileSys ...

  5. Elasticsearch分布式一致性原理剖析(三)-Data篇

    前言 "Elasticsearch分布式一致性原理剖析"系列将会对Elasticsearch的分布式一致性原理进行详细的剖析,介绍其实现方式.原理以及其存在的问题等(基于6.2版本 ...

  6. ORACLE工作原理小结

    ORACLE工作原理1-连接 我们从一个用户请求开始讲,ORACLE的完整的工作机制是怎样的,首先一个用户进程发出一个连接请求,如果使用的是主机命名或者是本地服务命中的主机名使用的是机器名(非IP地址 ...

  7. Oracle日志分类

    一.Oracle日志分类 分三大类: Alert log files--警报日志,Trace files--跟踪日志(用户和进程)和            redo log 重做日志(记录数据库的更改 ...

  8. ASP.NET Core 运行原理剖析2:Startup 和 Middleware(中间件)

    在上一节(ASP.NET Core 运行原理剖析1:初始化WebApp模版并运行)中提到ASP.NET Core WebApp 必须含有Startup类,在本节中将重点讲解Startup类以及Midd ...

  9. 【es】es 分布式一致性原理剖析(二)-Meta篇

    1.概述 转载:Elasticsearch分布式一致性原理剖析(二)-Meta篇 前言 "Elasticsearch分布式一致性原理剖析"系列将会对Elasticsearch的分布 ...

最新文章

  1. JAVA并发编程学习笔记------FutureTask
  2. windows下pycharm连接vagrant的python环境
  3. 消息队列如何保证顺序性?
  4. Netflix:为什么建立专门的媒体数据库?
  5. 这篇博士论文致谢句句诛心......
  6. python错误代码提示手册_腾讯大佬整理了 Python 所有内置异常,Python高手必备的排错手册...
  7. java实用类_Java—实用类
  8. cass光标大小怎么调_cass7period;0鼠标不显示怎么解决quest;
  9. ES6 数组高频使用方法
  10. HDOJ--1285--确定比赛名次
  11. 草根站长的你是感觉自豪还是苦逼
  12. python网址规律_数列规律寻找 - python 爬虫 OEIS (2020.10.6更新)
  13. Redis 列表(List) Redis Lpush 命令
  14. 计算机的方差符号怎么输入,【2人回答】标准差的符号在电脑上怎么输入?-3D溜溜网...
  15. kubuntu 20.04 终端输入中文时乱码
  16. mysql中用于删除数据的是什么意思_数据库删除语句delete有什么用?
  17. MySQL - 大量 sending data 状态进程,让数据库性能急剧下降。
  18. 127.0.0.1和localhost和本机IP三者的区别!!!
  19. 使用PPT画图:浅尝辄止
  20. c语言设计简单计算器,c语言设计简单计算器实现加减乘除运算

热门文章

  1. node + express + mongodb 手动配置
  2. Nginx和uWSGI和Flask的关系
  3. armv8/arnv9的aarch64架构中系统寄存器的分类和总结
  4. [私]-optee的同步方法
  5. 2021-07-07
  6. 自用零散博文-route_state.ts
  7. 页面异常反dump 及 内存访问异常hook
  8. 【MySQL】在centos7 纯IPv6环境下,安装mysql5.7
  9. Acwing第 36 场周赛【完结】
  10. 【PAT乙级】1039 到底买不买 (20 分)