重庆思庄Oracle、Redhat认证学习论坛

标题: Oracle 12C R2新特性-本地UNDO模式(LOCAL_UNDO_ENABLED) [打印本页]

作者: jiawang    时间: 2023-5-26 09:20
标题: Oracle 12C R2新特性-本地UNDO模式(LOCAL_UNDO_ENABLED)
本帖最后由 jiawang 于 2023-5-26 09:26 编辑

在 Oracle 12.1中,在一个实例中的所有PDB 只能共享同一个 UNDO表空间,称之为Global Shared Undo 模式 ,即共享  Undo  模式 。
目前保留共享  Undo  模式只是为了升级过渡。在Oracle 12.2  中,引入了  PDB Local UNDO  模式 ,每个PDB 都有各自的  undo  表空间。
对于 RAC是每个实例每个container 都有自己的 UNDO 表空间 , 这也正是推荐的。这种新的管理机制就叫做本地  undo  模式。
本地undo 模式为新建数据库的默认模式。在DBCA时会有 local undo选项,且默认勾选。


本地 undo 模式的好处:
1. 减少 undo 表空间的争用,同时方便拔插
2. 只有使用 local undo 才支持下面的新特性 :Refresh PDB,Flashback PDB ,( Hot Clone,Relocate PDB in open read/write mode )
3.point-in-time recovery PDB







查看数据库是否开启 local undo 。 如果 PROPERTY_VALUE 为 true 表示已经开启。
col PROPERTY_NAME for a25;
col PROPERTY_VALUE for a25;
select PROPERTY_NAME,PROPERTY_VALUE from database_properties where property_name='LOCAL_UNDO_ENABLED';



查看 ROOT 和自己定义的 pdb 对应的 undo 表空间 :
SELECT CON_ID,NAME FROM V$TABLESPACE A WHERE A.NAME  LIKE 'UNDO%' ORDER BY CON_ID,TS# ;



1 、 local undo 转 shared undo 的步骤:

SHUTDOWN IMMEDIATE;
STARTUP UPGRADE;
ALTER DATABASE LOCAL UNDO OFF;
SHUTDOWN IMMEDIATE;
STARTUP;

在转换完成之后, 之前存在的 undo 表空间不会自动删除。如果碍事, 需要进入每个 PDB 里进行 手动删除。



alter session set container=pdblhr1;
DROP TABLESPACE undotbs1;



1 、 shared undo 转 local undo 的步骤:

SHUTDOWN IMMEDIATE;
STARTUP UPGRADE;
ALTER DATABASE LOCAL UNDO ON ;
SHUTDOWN IMMEDIATE;
STARTUP;

Oracle 自动为 每个 PDB 创建了一个 undo 表空间 。 在切换为本地 Undo 模式后, 新创建的数据库也是运行在本地 undo 模式上。








欢迎光临 重庆思庄Oracle、Redhat认证学习论坛 (http://bbs.cqsztech.com/) Powered by Discuz! X3.2