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            02          1          338    209715200          512          2 NO          CURRENT              2838640 14-DEC-23        9295429630892703743                      03          2            1    209715200          512          2 NO          INACTIVE             2195630 13-DEC-23                    2713793 14-DEC-23            04          2            2    209715200          512          2 NO          CURRENT              2713793 14-DEC-23        9295429630892703743                      0SQL> 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                              01           ONLINE    +DATAC1/ORCL/ONLINELOG/group_1.693.1155482175    NO                               02           ONLINE    +RECOC1/ORCL/ONLINELOG/group_2.625.1155482177    YES                              02           ONLINE    +DATAC1/ORCL/ONLINELOG/group_2.694.1155482175    NO                               03           ONLINE    +DATAC1/ORCL/ONLINELOG/group_3.697.1155482693    NO                               03           ONLINE    +RECOC1/ORCL/ONLINELOG/group_3.626.1155482693    YES                              04           ONLINE    +DATAC1/ORCL/ONLINELOG/group_4.698.1155482693    NO                               04           ONLINE    +RECOC1/ORCL/ONLINELOG/group_4.627.1155482693    YES                              08 rows selected.

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

SQL> select thread#,status from v$thread;THREAD#    STATUS
__________ _________1 OPEN2 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 requiredtwo log files per enabled thread.
*Action:   Either drop fewer logs or disable the thread before deleting thelogs. 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;

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/229028.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JUC并发编程 06——Synchronized与锁升级

一.Java对象内存布局和对象头 在HotSpot虚拟机里,对象在堆内存中的存储布局可以划分为三个部分:对象头(Header) 、实例数据 (Instance Data) 和 对文填充 (Padding)。 对象内部结构分为:对象头、实例数据、对齐填充(保证8个字节的…

单机多卡训练-DDP

DDP原理: 为什么快? DDP通过Ring-Reduce(梯度合并)的数据交换方法提高了通讯效率,并通过启动多个进程的方式减轻Python GIL的限制,从而提高训练速度。 神经网络中的并行有以下三种形式: Data…

软件设计师——计算机组成原理(三)

📑前言 本文主要是【计算机组成原理】——软件设计师——计算机组成原理的文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是听风与他🥇 ☁️博客首页:CSDN主页听风与他 …

runCatching异常捕获onSuccess/onFailure返回函数,Kotlin

runCatching异常捕获onSuccess/onFailure返回函数,Kotlin fun test(a: Int, b: Int) {runCatching {a / b}.onSuccess {println("onSuccess: $it")return ok(it)}.onFailure {println("onFailure: $it")return fail(it)} }fun ok(o: Any) {prin…

echarts地图的常见用法:基本使用、区域颜色分级、水波动画、区域轮播、给地图添加背景图片和图标、3d地图、飞线图

前言 最近几天用echarts做中国地图,就把以前写的demo:在vue中实现中国地图 拿来用,结果到项目里直接报错了,后来发现是因为版本的问题,没办法只能从头进行踩坑了。以下内容基于vue3 和 echarts 5.32 基本使用 获取地…

Linux环境下HTTP请求的代码详解与实例

嘿,Linux狂热者们,是时候让我们在这个充满激情的平台上探索一下HTTP协议的奥秘了。我知道,对于这个我们每天都在使用,但却可能没深入了解过的HTTP,你们一定充满了好奇和期待。那么,让我们一起踏上这趟探索之…

fripside - promise lrc

[ti:promise] [ed:2] [rt:20] [ml:0|0] [00:05.172]words:Satoshi Yaginuma, Shinichiro Yamashita [00:09.664]music&arrangement:Satoshi Yaginuma, Shigetoshi Yamada [00:14.565]PCゲーム「ENGAGE LINKS」 (Alcot) エンディングテーマ [00:20.000] [00:46.442]朝の陽射…

教师如何维护学生的自尊心

作为教师,我们不仅要传授知识,更要关心学生的身心健康,特别是他们的自尊心。自尊心是个人自我价值的重要体现,对学生的学习、生活和未来的发展都有深远的影响。因此,维护学生的自尊心是教师的重要责任。 教师要尊重每…

波奇学Linux:进程终止

写时拷贝底层原理图 子进程谁先运行,由调度器决定 进程退出场景 代码运行完毕,结果正确:有返回值,返回0 代码运行完毕,结果不正确:有返回值,返回非0 代码异常终止。没有返回值 return 0的…

Cuttlefish安装和运行

1.验证KVM可用性(X86机器) grep -c -w "vmx\|svm" /proc/cpuinfo 如果返回非0值,则说明kvm已经配置好。 2.安装Cuttlefish模拟器 sudo apt install git devscripts config-package-dev debhelper-compat golang curlgit clone https://github.com/goo…

十七、如何将MapReduce程序提交到YARN运行

1、启动某个节点的某一个用户 hadoopnode1:~$ jps 13025 Jps hadoopnode1:~$ yarn --daemon start resourcemanager hadoopnode1:~$ jps 13170 ResourceManager 13253 Jps hadoopnode1:~$ yarn --daemon start nodemanager hadoopnode1:~$ jps 13170 ResourceManager 15062 Jp…

【小沐学Python】Python实现通信协议(grpc)

文章目录 1、简介2、安装3、定义接口4、编译生成5、代码编写5.1 服务端5.2 客户端5.3 运行测试 结语 1、简介 https://grpc.io/docs/what-is-grpc/introduction/ https://github.com/grpc/grpc gRPC 是一种现代、开源、高性能的远程过程调用 (RPC) 可以…

Python生成器(Generator)的应用场景和使用(继续更新...)

学习网页: Welcome to Python.orghttps://www.python.org/https://www.python.org/ Python生成器(Generator) 生成器在Python中有很多应用场景,以下是一些常见的应用场景: 处理大数据量和耗时操作的场景&#xff…

Mybatis在新增某个数据后,如何获取新增数据的id

在某些业务中&#xff0c;我们在新增一条数据之后&#xff0c;需要拿到这条数据的id来对这条数据进行后续的一个操作&#xff0c;如何拿取id呢&#xff1f; 使用的是<insert> 中的useGeneratedKeys 和 keyProperty 两个属性 1.在Mybatis Mapper文件中添加属性 “useGene…

【STM32】STM32学习笔记-对射式红外传感器计次 旋转编码器计次(12)

00. 目录 文章目录 00. 目录01. NVIC相关函数1.1 NVIC_PriorityGroupConfig函数1.2 NVIC_PriorityGroup类型1.3 NVIC_Init函数1.4 NVIC_InitTypeDef类型 02. 外部中断相关API2.1 GPIO_EXTILineConfig2.2 EXTI_Init2.3 EXTI_GetITStatus2.4 EXTI_ClearITPendingBit2.5 中断回调函…

Zabbix 优缺点、监控模式、监控项、触发器、动作、自动发现及报警配置等整理:

Zabbix 优缺点&#xff1a; 优点&#xff1a; 开源&#xff0c;无软件使用成本。 使用C语言编写&#xff0c;性能较好&#xff0c;与底层硬件贴合。 丰富的可视化选项。 内置多种监控模板&#xff0c;支持设备种类广泛。 配置简单&#xff0c;服务器端对设备要求不高&…

大数据技术之 Kettle(PDI)

Kettle 第一章 Kettle概述1.1、ETL简介1.2、Kettle简介1.3、作业 和 转换 概念1.4、核心组件1.5、下载安装 第二章 控件使用2.1、初体验&#xff1a;csv 转换 excel 示例2.2、转换2.2.1、输入控件2.2.1.1、表输入 2.2.2、输出控件2.2.2.1、表输出2.2.2.2、更新&插入/更新2.…

【数据结构—队列的实现】

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言 一、队列 1.1队列的概念及结构 二、队列的实现 2.1头文件的实现—Queue.h 2.2源文件的实现—Queue.c 2.3源文件的测试—test.c 三、测试队列实际数据的展示 3.…

获取文件路径里的文件名(不包含扩展名)

“./abc/abc/llf.jpg” 写一个代码&#xff0c;让我获得“llf”这段字符串 import osfile_path "./abc/abc/llf.jpg" file_name os.path.splitext(os.path.basename(file_path))[0] print(file_name)在这个代码中&#xff0c;我们使用了os.path模块来处理文件路径…

LeetCode 每日一题 Day 14(Hard)Day 15|

2276. 统计区间中的整数数目 给你区间的 空 集&#xff0c;请你设计并实现满足要求的数据结构&#xff1a; 新增&#xff1a;添加一个区间到这个区间集合中。 统计&#xff1a;计算出现在 至少一个 区间中的整数个数。 实现 CountIntervals 类&#xff1a; CountIntervals()…