|
本帖最后由 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 模式上。
|
|