本地撤消模式为每个容器提供了更高的隔离度,并提高了某些操作的效率,例如拔出容器或在容
器上执行时间点恢复。另外,要支持某些操作,例如,重定位PDB或克隆处于开放式读/写模式的
PDB,需要本地撤消模式。
当CDB处于本地撤消模式时,以下条件适用:
任何对当前容器具有适当特权的用户都可以为该容器创建一个撤消表空间。
在CDB中每个容器的静态数据字典视图和动态性能(V $)视图中都可以看到撤消表空间。
配置CDB使用本地撤消模式
您可以通过发出一条ALTER DATABASE LOCAL UNDO ON语句并重新启动数据库,将CDB更改为
本地撤消模式。
当CDB处于本地撤消模式时,每个容器在打开它的每个实例中都有自己的撤消表空间。Oracle数据
库会在CDB中没有容器的任何容器中自动创建一个撤消表空间。如果将没有撤消表空间的PDB克
隆,重定位或插入配置为使用本地撤消模式的CDB,则Oracle数据库在首次打开PDB时会自动为其
创建撤消表空间。
当CDB从共享撤消模式更改为本地撤消模式时,Oracle数据库会自动创建所需的撤消表空间。
1. 如果CDB实例已打开,则将其关闭。
2. 在OPEN UPGRADE模式下启动CDB实例。例如:
STARTUP UPGRADE
3. 在SQL * Plus中,确保当前容器是CDB根目录。例如,输入以下内容:
4. SHOW CON_NAME
CON_NAME
------------------------------
CDB$ROOT
5. 查询CDB当前的撤销模式:
SELECT PROPERTY_NAME, PROPERTY_VALUE
FROM DATABASE_PROPERTIES
WHERE PROPERTY_NAME = 'LOCAL_UNDO_ENABLED';
6. 要启用本地撤消,请发出以下SQL语句:
ALTER DATABASE LOCAL UNDO ON;
7. 关闭并重新启动CDB实例。
8. 可选:在PDB种子中手动创建撤消表空间。
评论