zoukankan      html  css  js  c++  java
  • 在线修改redo.log文件的大小

    在压力测试的中,发现数据库很慢,通过如下语句发现是log_sync


    select * from v$session_wait

    在结合如下语句,发现日志切换的频率非常之快

    select * from v$log

    针对这个情况我就增加redo文件的大小的个数

    在线修改redo.log文件的大小

    1.查找日志文件的路径名和group#号

    SQL> select * from v$log;

        GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARCHIV
    ---------- ---------- ---------- ---------- ---------- ------
    STATUS                           FIRST_CHANGE# FIRST_TIME
    -------------------------------- ------------- --------------
             1          1        755   52428800          1 YES
    INACTIVE                            1024261938 11-3月 -09

             2          1        756   52428800          1 NO
    CURRENT                             1024549334 11-3月 -09

             3          1        754   52428800          1 YES
    INACTIVE                            1024203168 11-3月 -09

    SQL> select member from v$logfile;

    MEMBER
    -----------------------------------------------------------------

    E:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/REDO03.LOG
    E:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/REDO01.LOG
    E:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/REDO02.LOG


    已选择3行。

    2. 添加新的日志文件组

    SQL> alter database add logfile  group 4 'E:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/
    REDO04.LOG' size 100m;

    数据库已更改。

    SQL> alter database add logfile  group 5 'E:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/
    REDO05.LOG' size 100m;

    数据库已更改。

    SQL> alter database add logfile  group 6 'E:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/
    REDO06.LOG' size 100m;

    数据库已更改。

    SQL> alter database add logfile  group 7 'E:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/
    REDO07.LOG' size 100m;

    数据库已更改。

    SQL> alter database add logfile  group 8 'E:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/
    REDO08.LOG' size 100m;

    数据库已更改。

    3. 查看已经添加的日志组

    #######这个时候会发现新添加的日志状态为:unused

    eg:

    SQL> select * from v$log;

        GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARCHIV
    ---------- ---------- ---------- ---------- ---------- ------
    STATUS                           FIRST_CHANGE# FIRST_TIME
    -------------------------------- ------------- --------------
             9          1          0  104857600          1 YES
    UNUSED                                       0

    切换日志,使其可用

    SQL> alter system switch logfile;

    系统已更改。

    SQL> alter system switch logfile;

    系统已更改。

    SQL> alter system switch logfile;

    系统已更改。

    ####如果你想删除哪个日志就要把他的状态切换为:inactive


    SQL> alter database drop logfile group 1;

    数据库已更改。

    SQL> alter database drop logfile group 2;

    数据库已更改。

    如果他的状态是:active, 你删除会报错的,提示无法删除在线的redo

    SQL> alter database drop logfile group 3;
    alter database drop logfile group 3
    *
    第 1 行出现错误:
    ORA-01624: 日志 3 是紧急恢复实例 orcl (线程 1) 所必需的
    ORA-00312: 联机日志 3 线程 1:
    'E:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/REDO03.LOG'


    #######继续切换日志

    SQL> alter system switch logfile;

    系统已更改。

    SQL> alter system switch logfile;

    系统已更改。

    SQL> alter system switch logfile;

    系统已更改。

    4. 现在已经把 group1,group2,group3日志组删除,需要我们添加日志组,如下:


    SQL> alter database add logfile  group 1 'E:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/
    REDO01.LOG' size 100m;
    alter database add logfile  group 1 'E:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/REDO0
    1.LOG' size 100m
    *
    第 1 行出现错误:
    ORA-00301: 添加日志文件 'E:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/REDO01.LOG'
    时出错 - 无法创建文件
    ORA-27038: 所创建的文件已存在
    OSD-04010: ?????<create> ??, ??????????


    ########根据上面的错误提示,要在系统级把redo文件删除,删除之后,如下:


    SQL> alter database add logfile  group 1 'E:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/
    REDO01.LOG' size 100m;

    数据库已更改。


    #######然后再切换日志


    SQL> alter system switch logfile;

    系统已更改。

    SQL> alter system switch logfile;

    系统已更改。

    SQL>


    #####查询所有的日志的状态

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

        GROUP#      BYTES     STATUS
    ---------- ---------- ----------
             1  104857600          1
             2  104857600          1
             3  104857600          1
             4  104857600          1
             5  104857600          1
             6  104857600          1
             7  104857600          1
             8  104857600          1
             9  104857600          1

    已选择9行。

    SQL>


    经过增加redo的大小和个数后,发现没有log_sync的等待事件了,速度有所提升

  • 相关阅读:
    团队项目-第一阶段冲刺-5
    用户场景分析
    第九周总结
    团队项目-第一阶段冲刺-3
    团队项目-第一阶段冲刺-2
    团队项目-第一阶段冲刺-1
    个人工作任务认领
    实验一:个人博客
    MFC onpaint() ondraw()
    MFC 虚函数与消息映射区别
  • 原文地址:https://www.cnblogs.com/sopost/p/2190089.html
Copyright © 2011-2022 走看看