27-Oracle 23 ai Automatic Rollback Quarantine(事务精准隔离)

一次ora-600 ktubko_1故障简单分析 =================================================================================================== 0. summary 1. 故障现象 . 1.1 Developer Zone - MySQL工程师版块 . 1.2 Downloads - MySQL下载 阅读详情

小伙伴们是不是大部分都已经迁移到19c了,10g、11g都慢慢进入了替换和主键开始养老阶段。12c~开始清新的CDB、PDB,

如果有那么一刻业务在PDB崩了,会不会一个PDB影响多个,甚至把CDB带崩。Oracle用了什么手段进行事务隔离,隔离到什么程度。

一、从前熟悉的配方

1. 崩溃恢复失败 = 实例级宕机​
当数据库在崩溃恢复(Crash Recovery)阶段遇到事务回滚失败​(如坏块、内存错误)时:
  • ​触发致命错误​:抛出ORA-00600、ORA-07445等内部错误
  • ​强制终止实例​:整个数据库实例立即中止(SHUTDOWN ABORT)
  • ​影响范围​:单实例数据库全体宕机;RAC中单个节点故障可能蔓延至整个集群
2. 人工介入

事务崩溃,人工来凑​:

若事务恢复遇到物理坏块(ORA-01578),直接引发实例崩溃,DBA必须人肉手敲执行:

# 1. 重启至mount状态
STARTUP MOUNT;
# 2. 尝试修复坏块(可能丢失数据)
RECOVER DATABASE USING BACKUP CONTROLFILE; 
--基于时间点
RECOVER DATABASE USING BACKUP CONTROLFILE UNTIL TIME 'YYYY-MM-DD:HH24:MI:SS';
--使用备份控制文件进行不完全恢复,输入CANCEL或应用所有可用的归档日志和在线日志
RECOVER DATABASE USING BACKUP CONTROLFILE UNTIL CANCEL;
--基于SCN的不完全恢复
RECOVER DATABASE USING BACKUP CONTROLFILE UNTIL CHANGE <scn_number>;
ALTER DATABASE OPEN RESETLOGS;


# 3. 强制打开数据库(隐含数据风险)
ALTER DATABASE OPEN RESETLOGS;

一、Rollback Quarantined特性:数据库的"隔离机制"

​目标​:解决崩溃恢复(Crash Recovery)​过程中因事务恢复失败导致的实例级宕机问题。

工作流程​
  • 1.崩溃恢复阶段​
    • 数据库重启时需回滚未提交事务(Transaction Recovery)
    • 若遇到以下故障,恢复过程会失败:
      • ​物理损坏​(例如ORA-01578坏块)
      • ​逻辑错误​(例如ORA-00600内部错误)
      • ​内存/状态损坏​(ORA-07445)
  • 2.事务隔离触发​

             恢复失败时,Oracle 23 ai 将问题事务标记为隔离状态(Quarantined)​​

             该事务持有的行锁持续存在,但数据库其他部分继续运行​

  • 3.持久化存储​

          隔离事务信息存入数据字典表(DBA_QUARANTINED_TRANSACTIONS)

          支持RAC多节点访问 

二、Quarantine技术特点:高可用性的"安全气囊"

​1. 故障熔断​
  • ​自动隔离​:单个事务故障不扩散至整个实例
  • ​阈值保护​:单PDB内隔离事务达默认阈值(3个)时,SHUTDOWN ABORT自动关闭该PDB(其他PDB不受影响)
2.其他数据库在事务恢复失败时同样面临硬中断问题:
  • ​MySQL​:遇到崩溃恢复失败直接标记实例为CRASHED,innodb_force_recovery强制启动(可能丢数据)
  • ​SQL Server​:通过DBCC CHECKDB修复坏块,无法隔离单个事务,修复期间数据库不可用
  • ​PostgreSQL​:使用pg_resetwal重置事务日志,停机且丢失未提交事务
  • Oracle 23ai:实现事务级隔离恢复,在保证数据一致性的前提下最大化可用性。熔断机制 + 细粒度恢复控制

 2. 查询管理

-- 查看隔离事务详情,正常情况下,无信息
SELECT usn, slt, sqn, reason, trace_file_name FROM dba_quarantined_transactions;
SYS@CDB$ROOT> SELECT usn, slt, sqn, reason, trace_file_name FROM dba_quarantined_transactions;
no rows selected

-- 异常输入输出示例:
USN  SLT  SQN  REASON              TRACE_FILE_NAME
6    18   10   ORA-00600[ktubko_1] /opt/oracle/diag/...trc

四、Oracle 23ai 实操脚本

S1:模拟事务隔离
-- 步骤1:制造无法回滚的事务(需SYSDBA权限)
ALTER SYSTEM SET TRANSACTION_RECOVERY=DISABLED;  -- 禁用自动恢复
SYS@CDB$ROOT> ALTER SYSTEM SET TRANSACTION_RECOVERY=DISABLED;

System altered.
CREATE TABLE employees (ID int PRIMARY KEY,NAME varchar2(100));
INSERT INTO employees  VALUES (999,'test999');    -- 插入数据不提交
SHUTDOWN ABORT;                                   -- 强制终止崩溃

-- 步骤2:重启后检查隔离事务
STARTUP;
SELECT usn, slt, sqn, reason FROM dba_quarantined_transactions;

 S2:清除隔离事务

-- 根据查询结果清除隔离事务
ALTER DATABASE DROP TRANSACTION QUARANTINE;

-- 重新启用事务恢复
ALTER SYSTEM SET TRANSACTION_RECOVERY=ENABLED;

 S3:隔离场景处理

-- 当PDB因隔离事务过多关闭时
ALTER PLUGGABLE DATABASE FREEPDB1 OPEN;
-- 重新打开PDB

-- 检查并逐个清除隔离事务
SELECT * FROM cdb_quarantined_transactions;
--生产环境需优先分析trace_file_name中的错误原因

其他使用物理和逻辑RMAN Block Media Recovery、逻辑上的Recreate the Data Segment,极端场景操作单独开一个记录。

五、23 ai 的变革性

Oracle 23ai的Automatic Rollback Quarantine本质是"​故障隔离​":

历史​:早期版本中,事务恢复失败=实例灾难,无弹性处理机制。

精准​:将问题事务限制在"隔离区",避免全局崩溃

通道​:熔断机制保护核心业务PDB不受牵连

23ai革新​:
  • 引入 ​事务隔离区(Quarantine)​​ 概念
  • 通过DBA_QUARANTINED_TRANSACTIONS实现持久化跟踪
  • 结合熔断机制保护全局稳定性
行业思考​:
  • 将事务恢复失败的处理从 ​​“小时级恢复”​​ 优化为 ​​“秒级隔离”​​
  • 为金融、医疗等零容忍中断场景提供新一级可靠性保障

TIPS:

仍在使用旧版本Oracle的小伙伴,降低风险:

预防性监控​:-定期检查V$FAST_START_TRANSACTIONS跟踪长事务。

规划​升级至23ai,获取事务隔离能力,监控DBA_QUARANTINED_TRANSACTIONS作为健康检查项。

编程范式的本质:阴阳二分,相融相异 本文源于一次真实的设计讨论,上片博客沿着四种语言实现的路子走下去,本篇博客则沿着设计模式的路线归结到计算机哲学的根。需求本身小得不能再小:给一个存放数据库读取结果的 `Dict` 列表按字段名排序。但当我们把约束加码到"字段演进时排序器永不改动"时,这个需求就不再是工程问题,而成了三种编程范式的正面交锋。沿着这条线走下去,我们最终抵达了一个更根本的结论——**编程范式不是一张并列的表格,而是一棵树,而树的根只有两个。** 阅读详情

相关推荐

【翼型】基于Matlab的NACA翼型气动性能仿真与优化【附源码】

本文详细介绍了如何使用Matlab进行NACA翼型的气动性能仿真与优化。内容涵盖从生成NACA翼型坐标、利用面板法快速估算升阻力,到进阶的粘性流模拟与优化设计入门。通过清晰的代码示例和分步指南,帮助读者掌握基于Matlab的翼型分析与优化流程,为飞行器或叶片设计提供实用工具和方法。

weixin_29032489的博客 411

Oracle RAC 集群异常故障处理系列--案例(2)ORA-00600 [ktubko_1]

实例崩溃重启 ORA-00600 [ktubko_1] ORA-00600 [4506] 业务反应出现每隔15分钟左右就会出现断联,数据库环境为三节点 RAC 12c版本。

Nuzbb的博客 1080

LIGGGHTS颗粒模拟入门:从DEM原理到工程实践

离散元法(DEM)是一种用于模拟颗粒物质行为的数值方法,其核心原理是通过计算每个颗粒的运动和相互作用来预测颗粒系统的宏观行为。该方法基于牛顿第二定律和接触力学模型,能够精确描述颗粒间的碰撞、摩擦和粘结等微观机制。在工程实践中,DEM技术为优化工业设备设计、预测材料流动和减少实验成本提供了重要价值。它广泛应用于制药造粒、矿石破碎、粉体输送和农业加工等领域,帮助工程师和研究人员深入理解颗粒系统的复杂动力学。LIGGGHTS作为一款基于LAMMPS的开源DEM软件,继承了其高效的并行计算架构,并针对颗粒模拟进行了

weixin_33979203的博客 419

Oracle静默安装,含仅软件安装和数据库安装及常见报错处理方法DBT-10317 DBT-05509 [FATAL] ORA-03114

本文详解Oracle 19c单机版静默安装与数据库创建全流程,涵盖目录配置、响应文件编写、安装及建库命令,附常见报错(如DBT-10317、ORA-03114)解析与解决方案,包含删库指令与日志分析,适合内网环境自学实战,免费干货,实用性强。

qq_41474349的博客 177

matlab tolx,Nelder-Mead算法matlab

Nelder-Mead算法适合变量数不是很多的方程求极值.原理:Nelder-Mead法是利用多面体来逐步逼近最佳点x*.设函数变量为n维,则在n维空间里多面体有(n+1)个顶点.设x1,x2,...,xn+1为多面体的顶点,且满足:f(x1)<=f(x2)<=...<=f(xn+1)Nelder-Mead法试着将多面体中最差的顶点xn+1(也就是函数的最大点)以新的最佳点替代,...

weixin_36485298的博客 1480

深入解析FastDDS:SHM与DATA-SHARING传输层的性能对比与实现细节

本文深入对比了FastDDS中SHM与DATA-SHARING两种传输层的实现机制与性能差异。SHM采用端口化共享内存模型,存在两次数据拷贝;而DATA-SHARING通过共享历史实现真正的零拷贝,大幅降低延迟与CPU占用。文章结合实战测试数据,为机器人、自动驾驶等高实时性场景提供了关键的性能优化选型与配置指南。

weixin_28358083的博客 232

Spring 事务详解:@Transactional 如何生效、何时回滚、传播行为怎么选

从订单与库存写入出发,拆解 @Transactional 的代理调用链、默认回滚规则与自调用问题;通过 Spring Boot + H2 的五个验证用例比较 REQUIRED、REQUIRES_NEW、NESTED,并说明数据库事务与 Redis、消息和远程接口的边界。

qq_74421990的博客 305

【ATC/DTC方法第一期】经典平均/昼夜温度周期ATC/DTC方法介绍(含Python代码实现)

【ATC/DTC方法第一期】经典平均/昼夜温度周期ATC/DTC方法介绍(含Python代码实现)

WW、forever的博客 484

Oracle多租户集群PDB异机恢复至单机部署数据库

本文详细演示了将Oracle RAC集群中的PDB(RMAN_PDB)通过RMAN备份恢复至单机CDB的全过程。首先在源库创建测试PDB并插入数据,随后配置RMAN备份路径,备份该PDB及其元数据文件。接着将备份文件传输至单机环境,启动实例并恢复控制文件与数据文件,最后利用DBMS_PDB.EXPOSE_PDB_FROM_RMAN生成PDB描述文件,将其插入新单机CDB中,实现PDB的独立使用。整个流程涵盖数据准备、备份、恢复及插入,完整验证了跨环境PDB迁移的可行性。

qq_57492774的博客 183

【STK】手把手教你利用STK进行仿真-STK软件简介02 STK专业分析模块

STK/Astrogator是一个交互式轨道机动和深空探测计划工具,用于飞行器运行及任务分析,通过定义推力模型、目标星历、飞行器姿态,提供轨道机动的解决及优化方案。应用Astrogator分析轨道机动的可见性和地面站覆盖,用户可以快速、方便地进行全局分析。任务控制序列保存在STK场景中,用于任务运行、快速制定精确轨道机动方案。为在轨运行的飞行器制定或执行机动计划时,分析人员可以根据飞行过程数据,如发动机定标参数、实际初始轨道,计算出推进器点火和点火时机数据,用于发出指令及精炼机动计划。

weixin_44184852的博客 1864

Python爬虫:抓取外卖平台餐厅菜单、价格与评价数据

美团外卖:国内领先的外卖平台之一,提供餐饮外卖、超市配送等服务。饿了么:另一大主流外卖平台,覆盖广泛的餐饮品类。等:国际性的外卖平台。在本文中,我们将以美团外卖为例,展示如何抓取餐厅的菜单、价格和评价等数据。我们会使用Python的爬虫库,如Scrapy和Selenium,来解决抓取任务。本文详细介绍了如何使用Python爬虫抓取外卖平台上的餐厅菜单、价格、评价等信息。我们展示了如何使用Scrapy和Selenium抓取静态与动态网页数据,如何清洗和存储数据,并讨论了如何应对外卖平台的反爬虫机制。

2201_76125261的博客 1499

Mysql数据库基础篇(三):全面掌握数据库与数据表操作:深度剖析底层文件差异与核心管理机制

如果你想彻底改掉某个字段的名字,应该使用 change。实例:将 employee表中的 name列修改为xingming注意:使用 change时,即便不改变数据类型,在指定了新列名后依然需要完整地写一遍它的数据类型与约束定义。

2501_93641778的博客 238

【一 扣子客户案例合集】【 1.3 识典古籍基于扣子智能助手的古籍数字化全流程技术解析】

古籍数字化智能处理系统全流程解析 本文详细介绍了基于扣子智能助手的古籍数字化解决方案,核心技术包括: 多层级架构设计:采用"云-边-端"三层次架构,整合高精度扫描设备与AI处理模块,实现从物理古籍到结构化数据的全流程自动化。 智能图像处理:通过12道预处理工序(包括畸变校正、污渍去除和对比度增强)处理古籍图像,采用改进的EAST算法和ViT模型实现高精度文字检测与识别,准确率达98.7%。 NLP增强处理:结合Transformer-XL预训练模型和N-gram语言模型进行文本校正,基于

商务合作|问题讨论|交流学习 请联系作者微信,加微信请务必注明来意,博客主页有联系方式 1441

oracle直方图测试

预期:没有直方图时,优化器假设 status 分布均匀(选择性 = 1/NDV ≈ 1/100),两个查询的预估行数(E-Rows)会非常接近(约 1000 行),很可能对两个查询都选择索引扫描,或者都选择全表扫描,无法区分数据量的巨大差异。

ZHANG123HUO的博客 51

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Oracle 19c RAC ASM 在线扩容实战

最近有一套 Oracle 19c RAC 数据库,DATA 磁盘组空间使用率已经接近 90%,需要扩容。环境是两节点 RAC,底层使用 Dell EMC SAN 存储,通过 Multipath 管理共享磁盘,存储侧已经分配好一块 2TB 的新 LUN,只需要在操作系统上识别,然后加入 ASM 磁盘组。整个过程不需要停库,本文记录一下实际操作步骤。这次 Oracle 19c RAC ASM 扩容整体比较顺利。

LuciferLiu_DBA 293

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

带着小白学习-微服务-5 实战:配置中心-数据库连接

如前所述,服务治理主要包含注册中心,前面所有的微服务子工程均已注册到nacos,然后由相应的应用到nacos进行拉取。接下来,我们将使用nacos的配置中心,用于保存和分发应用运行所需的动态配置。比如数据库的各类信息等。

wdyan297的博客 215

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

任务8-1 数据库用户权限管理

本实战训练MySQL权限管理的完整流程。通过CREATE USER建用户,GRANT按需授权,SHOW GRANTS核查权限。岗位变动时,使用REVOKE回收多余权限,并用FLUSH PRIVILEGES刷新缓存。全流程旨在落实最小权限原则,规范数据库安全运维。

howard2005的专栏 153

用校园小助手生成ER图:从建表语句到可调布局

从建表语句或自然语言生成,到关系识别、主外键颜色区分,再到布局切换和折叠,校园小助手的ER图功能把画图过程中最耗时的部分交给了工具。它适合大学生论文、研究人员科研、教师教学及企业数据分析等场景,所有功能都在校园小助手平台内实现。下次作业要用ER图时,不妨先从手里的SQL开始。

weixin_74789176的博客 191

SQLServer常用指令手册

覆盖数据库创建、表与约束、增删改查、查询进阶、索引、视图/存储过程/函数/触发器、事务、权限、运维排查。适用版本:SQL Server 2012 及以上(标注的条目为对应版本起可用)。

lzcbaba的博客 239

MySQL数据库和表的操作

本文系统介绍了MySQL数据库与表的基本操作。包括创建、查看、修改和删除数据库,重点讲解字符集与校验规则对大小写敏感性的影响;通过SHOW、ALTER、DROP等命令实现数据库管理;介绍数据备份(mysqldump)与恢复(SOURCE)方法;并详细阐述表的创建、结构查看(DESC)、字段增删改(ALTER TABLE)及表删除操作,涵盖字段类型、注释、索引等关键要素,为数据库开发与维护提供完整指导。

2201_75570391的博客 367

Oracle 19c 在线重定义后旧表空间清理及 ASM 存储资源回收 SOP

Oracle 19c 在线重定义后旧表空间清理与 ASM 存储资源回收 SOP

「YYL DBA手记」 数据库 · 架构 · 运维 · 实战 yyldba.blog.youkuaiyun.com 486

搭建Oracle RAC 集群

配置SSH互信,分别RAC1和RAC2的root,grid,Oracle三个用户下执行以下命令。安装LINUX.X64_193000_grid_home.zip文件包。添加6块硬盘,每块50G,添加控制器,设为虚拟,添加网络适配器。设置主机名,配置网卡,编写/etc/hosts文件()配置磁盘规则,执行writerule.sh脚本。运行test.sh脚本,完成基础配置。

x_SpiderMan的博客 48

【服务器数据恢复】RAID5阵列双盘掉线Oracle+OA系统的数据恢复案例

某医药公司服务器组建RAID5磁盘阵列,阵列内两块硬盘先后离线,直接造成服务器宕机。服务器操作系统为RedhatLinux,承载基于Oracle数据库搭建的OA业务系统,业务数据价值高、恢复时效要求紧急。由于该OA配套Oracle版本早已停止技术支持,客户需求为:完整恢复业务数据,同时尽可能复原原有操作系统环境。

beiya123的博客 127

Oracle ORA-12560 故障排查实战:Windows TCP 连接资源不足(端口缓冲池爆满)与重启恢复 SOP

Windows 环境 Oracle ORA-12560 故障排查与处理:TCP 连接资源不足及重启恢复实战

「YYL DBA手记」 数据库 · 架构 · 运维 · 实战 yyldba.blog.youkuaiyun.com 443

AI代理驱动数据库应用的新范式与TiDB实践

三是多数据源联邦,一个Agent同时挂载多个数据库的MCP Server,跨库联合查询由模型编排,这会催生新的数据虚拟化玩法,也对工具间的语义一致性提出要求。再往后是ORM框架的普及,开发者操作的是对象模型,SQL由框架在运行期拼装生成,数据库的真实形态被进一步隐藏。理想的是配置一名同时理解两边的桥梁角色,负责解读审计日志中的异常模式,把模型侧的怪异行为翻译成数据库侧的防护策略调整。MCP Server只是起点,它验证的是一条基本原则:让AI安全地触碰生产数据,靠的不是模型的自觉,而是架构的设计。

搞定过:百亿级数据、万级QPS、零宕机、AI工业化。 642

Oracle 如何实时同步一张表 同时新表可以update

",0],["-- 如果新表被手动 UPDATE 过了(变为 'Y'),则源表不再覆盖它",5],["\n \n ELSIF DELETING ",0],["THEN",3],["\n ",0],["DELETE",3],[" ",0],["FROM",3],[" new_table ",0],["WHERE",3],[" id \u003d :OLD.id;

jnrjian的博客 233
上一篇: 26-Oracle 23 ai Automatic Transaction Rollback(行锁终结者)
下一篇: 28-Oracle 23ai Fast Ingest(Memoptimized Rowstore)高频写入
远方1609
博客等级 码龄22年 577粉丝 121原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值