数据库redo log日志太小,默认单个文件只有50M,3个日志文件循环写,容易导致日志频繁切换,因此建议调整

数据库redo log日志太小,默认单个文件只有50M,3个日志文件循环写,容易导致日志频繁切换,因此建议调整。

1.查看当前日志组成员

SQL> select member from v$logfile;

MEMBER

--------------------------------------------------------------------------------

/opt/oracle/oradata/orcl/redo03.log

/opt/oracle/oradata/orcl/redo02.log

/opt/oracle/oradata/orcl/redo01.log

 

 

2.查看当前日志组状态

 

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

 

    GROUP#    MEMBERS BYTES/1024/1024

 

---------- ---------- ---------------

STATUS

------------------------------------------------

         1          1              50

CURRENT

         2          1              50

INACTIVE

         3          1              50

INACTIVE

SQL> 

 

现在有三个日志成员,大小为50M,想要更改为1024M。

 

 

 

3.增加日志组

 

SQL> alter database add logfile group 4 ('/opt/oracle/oradata/orcl/redo04.log') size 1G;

 

SQL> alter database add logfile group 5 ('/opt/oracle/oradata/orcl/redo05.log') size 1G;

 

SQL> alter database add logfile group 6 ('/opt/oracle/oradata/orcl/redo06.log') size 1G;

 

 

 

4.切换到新增的日志组上

 

SQL> alter system switch logfile;

 

System altered.

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

 

    GROUP#    MEMBERS BYTES/1024/1024

---------- ---------- ---------------

STATUS

------------------------------------------------

         1          1              50

ACTIVE

         2          1              50

INACTIVE

         3          1              50

INACTIVE

    GROUP#    MEMBERS BYTES/1024/1024

---------- ---------- ---------------

STATUS

------------------------------------------------

         4          1            1024

CURRENT

         5          1            1024

UNUSED

         6          1            1024

UNUSED

 

 

CURRENT:   指当前的日志文件,在进行实例恢复时是必须的。

 

ACTIVE:    是指活动的非当前日志,在进行实例恢复时会被用到。Active状态意味着Checkpoint尚未完成,因此该日志文件不能被覆盖。

INACTIVEL  是非活动日志,在实例恢复时不再需要,但在介质恢复时可能需要。

 

UNUSED:    表示该日志从未被写入,可能是刚添加的,或RESETLOGS后被重置。

 

5.删除旧的日志组

 

SQL> alter database drop logfile group 3;

 

SQL> alter database drop logfile group 2;

 

SQL> alter database drop logfile group 1;

 

SQL> alter database drop logfile group 3;

Database altered.

 

SQL> alter database drop logfile group 2;

 

Database altered.

SQL> alter database drop logfile group 1;

 

alter database drop logfile group 1

*

ERROR at line 1:

ORA-01624: log 1 needed for crash recovery of instance orcl (thread 1)

 

ORA-00312: online log 1 thread 1: '/opt/oracle/oradata/orcl/redo01.log'

SQL> 

 

 

注意:日志成员处在active状态,不能drop掉的,再次执行 alter system switch logfile; 切换日志组,然后就可以删除GROUP 1了。

 

SQL> alter system switch logfile;

 

System altered.

 

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

 

    GROUP#    MEMBERS BYTES/1024/1024

---------- ---------- ---------------

STATUS

------------------------------------------------

         1          1              50

INACTIVE

         4          1            1024

ACTIVE

         5          1            1024

CURRENT

    GROUP#    MEMBERS BYTES/1024/1024

---------- ---------- ---------------

STATUS

------------------------------------------------

         6          1            1024

UNUSED

SQL> 

 

SQL> alter database drop logfile group 1;

 

Database altered.

 

SQL> 

 

 

再查看日志组

 

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

 

    GROUP#    MEMBERS BYTES/1024/1024

---------- ---------- ---------------

STATUS

------------------------------------------------

         4          1            1024

ACTIVE

         5          1            1024

CURRENT

         6          1            1024

UNUSED

SQL> 

 

6.在操作系统下删除掉redolog日志文件

 

# mv /opt/oracle/oradata/orcl/redo0[1-3].log /tmp

---------------------

作者:sunny05296

来源:CSDN

原文:https://blog.csdn.net/sunny05296/article/details/58591826

版权声明:本文为博主原创文章,转载请附上博文链接!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 MySQL 中,redo log 文件组是一组文件,用于记录事务的更改,以便在发生故障时进行恢复。下面是设置数据库redo log 文件组的步骤: 1. 打开 MySQL 配置文件,通常位于 `/etc/my.cnf` 或 `/etc/mysql/my.cnf`。 2. 找到 `innodb_log_group_home_dir` 参数,如果没有则添加以下行: ``` [mysqld] innodb_log_group_home_dir = /var/lib/mysql/logs/ ``` 这里将 redo log 文件组的目录设置为 `/var/lib/mysql/logs/`,你可以根据需要进行修改。 3. 如果你修改了 `innodb_log_group_home_dir` 参数,那么还需要创建 redo log 文件组的目录并设置其权限。可以按照以下步骤进行操作: ``` $ sudo mkdir /var/lib/mysql/logs/ $ sudo chown mysql:mysql /var/lib/mysql/logs/ ``` 这里假设 MySQL 的数据目录为 `/var/lib/mysql`,你需要根据实际情况进行修改。 4. 如果你想要更改 redo log 文件组的数量和大小,可以使用 `innodb_log_file_size` 和 `innodb_log_files_in_group` 参数。假设你想要将 redo log 文件组的数量设置为 4,每个文件的大小设置为 256MB,那么可以添加以下行: ``` [mysqld] innodb_log_group_home_dir = /var/lib/mysql/logs/ innodb_log_file_size = 256M innodb_log_files_in_group = 4 ``` 这里将 redo log 文件组的数量设置为 4,每个文件的大小设置为 256MB,你可以根据需要进行修改。 注意,修改 redo log 文件组需要谨慎,因为它会影响数据库的性能和稳定性。建议根据实际情况进行调整

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值