数据库管理-第333期 Oracle 23ai:RAC打补丁完全不用停机(20250604)

news2025/6/6 13:54:03

数据库管理333期 2025-06-04

  • 数据库管理-第333期 Oracle 23ai:RAC打补丁完全不用停机(20250604)
    • 1 概念
    • 2 要求
    • 3 操作流程
    • 4 转移失败处理
    • 总结

数据库管理-第333期 Oracle 23ai:RAC打补丁完全不用停机(20250604)

作者:胖头鱼的鱼缸(尹海文)
Oracle ACE Pro: Database
PostgreSQL ACE Partner

10年数据库行业经验
拥有OCM 11g/12c/19c、MySQL 8.0 OCP、Exadata、CDP等认证
墨天轮MVP,ITPUB认证专家
圈内拥有“总监”称号,非著名社恐(社交恐怖分子)

公众号:胖头鱼的鱼缸
CSDN:胖头鱼的鱼缸(尹海文)
墨天轮:胖头鱼的鱼缸
ITPUB:yhw1809。
除授权转载并标明出处外,均为“非法”抄袭

3498ff20bcec87e9052f961f06737f3.png
在Oracle Database 23ai之前的版本中,在RAC集群环境下打补丁,是需要使用滚动升级的方式来执行补丁升级操作的,如果不配置TAF/TAC的话,势必会出现在停机节点上的应用连接会中断的现象,如果应用配置不合理很可能造成业务异常现象。
在23ai中Oracle引入了一个新技术叫本地滚动数据库维护(Local Rolling Database Maintenance),可以实现RAC打补丁的完全不停机。

1 概念

从23ai开始,可以在本地为Oracle RAC和Oracle RAC One Node部署应用滚动补丁并执行其他维护操作。
本地滚动是从同一节点上的第二个Oracle家目录创建并启动第二个数据库实例,而不是停止数据库实例并将工作负载重新定位到另一个节点上的另一个实例。本地滚动数据库维护减少了迁移连接的时间。此功能通过将工作负载保持在本地节点上来减少停机时间。必须确保有足够的CPU、内存和其他计算资源来临时运行两个实例。
本地滚动可确保在两个Oracle家目录之间滚动迁移数据库期间,群集中至少运行相同数量的Oracle RAC和Oracle RAC One Node实例。使用此功能,您可以在单个集群节点内进行错位滚动补丁加载。
当您使用本地滚动式就地修补时,Oracle RAC会在新的Oracle家目录中创建第二个实例,启动第二个示例,然后在您要修补的节点上停止旧Oracle家目录的第一个实例。此功能还保留了PDB的位置和服务,因此节点继续执行与补丁加载之前相同的工作。

2 要求

使用本地滚动数据库维护需要满足以下条件:

  • 使用OMF(Oracle Managed Files)
  • 使用spfile(Server Parameters File)
  • 在本地滚动操作完成后重新配置初始化参数THREAD和UNDO_TABLESPACE
  • 在本地滚动升级过程中不要执行srvctl add instance、srvctl remove instance或srvctl modify instance命令
  • 必须确保有足够的可用存储空间为每个实例创建新的redo线程(redo thread)和新的undo表空间。当您一次使用此功能时,此功能会为每个新实例创建一个新的redo线程和一个新的undo表空间。第二次和后续使用此功能时,将使用以前使用的旧的redo线程和undo表空间,而不会创建新的redo和undo。

3 操作流程

本地滚动升级的流程:

  1. 创建新Oracle家目录并解压软件
mkdir -p /u01/app/oracle/product/23.4.0/dbhome_1
chgrp oinstall /u01/app/oracle/product/23.4.0/dbhome_1
cd /u01/app/oracle/product/23.4.0/dbhome_1
unzip -q /tmp/db_home.zip
  1. 执行新Oracle家目录的升级操作
cd /u01/app/oracle/product/23.4.0/dbhome_1
./runInstaller -applyRU patch_directory_location
  1. 为数据库开启本地滚动升级
srvctl modify database –db [db_name] -oraclehome new_Oracle_home -localrolling
  1. 将RAC和RAC One Node的PDB和服务从旧家目录转换到新的家目录
$ srvctl transfer instance –d mydb [-node node_list] 
{[-stopoption stop_option] | -rollback} [-drain_timeout timeout] [-verbose]

新实例从新的Oracle家目录启动,并等待-drain_timeout参数中指定的时间,以便会话迁移到新实例。当所有会话迁移到新实例时,旧实例停止。
如果不指定-drain_timeout,则使用指定节点上数据库所有运行服务的最大配置超时时间。

  1. 验证
srvctl config database -db [db_name]
  1. 根据需求添加或修改service和连接字符串

4 转移失败处理

在本地滚动数据库维护期间,某些实例可能无法转移到目标Oracle家目录。使用下面任何一个方式,在本地滚动模式下从失败的转移中恢复。

  1. 将所有实例从新的家目录恢复至旧的家目录
a. 恢复数据库家目录配置
srvctl modify database -db [db_name] -localrolling_revert

b. 恢复所有实例至旧的家目录
srvctl transfer instance -db [db_name]

此过程将数据库还原到本地滚动之前的原始状态。所有实例都从旧的Oracle家目录开始运行。您可以删除之前的目标Oracle家目录,创建新的Oracle家目录,然后再次启动本地滚动过程。

  1. 将部分实例从新的家目录恢复至旧的家目录
a. 恢复数据库家目录配置
srvctl modify database -db [db_name] -localrolling_revert

b. 恢复指定实例至旧的家目录
srvctl transfer instance -db [db_name] -node node_list
# 在转移的节点上修复本地滚动目标Oracle家目录。如果仍有任何实例在本地滚动目标Oracle家目录上运行,则数据库将进入本地滚动REVERT状态。

c. 使用相同的目标Oracle家目录将数据库修改为TRANSFER状态以转移实例
srvctl modify database -db [db_name] -localrolling -oraclehome target_Oracle_home
  1. 将部分实例从新的家目录恢复至旧的家目录
a. 恢复指定实例至旧的家目录
srvctl transfer instance -db [db_name] -node node_list -rollback

b. 修复目标家目录

c. 将实例转移回目标家目录
srvctl transfer instance -db [db_name]

总结

本期简单介绍了Oracle Database 23ai引入的可以实现完全不停机打补丁的本地滚动维护,但由于还没有本地部署版本放出,待对应版本放出后再演示。
老规矩,知道写了些啥。

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

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

相关文章

【DAY39】图像数据与显存

内容来自浙大疏锦行python打卡训练营 浙大疏锦行 知识点: 图像数据的格式:灰度和彩色数据模型的定义显存占用的4种地方 模型参数梯度参数优化器参数数据批量所占显存神经元输出中间状态 batchisize和训练的关系 作业:今日代码较少&#xff0…

AI代码库问答引擎Folda-Scan

简介 什么是 Folda-Scan ? Folda-Scan 是一款革命性的智能项目问答工具, 完全在浏览器中本地运行 。它使用高级语义矢量化将您的代码库转变为对话伙伴,使代码理解和 AI 协作变得前所未有的简单和安全。其采用尖端的 Web 技术和 AI 算法构建&…

Kafka深度技术解析:架构、原理与最佳实践

一、 消息队列的本质价值与核心特性 1.1 分布式系统的“解耦器” 异步通信模型 代码列表 graph LRA[生产者] -->|异步推送| B[(消息队列)]B -->|按需拉取| C[消费者1]B -->|按需拉取| D[消费者2] 生产者发送后立即返回,消费者以自己的节奏处理消息。典…

基于cnn的通用图像分类项目

背景 项目上需要做一个图像分类的工程。本人希望这么一个工程可以帮助学习ai的新同学快速把代码跑起来,快速将自己的数据集投入到实战中! 代码仓库地址:imageClassifier: 图片分类器 数据处理 自己准备的分类图像,按照文件夹分…

Linux环境管道通信介绍

目录 前言 一、通信的本质 二、匿名管道 1.通信资源——文件缓冲区 2.为什么叫匿名管道? ​编辑 3.匿名管道的创建过程 4.pipe函数 小结 5.一些问题 1)匿名管道为什么要求父子进程将原本的读/写权限只保留一个 2)为什么一开始父进程要以读/写…

DIC技术助力金属管材全场应变测量:高效解决方案

在石油管道、汽车排气系统、航空航天液压管路等工业场景中,金属管作为关键承力部件,其拉伸性能(如弹性极限、颈缩行为、断裂韧性)直接影响结构安全性和使用寿命。 实际应用中,选用合适的管材非常重要,通过…

嵌入式学习--江协stm32day1

失踪人口回归了,stm32的学习比起51要慢一些,因为涉及插线,可能存在漏插,不牢固等问题。 相对于51直接对寄存器的设置,stm32因为是32位修改起来比较麻烦,江协课程是基于标准库的,是对封装函数进…

湖北理元理律师事务所:债务化解中的心理重建与法律护航

专业法律顾问视角 一、债务危机的双重属性:法律问题与心理困境 在对173名债务人的调研中发现: 68%存在焦虑引发的决策障碍(如不敢接听银行电话) 42%因羞耻感隐瞒债务导致雪球效应 湖北理元理律师事务所创新采用法律-心理双轨…

【更新中】(文档+代码)基于推荐算法和Springboot+Vue的购物商城

概要设计 本节规划和定义了Woodnet桌游电商平台的软件概要设计说明书,描述了软件的总体设计、接口设计、运行设计、系统数据库结构设计以及系统出错处理设计,从整体上说明了系统设计的结构层次、处理流程、系统用例等。 本系统是一个独立的系统&#x…

六种高阶微分方程的特解(原创:daode3056)

高阶微分方程的通解是指包含所有可能解的解的表达式。对于一个 n 阶微分方程,其通解通常包含 n 个任意常数。这些任意常数可以通过初始条件或边界条件来确定。高阶微分方程的特解是指在通解中,特定地选择了一组常数,使得解满足给定的初始条件…

【C++11(上)】—— 我与C++的不解之缘(三十)

一、C11 这里简单了解一下C发展好吧: C11是C的第二个大版本,也是自C98以来最重要的一个版本。 它引入了大量的更改,它曾被人们称为C0x,因为它被期待在2010年之前发布;但在2011年8月12日才被采纳。 C03到C11花了8年时间…

【多线程初阶】wait() notify()

文章目录 协调多个线程间的执行顺序join 和 wait 区别sleep 和 wait 区别 wait()方法线程饿死调用 wait()唤醒 wait() notify()方法wait() 和 notify() 需对同一对象使用确保先 wait ,后 notify多个线程在同一对象上wait notify随机唤醒一个wait notifyAll()方法应用 wait() 和…

安全-JAVA开发-第二天

Web资源访问的流程 由此可见 客户访问JAVA开发的应用时 会先通过 监听器(Listener)和 过滤器(Filter) 今天简单的了解下这两个模块的开发过程 监听器(Listener) 主要是监听 我们触发了什么行为 并进行反应…

Python基础:文件简单操作

🍃引言 手把手带你快速上手Python Python基础专栏 一、🍃文件是什么 变量是把数据保存到内存中. 如果程序重启/主机重启, 内存中的数据就会丢失。 要想能让数据被持久化存储, 就可以把数据存储到硬盘中. 也就是在文件中保存。 通过文件的后缀名, 可以看…

深度学习项目之RT-DETR训练自己数据集

RT-DETR 1.模型介绍📌 什么是 RT-DETR ?📖 核心改进点📊 结构示意🎯 RT-DETR 优势⚠️ RT-DETR 缺点📈 应用场景📑 论文 & 官方仓库2.模型框架3.Yaml配置文件4.训练脚本5.训练完成截图6.总结…

以太网帧结构和封装【二】-- IP头部信息

1字节 byte 8比特 bit 【位和比特是同一个概念】 比特/位,字节之间的关系是: 位(Bit) 中文名:位(二进制位)。 英文名:Bit(Binary Digit 的缩写)。 含义&…

Promtail采集服务器本地日志存储到Loki

✅ 一、前提条件 已安装 Loki 服务 日志文件目录可访问(如 /var/log) 具备 sudo 权限 🧩 二、下载 Promtail 二进制文件 # 替换为你想要的版本 VERSION"3.5.1"# 创建目录 sudo mkdir -p /opt/promtail cd /opt/promtail# 下载并…

学习STC51单片机27(芯片为STC89C52RCRC)

每日一言 你读过的书、走过的路、流过的汗,终将成就独一无二的你。 硬件:LCD1602液晶显示 非标协议外设 概述 LCD1602(Liquid Crystal Display)是一种工业字符型液晶,能够同时显示 1602 即 32 字符(16列两行) 那我…

DA14531_beacon_大小信标设备开发

蓝牙信标是一款通过广播指定蓝牙信号,实现信标信号扫描、识别和获得辅助信息的电子产品。 不同品名的蓝牙信标采用相同的 UUID 和广播信号格式,但在 MAC 地址、工作寿命、体积和广播周期上有所差异。 小武编程巧用DA14531开发一款蓝牙信标.

【算法训练营Day06】哈希表part2

文章目录 四数相加赎金信三数之和四数之和 四数相加 题目链接:454. 四数相加 II 这个题注意它只需要给出次数,而不是元组。所以我们可以分治。将前两个数组的加和情况使用map存储起来,再将后两个数组的加和情况使用map存储起来,ke…