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

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

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

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

作者:胖头鱼的鱼缸(尹海文)
Oracle ACE Pro: Database
PostgreSQL ACE Partner10年数据库行业经验
拥有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_revertb. 恢复所有实例至旧的家目录
srvctl transfer instance -db [db_name]

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

  1. 将部分实例从新的家目录恢复至旧的家目录
a. 恢复数据库家目录配置
srvctl modify database -db [db_name] -localrolling_revertb. 恢复指定实例至旧的家目录
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 -rollbackb. 修复目标家目录c. 将实例转移回目标家目录
srvctl transfer instance -db [db_name]

总结

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

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

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

相关文章

Trae CN IDE自动生成注释功能测试与效率提升全解析

Trae CN IDE 的自动注释功能可以通过 AI 驱动的代码分析生成自然语言注释,以下是具体测试方法和优势总结: 一、Python 代码注释生成测试 1. 测试环境 IDE:Trae CN IDE(需确认支持 Python)代码示例: def …

软考 系统架构设计师系列知识点之杂项集萃(79)

接前一篇文章:软考 系统架构设计师系列知识点之杂项集萃(78) 第141题 软件测试一般分为两个大类:动态测试和静态测试。前者通过运行程序发现错误,包括()等方法;后者采用人工和计算机…

有公网ip但外网访问不到怎么办?内网IP端口映射公网连接常见问题和原因

有公网IP但外网访问不到的核心原因通常包括:端口未正确映射、防火墙限制、DNS解析问题、运营商端口屏蔽或路由配置错误‌。需依次排查这些关键环节,其中端口映射和防火墙设置是最常见的原因。‌‌ ‌内网IP端口映射公网连接常见问题和原因及解决方案 1…

HttpServletResponse 对象用来做什么?

HttpServletResponse 对象是由 Servlet 容器创建并传递给 Servlet 的 service() 方法(以及间接传递给 doGet(), doPost() 等方法)的。它的核心作用是让 Servlet 能够向客户端(通常是浏览器)发送 HTTP 响应。 通过 HttpServletRes…

FTPS、HTTPS、SMTPS以及WebSockets over TLS的概念及其应用场景

一、什么是FTPS? FTPS,英文全称File Transfer Protocol with support for Transport Layer Security (SSL/TLS),安全文件传输协议,是一种对常用的文件传输协议(FTP)添加传输层安全(TLS)和安全套接层(SSL)加密协议支持的扩展协议。…

前端​​HTML contenteditable 属性使用指南

​​什么是 contenteditable? HTML5 提供的全局属性,使元素内容可编辑类似于简易富文本编辑器兼容性​​ 支持所有现代浏览器(Chrome、Firefox、Safari、Edge) 移动端(iOS/Android)部分键盘行为需测试 &l…

持续领跑中国异地组网路由器市场,贝锐蒲公英再次登顶销量榜首

作为国产远程连接SaaS服务的创领者,贝锐持续引领行业发展,旗下贝锐蒲公英异地组网路由器,凭借出色的技术实力和市场表现,斩获2024年线上电商平台市场销量份额中国第一的佳绩,充分彰显了其在网络解决方案与异地组网领域…

五大主流大模型推理引擎深度解析:llama.cpp、vLLM、SGLang、DeepSpeed和Unsloth的终极选择指南

在人工智能的竞技场上,大模型推理框架就像是为超级跑车精心调校的引擎系统——选对了能让你的AI应用一骑绝尘,选错了可能连"停车场"都开不出去。这些框架的核心价值在于将训练好的"大脑"转化为实际可用的"肌肉记忆",而选择标准则需要像职业赛…

前端面试二之运算符与表达式

目录 1.JavaScript 中的 和 运算符 2.|| (逻辑或) 运算符 与 ES6 默认参数的区别 与 ?? (空值合并运算符) 的区别 3.?.(可选链)运算符 (1). 安全访问深层嵌套属性 (2). 安全调用可能不存在的函数 (3). 安全访问数组元素 4.展开运算符 (..…

GB/T 24507-2020 浸渍纸层压实木复合地板检测

浸渍纸层压实木地板是指以一层或多层专用纸浸渍热固性氨基树脂,经干燥后铺装在胶合板基材正面,专用纸表面加耐磨层,基材背面可加平衡层,经热压、成型的地板。 GB/T 24507-2020 浸渍纸层压实木复合地板测试项目: 测试项…

AWS DocumentDB vs MongoDB:数据库的技术抉择

随着非关系型数据库在现代应用中的广泛应用,文档型数据库因其灵活的结构与出色的扩展性,逐渐成为企业开发与架构设计中的核心选择。在众多文档数据库中,MongoDB 凭借其成熟生态与社区支持占据主导地位;与此同时,AWS 提…

微信小程序实现运动能耗计算

微信小程序实现运动能耗计算 近我做了一个挺有意思的微信小程序,能够实现运动能耗的计算。只需要输入性别、年龄、体重、运动时长和运动类型这些信息,就能算出对应的消耗热量。 具体来说,在小程序里,性别不同,身体基…

三轴地磁传感器的主要应用场景

随着材料科学、微电子技术以及传感器技术的不断进步,三轴地磁传感器的性能将不断提升,包括提高精度、降低功耗、增强抗干扰能力等。 RAMSUN提供的是一款三轴地磁传感器采用第三代AMR技术,带有自动温度补偿的三轴磁传感器,该产品因…

使用 SseEmitter 实现 Spring Boot 后端的流式传输和前端的数据接收

1.普通文本消息的发送和接收 GetMapping("/stream")public SseEmitter streamResponse() {SseEmitter emitter new SseEmitter(0L); // 0L 表示永不超时Executors.newSingleThreadExecutor().execute(() -> {try {for (int i 1; i < 5; i) {emitter.send(&q…

nssm配置springboot项目环境,注册为windows服务

NSSM 的官方下载地址是&#xff1a;NSSM - the Non-Sucking Service Manager1 使用powershell输入命令,java项目需要手动配置和依赖nacos .\nssm.exe install cyMinio "D:\minio\启动命令.bat" .\nssm.exe install cyNacos "D:\IdeaProject\capacity\nacos-s…

WinCC学习系列-基础概念

从本节起&#xff0c;学习和了解西门子最新SCADA软件WinCC 8.0&#xff0c;将从基础概念开始&#xff0c;到入门操作&#xff08;创建项目、组态通信、组态过程画面、组态面板类型和变量结构、归档和显示值、组态消息&#xff09;&#xff0c;到高级应用&#xff08;WinCC选件、…

数据分析图表类型及其应用场景

说明&#xff1a;顶部HTML文件下载后可以直接查看&#xff0c;带有示图。 摘要 数据可视化作为现代数据分析的核心环节&#xff0c;旨在将复杂、抽象的数据转化为直观、易懂的图形形式。这种转化显著提升了业务决策能力&#xff0c;优化了销售与营销活动&#xff0c;开辟了新…

《江西棒垒球》败方mvp叫什么·棒球1号位

败方mvp也是MVP&#xff0c;以棒球运动为例&#xff0c;MLB&#xff08;美国职棒大联盟&#xff09;的个人奖项旨在表彰球员在不同领域的卓越表现&#xff0c;涵盖常规赛和季后赛的杰出成就。 常规赛核心奖项 最有价值球员奖&#xff08;MVP&#xff09; 定义&#xff1a;表彰…

CD43.vector模拟实现(2)

目录 1.拷贝构造函数 写法1 写法2 测试代码 调试找bug 解决方法:修改拷贝构造函数 测试代码 2.operator[ ] 测试代码 1.没有const修饰 2.有const修饰 3.insert 迭代器失效问题 承接CD42.vector模拟实现(1)文章 1.拷贝构造函数 设置start、finish和end_of_storag…

【C/C++】入门grpc的idl

文章目录 grpc idl 简单介绍1. 文件结构组织规范文件命名包结构&#xff1a;推荐&#xff1a;一个文件只定义一个 service&#xff0c;如果 service 很复杂&#xff0c;可拆分多个 proto 文件。 2. 消息定义规范命名风格字段编号&#xff1a;示例&#xff1a; 3. 服务与 RPC 设…