• 在线修改redo日志大小


    注意点:
    1、redo要是能sesize的话就完美了
    2、drop时候如果active就得checkpoint才能drop
    3、物理删除旧redo文件
    redo大小影响切换,进而影响性能,至于什么样的业务设置多大暂时还不是很确定,正常情况下设置1g-2g就差不多了。另外可能还跟IO有关,因为在切换时候如果IO差,那么切换就会很慢,这样的话就会影响到性能。
    --查询日志组及状态
    SQL> select thread#,group#,members,bytes/1024/1024 ,STATUS from v$log;

    THREAD# GROUP# MEMBERS BYTES/1024/1024 STATUS
    ---------- ---------- ---------- --------------- ----------------
    1 1 1 1000 INACTIVE
    1 2 1 1000 ACTIVE

    --查询路径,将新增的redo放在同一目录中
    SQL> SELECT MEMBER FROM v$logfile;

    MEMBER
    --------------------------------------------------------------------------------
    /u01/app/oracle/oradata/test/actlog/redo02.log
    /u01/app/oracle/oradata/test/actlog/redo01.log

    --比如原来redo大小为1000m,现在想调为100m,毕竟是测试环境,没必要搞那么大
    SQL> alter database add logfile group 3 ('/u01/app/oracle/oradata/test/actlog/redo03.log') size 100m;

    数据库已更改。

    SQL> alter database add logfile group 4 ('/u01/app/oracle/oradata/test/actlog/redo04.log') size 100m;

    数据库已更改。

    SQL> alter database add logfile group 5 ('/u01/app/oracle/oradata/test/actlog/redo05.log') size 100m;

    数据库已更改。

    SQL> select group#,members,bytes/1024/1024,status from v$log;

    GROUP# MEMBERS BYTES/1024/1024 STATUS
    ---------- ---------- --------------- ----------------
    1 1 1000 CURRENT
    2 1 1000 UNUSED
    3 1 100 UNUSED
    4 1 100 UNUSED
    5 1 100 UNUSED
    日志切换,准备删除原来的日志,将被删除的日志切换到INACTIVE就可以drop了
    SQL> alter system switch logfile;

    系统已更改。
    --但是发现,切换了好几次,想drop的redo还是ACTIVE,就来个狠的,强制进行检查点
    SQL> alter system checkpoint;

    系统已更改。

    SQL> select group#,members,bytes/1024/1024,status from v$log;

    GROUP# MEMBERS BYTES/1024/1024 STATUS
    ---------- ---------- --------------- ----------------
    1 1 1000 INACTIVE
    2 1 1000 INACTIVE
    3 1 100 CURRENT
    4 1 100 INACTIVE
    5 1 100 UNUSED


    SQL> alter database drop logfile group 1;

    数据库已更改。

    SQL> alter database drop logfile group 2;

    数据库已更改。

    为了保持好看,1、2还想再用,就再走一遍,但报错了。。。
    SQL> alter database add logfile group 1 ('/u01/app/oracle/oradata/test/actlog/redo01.log') size 100m;
    alter database add logfile group 1 ('/u01/app/oracle/oradata/test/actlog/redo01.log') size 100m
    *
    第 1 行出现错误:
    ORA-00301: 添加日志文件 '/u01/app/oracle/oradata/test/actlog/redo03.log'
    时出错 - 无法创建文件
    ORA-27038: 所创建的文件已存在
    Additional information: 1
    物理删除redo文件,找到对应redo目录rm redo01.log redo02.log
    [oracle@test ~]$ cd /u01/app/oracle/oradata/test/actlog/
    [oracle@test ~]$ rm redo01.log redo02.log

    SQL> alter database add logfile group 1 ('/u01/app/oracle/oradata/test/actlog/redo01.log') size 100m;

    数据库已更改。

    SQL> alter database add logfile group 2 ('/u01/app/oracle/oradata/test/actlog/redo02.log') size 100m;

    数据库已更改。
    添加删除完之后,switch几下看正常不
    SQL> alter system switch logfile;

    系统已更改。

  • 相关阅读:
    acdream.18.KIDx's Triangle(数学推导)
    upc.2219: A^X mod P(打表 && 超越快速幂(in some ways))
    山东省第四届acm.Rescue The Princess(数学推导)
    BC.5200.Trees(dp)
    BC.36.Gunner(hash)
    hdu.5195.DZY Loves Topological Sorting(topo排序 && 贪心)
    数组倒置算法扩展
    C# 传值和传引用 ( ref out in )
    C# 输出文件夹下的所有文件
    控制反转(自译)
  • 原文地址:https://www.cnblogs.com/ritchy/p/9044908.html
Copyright © 2020-2023  润新知