zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    非诚勿扰骆琦攻略
    IT服务者的困惑与解决之道
    某某银行IT运维管理的三点和四化
    提升CIO地位及IT价值体现,IT治理理念在中国势在必行
    振兴民族软件,险恶的江湖该如何仗剑走天涯
    某连锁饭店IT服务台、自助服务建设
    证券行业ITIL初探助力券商成就IT管理之路
    分享屡见成效的另类方法论保障ITIL软件及ITSM方案落地实施
    城市商业银行IT科技工作管理之痛
    【转】陈天晴:信息化发展要注意规划调整 重视IT治理
  • 原文地址:https://www.cnblogs.com/kellyseeme/p/5525188.html
Copyright © 2011-2022 走看看