news 2026/4/17 13:44:53

19c多租户架构下的UNDO管理- Local Undo

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
19c多租户架构下的UNDO管理- Local Undo

Oracle Database 12c(12.1)引入了多租户特性,数据库实现了容器化,多租户架构下实现可插拔。一个CDB中可以有0个或多个PDB。在同一个CDB中所有PDB共享一个UNDO表空间。
在Oracle Database 19c中,对UNDO的管理有一个重要增强是支持 Local Undo,允许每个PDB独立管理自己的UNDO表空间。此特性增强了多租户环境中的性能、隔离性和可管理性。

Oracle 12.1 中 UNDO是共享模式

Oracle 19c中支持共享UNDO和Local Undo

Lolcal UNDO的优点:

  • 提高性能:通过在每个PDB中隔离UNDO表空间进行管理,Local UNDO减少了多个PDB共享一个共享UNDO表空间时可能出现的争用和潜在瓶颈。
  • 增强隔离:Local Undo可确保一个PDB中的操作不会影响其他PDB的UNDO性能,从而提高稳定性和可靠性。
  • 简化管理:DBA可以在PDB级别管理UNDO表空间,根据每个PDB的特点和业务特点在PDB级设置UNDO。

为什么在19c中建议使用Local Undo?

本地撤销模式是使用hot cloning, PDB relocation, and PDB proxying这些特性的前提。

CDB架构PDB的UNDO表空间管理

1、连接到根容器

[oracle@19cdb01 ~]$ sqlplus / as sysdba SQL\*Plus: Release 19.0.0.0.0 - Production on Sun May 11 05:57:33 2025 Version 19.27.0.0.0 Copyright (c) 1982, 2024, Oracle. All rights reserved. Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.27.0.0.0 CONNAME ---------------------------------------------------------------------- CDB$ROOT SYS@cdb19c(CDB$ROOT)>

2、检查CDB中UNDO表空间的使用

SYS@cdb19c(CDB$ROOT)> show pdbs CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 HRPDB READ WRITE NO SYS@cdb19c(CDB$ROOT)> show con_id con_name CON_ID ------------------------------ 1 CON\_NAME ------------------------------ CDB$ROOT SYS@cdb19c(CDB$ROOT)> SYS@cdb19c(CDB$ROOT)> SELECT file#, ts.name, ts.ts#, ts.con_id FROM v$datafile d, v$tablespace ts WHERE d.ts#=ts.ts# AND d.con_id=ts.con_id AND ts.name like 'UNDO%'; 2 3 4 5 FILE# NAME TS# CON_ID ---------- ------------------------------ ---------- ---------- 4 UNDOTBS1 2 1 8 UNDOTBS1 2 2 11 UNDOTBS1 2 3 每个PDB都有自己的UNDO表空间 SYS@cdb19c(CDB$ROOT)> select a.con_id, b.name, tablespace_name from cdb_tablespaces a, v$pdbs b where a.con_id=b.con_id and contents = 'UNDO' order by con_id; 2 3 4 CON_ID NAME TABLESPACE_NAME---------- -------------------- ------------------------------ 3 HRPDB UNDOTBS1 SYS@cdb19c(CDB$ROOT)> HRPDB的UNDO表空间是UNDOTBS1

3、验证是否开启Local Undo

SYS@cdb19c(CDB$ROOT)> col property_name for a20 SYS@cdb19c(CDB$ROOT)> col property_value for a15 SYS@cdb19c(CDB$ROOT)> SELECT property_name, property_value FROM database_properties WHERE property_name = 'LOCAL_UNDO_ENABLED'; PROPERTY_NAME PROPERTY_VALUE -------------------- --------------- LOCAL_UNDO_ENABLED TRUE SYS@cdb19c(CDB$ROOT)> LOCAL_UNDO_ENABLED是true,该环境开启了Local Undo模式,CDB中每个PDB都有自己的UNDO表空间。19c RAC 多租户环境下,如果开启Local Undo模式,每个PDB也是在每个节点有自己的UNDO表空间。 -the end-

tv.sohu.com/v/dXMvNDQxODI4Njg4LzY5MzgzMTMxNi5zaHRtbA==.html
tv.sohu.com/v/dXMvNDQxODI4Njg4LzY5MzgzMTI0MC5zaHRtbA==.html
tv.sohu.com/v/dXMvNDQxODI4Njg4LzY5MzgzMTE5NC5zaHRtbA==.html
tv.sohu.com/v/dXMvNDQxODI4Njg4LzY5MzgzMTE5Mi5zaHRtbA==.html
tv.sohu.com/v/dXMvNDQxODI4Njg4LzY5MzgzMTE4OS5zaHRtbA==.html
tv.sohu.com/v/dXMvNDQxODI4Njg4LzY5MzgzMTMwMy5zaHRtbA==.html
tv.sohu.com/v/dXMvNDQxODI4Njg4LzY5MzgzMTA4Ny5zaHRtbA==.html
tv.sohu.com/v/dXMvNDQxODI4Njg4LzY5MzgzMTIxOS5zaHRtbA==.html
tv.sohu.com/v/dXMvNDQxODI4Njg4LzY5MzgzMTA4My5zaHRtbA==.html
tv.sohu.com/v/dXMvNDQxODI4Njg4LzY5MzgzMTE3Mi5zaHRtbA==.html

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/17 2:26:36

S32DS使用一文说清:S32K GPIO外设初始化步骤

S32DS实战指南:从零搞懂S32K GPIO初始化全流程你有没有遇到过这样的情况——代码烧进去,LED就是不亮?按键按烂了也没反应?调试半天才发现,原来是某个时钟没开、引脚复用配错了,或者方向寄存器写反了。这种低…

作者头像 李华
网站建设 2026/4/11 0:38:53

一文说清STM32F4串口通信的STM32CubeMX教程配置步骤

手把手教你用STM32CubeMX配置STM32F4串口通信:从零开始的实战指南你有没有遇到过这种情况?刚焊好一块STM32F4开发板,想通过串口打印“Hello World”验证一下基本功能,结果打开串口助手却一片漆黑——没输出。反复检查代码、波特率…

作者头像 李华
网站建设 2026/4/16 13:21:49

screen指令在ARM开发板调试中的应用详解

用screen调试 ARM 开发板:从串口连接到多任务协同的实战指南你有没有遇到过这样的场景?深夜正在远程调试一块远在实验室的ARM开发板,系统启动卡在某个阶段。你盯着终端一行行刷出的内核日志,正准备进入U-Boot修改启动参数——突然…

作者头像 李华
网站建设 2026/4/16 17:48:48

一文说清STM32MP1在ARM平台上的资源分配策略

STM32MP1 的“双核心法”:如何让 Linux 与实时控制和平共处? 在嵌入式开发的世界里,我们常常面临一个两难选择: 要性能,还是实时性? 运行 Linux,意味着你能轻松接入网络、跑图形界面、用现成…

作者头像 李华
网站建设 2026/4/15 14:12:23

i2c读写eeprom代码多字节写入实战演示

一次搞懂IC读写EEPROM:多字节写入实战与避坑指南你有没有遇到过这种情况——系统要保存几十个配置参数,结果一个一个字节往EEPROM里写,耗时又占CPU?更糟的是,某次跨页写入不小心“翻车”,数据莫名其妙错乱了…

作者头像 李华
网站建设 2026/4/16 22:48:50

C++ 基本语法

变量与数据类型C 支持多种数据类型,包括整数、浮点数、字符和布尔值。整数类型:int(4字节)、short(2字节)、long(4或8字节)、long long(8字节)。浮点类型&…

作者头像 李华