在线修改Redo log的大小及增加新的日志组

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 如果在线日志文件设置过小,会导致日志切换非常频繁。可以通过以下步骤进行在线Redo日志修改。
如果在线日志文件设置过小,会导致日志切换非常频繁。可以通过以下步骤进行在线Redo日志修改。
相关的知识普及:
1、Redo log File存放了Redo log信息,最少有两组日志文件,供Oracle循环使用。
2、Redo log File每组最少一个,建议两个,防止损坏而导致的数据丢失。
3、每组中的文件大小必须一致,因为他们是同时修改的,不同组的文件大小可以不一致。
4、每组中的文件个数必须一致。
由于ORACLE并没有提供类似RESIZE的参数来重新调整REDO LOG FILE的大小,因此只能先把这个文件删除了,然后再重建。又由于ORACLE要求最少有两组日志文件在用,所以不能直接删除,必须要创建中间过渡的REDO LOG日志组。因此,如果只是修改REDO LOG FILE的大小,建议的操作步骤应该如下:
1) 先创建两组新的日志组5、6
2) SWITCH LOGFILE到新创建的日志组5、6
3) 删除旧的日志组1、2、3
4) 重建旧的日志组1、2、3
5) SWITCH LOGFILE到日志组1、2、3
6) 删除过渡的日志组5、6
但本次操作,既要修改原有日志组的大小,又要增加新的日志组,所以省去了中间过渡日志组的操作,操作过程如下:
1) 查看当前日志组的状态,GROUP编号,日志文件所在的位置。
SQL> SELECT GROUP#, MEMBERS, BYTES / 1024 / 1024 BYTE_MB, STATUS FROM V$LOG;
    GROUP#    MEMBERS    BYTE_MB STATUS
---------- ---------- ---------- ----------------
         1          1        500 CURRENT
         2          1        500 INACTIVE
         3          1        500 INACTIVE

SQL> col member for a50
SQL> SELECT GROUP#, MEMBER FROM V$LOGFILE;
    GROUP# MEMBER
---------- --------------------------------------------------
         1 /SDS/u01/app/oracle/oradata/ora11g/redo1.log
         2 /SDS/u01/app/oracle/oradata/ora11g/redo2.log
         3 /SDS/u01/app/oracle/oradata/ora11g/redo3.log

2) 增加新的日志组
SQL> alter database add logfile group 4 '/SDS/u01/app/oracle/oradata/ora11g/redo.4.log' size 500M;
SQL> alter database add logfile group 5 '/SDS/u01/app/oracle/oradata/ora11g/redo.5.log' size 500M;
SQL> alter database add logfile group 6 '/SDS/u01/app/oracle/oradata/ora11g/redo.6.log' size 500M;

查看新增日志组的状态
SQL> SELECT GROUP#, MEMBERS, BYTES / 1024 / 1024 BYTE_MB, STATUS FROM V$LOG;
    GROUP#    MEMBERS    BYTE_MB STATUS
---------- ---------- ---------- ----------------
         1          1        500 CURRENT
         2          1        500 INACTIVE
         3          1        500 INACTIVE
         4          1        500 UNUSED
         5          1        500 UNUSED
         6          1        500 UNUSED
6 rows selected.
可以看到,新增的三组日志GROUP4、5、6,状态为UNUSED。
3) 切换当前的redo log
SQL> ALTER SYSTEM SWITCH LOGFILE; 
4) 查看切换后的状态
SQL> SELECT GROUP#, MEMBERS, BYTES / 1024 / 1024 BYTE_MB, STATUS FROM V$LOG;
    GROUP#    MEMBERS    BYTE_MB STATUS
---------- ---------- ---------- ----------------
         1          1        500 ACTIVE
         2          1        500 INACTIVE
         3          1        500 INACTIVE
         4          1        500 ACTIVE
         5          1        500 ACTIVE
         6          1        500 CURRENT
6 rows selected.
可以看见,现在切换到新增的第6组日志上使用。
5) 改变检查点
SQL> ALTER SYSTEM CHECKPOINT;
System altered.

6) 查看切换后的状态
SQL> SELECT GROUP#, MEMBERS, BYTES / 1024 / 1024 BYTE_MB, STATUS FROM V$LOG;
    GROUP#    MEMBERS    BYTE_MB STATUS
---------- ---------- ---------- ----------------
         1          1        500 INACTIVE
         2          1        500 INACTIVE
         3          1        500 INACTIVE
         4          1        500 INACTIVE
         5          1        500 INACTIVE
         6          1        500 CURRENT
6 rows selected.
可以看见,GROUP1、2、3三组日志状态变成了INACTIVE了,这时候可以删除它们。
7) 删除状态为inactive的日志
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;
Database altered.

8) 重建新的GROUP 1、2、3三组日志
SQL> alter database add logfile group 4 '/SDS/u01/app/oracle/oradata/ora11g/redo.4.log' size 1G;
SQL> alter database add logfile group 5 '/SDS/u01/app/oracle/oradata/ora11g/redo.5.log' size 1G;
SQL> alter database add logfile group 6 '/SDS/u01/app/oracle/oradata/ora11g/redo.6.log' size 1G;
这时候创建成功了!
9) 切换测试
SQL> ALTER SYSTEM SWITCH LOGFILE;
System altered.

10) 检查切换后的状态
SQL> SELECT GROUP#, MEMBERS, BYTES / 1024 / 1024 BYTE_MB, STATUS FROM V$LOG;
    GROUP#    MEMBERS    BYTE_MB STATUS
---------- ---------- ---------- ----------------
         1          1        1000 INACTIVE
         2          1        1000 INACTIVE
         3          1        1000 INACTIVE
         4          1        500 INACTIVE
         5          1        500 INACTIVE
         6          1        500 CURRENT
6 rows selected.

11) 多切换几次,让他每组日志都使用一遍。
SQL> ALTER SYSTEM SWITCH LOGFILE;
System altered.

日志切换没有发生错误,每组日志都能正常使用和切换。顺利结束!
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
4天前
|
XML 安全 Java
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
本文介绍了Java日志框架的基本概念和使用方法,重点讨论了SLF4J、Log4j、Logback和Log4j2之间的关系及其性能对比。SLF4J作为一个日志抽象层,允许开发者使用统一的日志接口,而Log4j、Logback和Log4j2则是具体的日志实现框架。Log4j2在性能上优于Logback,推荐在新项目中使用。文章还详细说明了如何在Spring Boot项目中配置Log4j2和Logback,以及如何使用Lombok简化日志记录。最后,提供了一些日志配置的最佳实践,包括滚动日志、统一日志格式和提高日志性能的方法。
85 30
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
|
30天前
|
XML JSON Java
Logback 与 log4j2 性能对比:谁才是日志框架的性能王者?
【10月更文挑战第5天】在Java开发中,日志框架是不可或缺的工具,它们帮助我们记录系统运行时的信息、警告和错误,对于开发人员来说至关重要。在众多日志框架中,Logback和log4j2以其卓越的性能和丰富的功能脱颖而出,成为开发者们的首选。本文将深入探讨Logback与log4j2在性能方面的对比,通过详细的分析和实例,帮助大家理解两者之间的性能差异,以便在实际项目中做出更明智的选择。
188 3
|
24天前
|
SQL 存储 关系型数据库
美团面试:binlog、redo log、undo log的底层原理是什么?它们分别实现ACID的哪个特性?
老架构师尼恩在其读者交流群中分享了关于 MySQL 中 redo log、undo log 和 binlog 的面试题及其答案。这些问题涵盖了事务的 ACID 特性、日志的一致性问题、SQL 语句的执行流程等。尼恩详细解释了这些日志的作用、所在架构层级、日志形式、缓存机制以及写文件方式等内容。他还提供了多个面试题的详细解答,帮助读者系统化地掌握这些知识点,提升面试表现。此外,尼恩还推荐了《尼恩Java面试宝典PDF》和其他技术圣经系列PDF,帮助读者进一步巩固知识,实现“offer自由”。
美团面试:binlog、redo log、undo log的底层原理是什么?它们分别实现ACID的哪个特性?
|
18天前
|
存储 关系型数据库 MySQL
MySQL中的Redo Log、Undo Log和Binlog:深入解析
【10月更文挑战第21天】在数据库管理系统中,日志是保障数据一致性和完整性的关键机制。MySQL作为一种广泛使用的关系型数据库管理系统,提供了多种日志类型来满足不同的需求。本文将详细介绍MySQL中的Redo Log、Undo Log和Binlog,从背景、业务场景、功能、底层实现原理、使用措施等方面进行详细分析,并通过Java代码示例展示如何与这些日志进行交互。
28 0
|
26天前
|
Python
log日志学习
【10月更文挑战第9天】 python处理log打印模块log的使用和介绍
25 0
|
28天前
|
数据可视化
Tensorboard可视化学习笔记(一):如何可视化通过网页查看log日志
关于如何使用TensorBoard进行数据可视化的教程,包括TensorBoard的安装、配置环境变量、将数据写入TensorBoard、启动TensorBoard以及如何通过网页查看日志文件。
155 0
|
SQL 数据采集 监控
基于日志服务数据加工分析Java异常日志
采集并脱敏了整个5月份的项目异常日志,准备使用日志服务数据加工做数据清洗以及分析。本案例是基于使用阿里云相关产品(OSS,RDS,SLS等)的SDK展开自身业务。需要对异常日志做解析,将原始日志中时间、错误码、错误信息、状态码、产品信息、请求方法、出错行号提取出来。然后根据提取出来的不同产品信息做多目标分发处理。对清洗后的数据做异常日志数据分析。
803 0
基于日志服务数据加工分析Java异常日志
|
3月前
|
Kubernetes Ubuntu Windows
【Azure K8S | AKS】分享从AKS集群的Node中查看日志的方法(/var/log)
【Azure K8S | AKS】分享从AKS集群的Node中查看日志的方法(/var/log)
129 3
|
1月前
|
存储 缓存 关系型数据库
MySQL事务日志-Redo Log工作原理分析
事务的隔离性和原子性分别通过锁和事务日志实现,而持久性则依赖于事务日志中的`Redo Log`。在MySQL中,`Redo Log`确保已提交事务的数据能持久保存,即使系统崩溃也能通过重做日志恢复数据。其工作原理是记录数据在内存中的更改,待事务提交时写入磁盘。此外,`Redo Log`采用简单的物理日志格式和高效的顺序IO,确保快速提交。通过不同的落盘策略,可在性能和安全性之间做出权衡。
1611 14
|
1月前
|
存储 分布式计算 NoSQL
大数据-136 - ClickHouse 集群 表引擎详解1 - 日志、Log、Memory、Merge
大数据-136 - ClickHouse 集群 表引擎详解1 - 日志、Log、Memory、Merge
35 0