请选择 进入手机版 | 继续访问电脑版

湖南新梦想

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 369|回复: 0

修改oracle重做日志文件大小

[复制链接]

2493

主题

2892

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
10294
发表于 2021-6-23 11:38:04 | 显示全部楼层 |阅读模式
本帖最后由 chaomeili 于 2021-6-23 11:39 编辑

测试过程中遇到数据库Log file switch(checkpoint incomplete)等待事件排在第一位,logfile使用的是系统默认的3组,每个50M大小,查询到日志切换频率大概是20秒一次,原因是重做文件日志太小导致系统日志切换频率过高,解决方法是增加日志文件组或者增大日志文件大小,下面介绍一下,增加日志文件组在修改日志文件大小中也有涉及,下文着重介绍如何修改日志文件大小。

修改Oracle重做日志文件大小
1.创建3个新的日志组
SQL> ALTER DATABASE ADD LOGFILE GROUP 4 ('/u01/app/oracle/oradata/orcl/redo06.log') SIZE 500M;
SQL> ALTER DATABASE ADD LOGFILE GROUP 5 ('/u01/app/oracle/oradata/orcl/redo05.log') SIZE 500M;
SQL> ALTER DATABASE ADD LOGFILE GROUP 6 ('/u01/app/oracle/oradata/orcl/redo06.log') SIZE 500M;
查看日志组
SQL> select * from v$logfile;

2.切换当前日志到新的日志组
SQL> alter system switch logfile;
SQL> alter system switch logfile;
SQL> alter system switch logfile;
切到要删除为INCACTIVE才行
SQL> select group#,sequence#,bytes,members,status from v$log;
    GROUP#  SEQUENCE#    BYTES    MEMBERS STATUS
---------- ---------- ---------- ---------- ----------------
  1  139 52428800  1 INACTIVE
  2  137 52428800  1 INACTIVE
  3  138 52428800  1 INACTIVE
  4  140  524288000  1 ACTIVE
  5  141  524288000  1 CURRENT
  6  136  524288000  1 INACTIVE

3.删除旧的日志组
SQL> alter database drop logfile group 1;
Database altered.
SQL> alter database drop logfile group 2;
Database altered.
SQL> alter database drop logfile group 3;
查看是否删除了日志组
SQL> select group#,sequence#,bytes,members,status from v$log;
    GROUP#  SEQUENCE#    BYTES    MEMBERS STATUS
---------- ---------- ---------- ---------- ----------------
  4  140  524288000  1 INACTIVE
  5  141  524288000  1 CURRENT
  6  136  524288000  1 INACTIVE

4.操作系统删除原日志组1、2、3中的文件
[oracle@oracle122 log]$ cd /u01/app/oracle/oradata/orcl
[oracle@oracle122 orcl]$
[oracle@oracle122 orcl]$ pwd
/u01/app/oracle/oradata/orcl
[oracle@oracle122 orcl]$ ls
control01.ctl  example01.dbf  redo01.log  redo02.log  redo03.log  redo04.log  redo05.log  redo06.log  sysaux01.dbf  system01.dbf  temp01.dbf  undotbs01.dbf  users01.dbf
[oracle@oracle122 orcl]$ rm -rf redo01.log
[oracle@oracle122 orcl]$ rm -rf redo02.log
[oracle@oracle122 orcl]$ rm -rf redo03.log

5.重建日志组1、2、3
SQL> ALTER DATABASE ADD LOGFILE GROUP 1 ('/u01/app/oracle/oradata/orcl/redo01.log') SIZE 500M;
SQL> ALTER DATABASE ADD LOGFILE GROUP 2 ('/u01/app/oracle/oradata/orcl/redo02.log') SIZE 500M;
SQL> ALTER DATABASE ADD LOGFILE GROUP 3 ('/u01/app/oracle/oradata/orcl/redo03.log') SIZE 500M;

6.删除中间过渡用的日志组
4、5、6 ,在删除时查询select group#,sequence#,bytes,members,status from v$log; 删除组是否为INACTIVE,如果不是INACTIVE 就要执行alter system switch logfile;
查询看一下
SQL> select group#,sequence#,bytes,members,status from v$log;
    GROUP#  SEQUENCE#    BYTES    MEMBERS STATUS
---------- ---------- ---------- ---------- ----------------
  1  148  524288000  1 CURRENT
  2  143  524288000  1 INACTIVE
  3  144  524288000  1 INACTIVE
  4  146  524288000  1 INACTIVE
  5  147  524288000  1 INACTIVE
  6  145  524288000  1 INACTIVE
SQL> alter database drop logfile group 4;
Database altered.
SQL> alter database drop logfile group 5;
Database altered.
SQL> alter database drop logfile group 6;
Database altered.

7.到操作系统删除组4、5、6
[oracle@oracle122 orcl]$ rm -rf redo04.log
[oracle@oracle122 orcl]$ rm -rf redo05.log
[oracle@oracle122 orcl]$ rm -rf redo06.log

8.备份当前最新的控制文件
SQL>  alter database backup controlfile to trace resetlogs  ;

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|湖南新梦想 ( 湘ICP备18019834号-2 )

GMT+8, 2022-5-18 11:55 , Processed in 0.042032 second(s), 20 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表