• redo文件二


    为什么要引入LGWR后台进程和redo log buffer
    如果使用前台进程来将redo的信息写入到redo日志文件组中,那么会导致并发的前台进程对redo日志文件组的争用,从而使用后台进程LGWR之后,不会产生前台程序的争用情况
    引入redo log buffer是为了提高数据库的性能,从而前台进程只要将生成的redo信息写入到redo log buffer中
    oracle在提高性能的方面,将redo的block块大小和操作系统的块大小设置为一样大,从而不会产生碎块的问题


    LGWR将redo log buffer中的内容写入到redo日志文件组中,从而LGWR的触发条件如下:
    1、当事物进行commit的时候
    2、当redo log buffer中的内容到达1M的时候
    3、当达到redo log buffer中的内容的1/3的时候
    4、每隔3S
    当事物进行commit的时候触发LGWR写操作,是为了确保当用户提交事物的时候,如果数据库发生了故障不会丢失数据,此时redo日志组的信息已经写入到redo log files中,从而数据不会产生丢失
    当内容达到1M或者是内容达到1/3或者3S的时候触发,是为了防止当数据库的事物提交的很少,但是每次都产生大量的redo日志信息的时候,防止redo log buffer中的信息积压,从而每次定时的唤醒LGWR进程,将日志信息写入


    在LGWR写的时候,会发生一个事件,那就是log file sync等待时间,可能发生为两种情况:
    1、当前台进程产生了redo日志时,redo log buffer中的内容满了,从而没有空间来保存新的生成的redo信息,这个时候前台进程必须等待LGWR将buffer中的内容写入到redo日志文件组中,从而发生的等待
    2、当用户提交事物时,等待LGWR将日志信息写入到日志文件组中,此时也会发生log file sync等待事件
    总的来说:log file sync等待事件就是等待LGWR将redo log buffer中的内容写入到redo日志文件组中发生的等待事件


    如何来解决大量的log file sync事件
    1、增加redo log buffer的大小,在此时可能需要调整_log_io_size的大小,防止大量的redo信息的堆压
    2、将redo日志文件放到IO性能比较好的磁盘上,从而增加LGWR写日志的速度


    日志切换
    日志切换是一个昂贵的操作,alter system switch logfile;
    for linux and python
  • 相关阅读:
    倍增或线段树,给出一个数,让它模一连串的数
    江西财经大学第一届程序设计竞赛
    L2-027. 名人堂与代金券
    hdu 3038 给区间和,算出多少是错的
    cf166e 在四面体上寻找路线数 递推,取模
    cf946d 怎样逃最多的课dp
    PAM练习
    PAM模板
    E. Erase Subsequences dp
    CSU2004:Finding words(含指定不相交前后缀的模式串计数)
  • 原文地址:https://www.cnblogs.com/kellyseeme/p/5525188.html
Copyright © 2020-2023  润新知