章宇文 数据和云 

12.1引入temp undo概念 ,12.2引入local undo,也就是每个pdb拥有自己的undo表空间(以前版本共用一个undo表空间),rac中每个pdb每个实例都有自己的undo。

 

使用local undo的益处 

1、隔离后,减少undo表空间的争用,同时方便拔插 
2、flashback a PDB 
3、point-in-time recovery PDB 
4、relocating a PDB or cloning a PDB that is in open read/write mode 

 

所以推荐使用local undo。 

Shared Undo

New in 12.2- 让每个PDB都拥有自己的 local undo表空间_Java

 

 

Local Undo

New in 12.2- 让每个PDB都拥有自己的 local undo表空间_Java_02


在DBCA时会有local undo选项,且默认勾选 

 

New in 12.2- 让每个PDB都拥有自己的 local undo表空间_Java_03

 

>关闭local undo 

 

New in 12.2- 让每个PDB都拥有自己的 local undo表空间_Java_04

New in 12.2- 让每个PDB都拥有自己的 local undo表空间_Java_05

New in 12.2- 让每个PDB都拥有自己的 local undo表空间_Java_06

 

关闭后在PDB中查询undo为CDB中共享的undo表空间。 
>打开local undo:

 

New in 12.2- 让每个PDB都拥有自己的 local undo表空间_Java_07

 

重启数据库并对修改做查询

 

New in 12.2- 让每个PDB都拥有自己的 local undo表空间_Java_08

 

连接到PDB1

 

New in 12.2- 让每个PDB都拥有自己的 local undo表空间_Java_09

 

打开loacl undo后,自动为当前的PDB创建undo表空间,同时新创建pdb,自动创建自己的undo表空间 

 

New in 12.2- 让每个PDB都拥有自己的 local undo表空间_Java_10

 

可以通过配置pdb$seed的undo,从而使根据seed模板创建的pdb后undo表空间的名字、大小等: 

 

New in 12.2- 让每个PDB都拥有自己的 local undo表空间_Java_11

 

修改undo表空间

 

New in 12.2- 让每个PDB都拥有自己的 local undo表空间_Java_12

 

连接到CDB root

 

New in 12.2- 让每个PDB都拥有自己的 local undo表空间_Java_13

 

创建PDB数据库pdb3,再次查询相关配置

 

New in 12.2- 让每个PDB都拥有自己的 local undo表空间_Java_14

 

或者是直接在pdb$seed中删除undotbs1,之后创建的pdb都只有SEEDUNDOTS1表空间: 

 

New in 12.2- 让每个PDB都拥有自己的 local undo表空间_Java_15

 

创建PDB数据库pdb4

 

New in 12.2- 让每个PDB都拥有自己的 local undo表空间_Java_16

 

连接到pdb4

 

New in 12.2- 让每个PDB都拥有自己的 local undo表空间_Java_17

 

详细参考官方文档: 
http://docs.oracle.com/database/122/ADMIN/administering-a-cdb-with-sql-plus.htm#ADMIN-GUID-24EA5811-94F0-4EEC-864F-23AEF48F2D51