• day10_日志切换


    select * from v$log;
    create table haha as select * from all_objects;
    insert into haha select * from haha;

    commit;
    delete from haha;
    select * from v$log;
    alter system switch logfile;
    select * from v$log;【不产生数据,手工切换日志】



    INACTIVE:同步完成      ACTIVE:有数据未同步完成

    切换日志时,切换到ACTIVE状态的日志时,触发check point,把活动的写完了,或者变成同步完成状态,然后才能切换,等十几秒切换,所以切换有点慢。

    十几秒对于我们来说,这时间很有短暂,但对于生产库,访问量大的话,十几秒太可怕了。
    你想像一下,所有数据库都是先写日志后操作,意味你在切换日志时,外部的操作不能执行,因为你现在 正在切换日志组
    你没法往日志组里写,操作动作都得等,等日志组正常,等切换完日志才可以,
    想像一下生产库,写满50M等十几秒钟,再写满50M等十几秒钟,生产环境中50M太好写完了,一会就写完了,所以你在做数据库维护时还有一块,
    日志大小的调整,一定要满足,公司的业务不要太频繁的切换日志。假如1分钟切换1次,每过1分钟等十几秒钟,领导肯定怒,体验效果非常差。
    把日志组调得大点,根据业务来调整,一般情况下,保证1小时切换一次最好。
    我见过最大的日志组2G大小,这属于大库,日志产生2G,是不是数据也产生2G?数据可能大于2G,也可能小于2G【增删改】。

    在公司中到底设置多大好,需要你自己去监控,维护数据库,隔段时查询一下。

    比如:
       在业务峰值时,查询当前查 序列号4,过了1小时后,再次查询 序列号14,这证明你1小时内切换了10次日志。那你可以把日志大小调大10倍。
       第2天你再继续在业务高峰监控,如果当前序列是15,过了1小时再查询是16了,那正常了。如果还不正常,继续调整。
       
     
     
    这个日志切换太频繁不好,不切换也不好。为什么不让你设置成无限大?因为你要设置太大了,总也不切换了,带来一个问题,很少产生归档。
    如果当前日志坏了,这段时间内你的数据全没了。

    所以,峰值时最好1小时切换1次。2小时强制切换。   


    (1)强制切换  (2)计划任务

    如何通过脚本实现?

    抓取  v$log 中 SEQUENCE#的值,第1次是5,第2次是6,算一次时间就出来了。

    set lines 300


    spool '/home/oracle/aa.txt'
    select max(SEQUENCE#) from v$log;
    spool off;











  • 相关阅读:
    整理DB2左补零,右补零的方法
    DB2复制表结构及数据
    两种方式,创建有返回值的DB2函数
    IDEA中Java目录结构
    uWSGI、uwsgi、WSGI、之间的关系,为什么要用nginx加uWSGI部署。
    LeetCode_9_回文数字
    JAVA学习笔记
    学习过程中的杂记
    csrf(跨站请求伪造)
    Jquery中$(function(){})
  • 原文地址:https://www.cnblogs.com/xiaoxiao5ya/p/ca9858af98a5a572b408dca19792c126.html
Copyright © 2020-2023  润新知