Oracle RAC环境下redo log 文件的扩容

环境:

  • 有一个2节点RAC
  • 每一个节点2个logfile group
  • 每一个group含2个member
  • 每一个member的大小为200M

目标:将每一个member的大小有200M扩充到1G。

先来看下redo log的配置:

SQL> select * from v$log;

   GROUP#    THREAD#    SEQUENCE#        BYTES    BLOCKSIZE    MEMBERS    ARCHIVED      STATUS    FIRST_CHANGE#    FIRST_TIME           NEXT_CHANGE#    NEXT_TIME    CON_ID
_________ __________ ____________ ____________ ____________ __________ ___________ ___________ ________________ _____________ ______________________ ____________ _________
        1          1          337    209715200          512          2 NO          INACTIVE             2820063 14-DEC-23                    2838640 14-DEC-23            0
        2          1          338    209715200          512          2 NO          CURRENT              2838640 14-DEC-23        9295429630892703743                      0
        3          2            1    209715200          512          2 NO          INACTIVE             2195630 13-DEC-23                    2713793 14-DEC-23            0
        4          2            2    209715200          512          2 NO          CURRENT              2713793 14-DEC-23        9295429630892703743                      0

SQL> select * from v$logfile order by group#;

   GROUP#    STATUS      TYPE                                           MEMBER    IS_RECOVERY_DEST_FILE    CON_ID
_________ _________ _________ ________________________________________________ ________________________ _________
        1           ONLINE    +RECOC1/ORCL/ONLINELOG/group_1.624.1155482177    YES                              0
        1           ONLINE    +DATAC1/ORCL/ONLINELOG/group_1.693.1155482175    NO                               0
        2           ONLINE    +RECOC1/ORCL/ONLINELOG/group_2.625.1155482177    YES                              0
        2           ONLINE    +DATAC1/ORCL/ONLINELOG/group_2.694.1155482175    NO                               0
        3           ONLINE    +DATAC1/ORCL/ONLINELOG/group_3.697.1155482693    NO                               0
        3           ONLINE    +RECOC1/ORCL/ONLINELOG/group_3.626.1155482693    YES                              0
        4           ONLINE    +DATAC1/ORCL/ONLINELOG/group_4.698.1155482693    NO                               0
        4           ONLINE    +RECOC1/ORCL/ONLINELOG/group_4.627.1155482693    YES                              0

8 rows selected.

有几个实例,就有几个thread:

SQL> select thread#,status from v$thread;

   THREAD#    STATUS
__________ _________
         1 OPEN
         2 OPEN

从SQL Developer中看到的配置:
在这里插入图片描述
直接删掉group重建是不行的,因为每一个实例必须保证最少2个group。

SQL> ALTER DATABASE DROP LOGFILE GROUP 1;

Error starting at line : 1 in command -
ALTER DATABASE DROP LOGFILE GROUP 1
Error report -
ORA-01567: dropping log 1 would leave less than 2 log files for instance orcl1 (thread 1)
ORA-00312: online log 1 thread 1: '+DATAC1/ORCL/ONLINELOG/group_1.693.1155482175'
ORA-00312: online log 1 thread 1: '+RECOC1/ORCL/ONLINELOG/group_1.624.1155482177'
01567. 00000 -  "dropping log %s would leave less than 2 log files for instance %s (thread %s)"
*Cause:    Dropping all the logs specified would leave fewer than the required
           two log files per enabled thread.
*Action:   Either drop fewer logs or disable the thread before deleting the
           logs. It may be possible to clear the log rather than drop it.

方法其实简单,就是先加一个临时的redo log file group,然后就可以删除重建了,最终再把这个临时的删除就好。

先处理2个状态为Inactive的log file group,即#1和#3,因为他们可以直接删。

先对实例1上的#1进行操作:

ALTER DATABASE ADD LOGFILE THREAD 1 GROUP 5 ('+DATAC1') SIZE 200M;
ALTER DATABASE DROP LOGFILE GROUP 1;
ALTER DATABASE ADD LOGFILE THREAD 1 GROUP 1 ('+DATAC1', '+RECOC1') SIZE 1G;
ALTER DATABASE DROP LOGFILE GROUP 5;

在这里插入图片描述
再对实例2上的#3进行操作:

ALTER DATABASE ADD LOGFILE THREAD 2 GROUP 5 ('+DATAC1') SIZE 200M;
ALTER DATABASE DROP LOGFILE GROUP 3;
ALTER DATABASE ADD LOGFILE THREAD 2 GROUP 3 ('+DATAC1', '+RECOC1') SIZE 1G;
ALTER DATABASE DROP LOGFILE GROUP 5;

在这里插入图片描述
现在logfile group 1和3都改好了,还剩#2和#4。

先对实例1上的#2进行操作:

ALTER DATABASE ADD LOGFILE THREAD 1 GROUP 5 ('+DATAC1') SIZE 200M;

此时无法删除#2,因为他的状态是current:

SQL> ALTER DATABASE DROP LOGFILE GROUP 2;
ALTER DATABASE DROP LOGFILE GROUP 2
*
ERROR at line 1:
ORA-01623: log 2 is current log for instance orcl1 (thread 1) - cannot drop
ORA-00312: online log 2 thread 1:
'+DATAC1/ORCL/ONLINELOG/group_2.694.1155482175'
ORA-00312: online log 2 thread 1:
'+RECOC1/ORCL/ONLINELOG/group_2.625.1155482177'

先做一次log switch:

SQL> alter system switch logfile;

System altered.

在这里插入图片描述

此时#2的状态变为Active,但仍无法删除,因为其要用于实例恢复:

SQL> ALTER DATABASE DROP LOGFILE GROUP 2;
ALTER DATABASE DROP LOGFILE GROUP 2
*
ERROR at line 1:
ORA-01624: log 2 needed for crash recovery of instance orcl1 (thread 1)
ORA-00312: online log 2 thread 1:
'+DATAC1/ORCL/ONLINELOG/group_2.694.1155482175'
ORA-00312: online log 2 thread 1:
'+RECOC1/ORCL/ONLINELOG/group_2.625.1155482177'

过一会,其状态变为Inactive,就可以删除了。如果实在等不急,也可以运行命令ALTER SYSTEM CHECKPOINT

ALTER DATABASE DROP LOGFILE GROUP 2;
ALTER DATABASE ADD LOGFILE THREAD 1 GROUP 2 ('+DATAC1', '+RECOC1') SIZE 1G;
ALTER DATABASE DROP LOGFILE GROUP 5;

在这里插入图片描述
实例2也可以照此操作(连接到实例2运行):

ALTER DATABASE ADD LOGFILE THREAD 2 GROUP 5 ('+DATAC1') SIZE 200M;
alter system switch logfile;
ALTER SYSTEM CHECKPOINT;
ALTER DATABASE DROP LOGFILE GROUP 4;
ALTER DATABASE ADD LOGFILE THREAD 2 GROUP 4 ('+DATAC1', '+RECOC1') SIZE 1G;
ALTER DATABASE DROP LOGFILE GROUP 5;

好了,修改成功。
在这里插入图片描述

相关推荐

  1. redolog、undolog和binlog日志文件详解

    2023-12-15 06:16:04       13 阅读
  2. Linux磁盘分区类型及文件系统扩容

    2023-12-15 06:16:04       18 阅读
  3. MySQL中binlog和redolog有什么区别?

    2023-12-15 06:16:04       14 阅读
  4. 统计文件夹所有文件字数

    2023-12-15 06:16:04       20 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-15 06:16:04       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-15 06:16:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-15 06:16:04       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-15 06:16:04       20 阅读

热门阅读

  1. 【springboot】【easyexcel】excel文件读取

    2023-12-15 06:16:04       38 阅读
  2. Android 修改状态栏背景半透明显示

    2023-12-15 06:16:04       41 阅读
  3. Angular 2 学习笔记

    2023-12-15 06:16:04       37 阅读
  4. Android笔记:SwipeRefreshLayout 自动刷新

    2023-12-15 06:16:04       34 阅读
  5. 数据仓库相关概念

    2023-12-15 06:16:04       43 阅读
  6. c语言多线程队列实现

    2023-12-15 06:16:04       40 阅读
  7. Redis—SpringDataRedis

    2023-12-15 06:16:04       27 阅读
  8. npm install -g node-gyp error -13

    2023-12-15 06:16:04       33 阅读