
3.8 管理CDB和PDB的表空间
Oracle多租户架构下的表空间管理和之前讲解的Non-CDB数据库中的表空间管理没有太大区别。对于表空间的数据文件的存放位置,Oracle没有要求,只要有权限即可。但是为了规范,PDB的数据文件应该和CDB root的数据文件分开存放,以便管理。
与Non-CDB相比,CDB中的表空间主要有以下特点。
一个永久表空间只能与一个容器相关联。
在当前容器中创建表空间时,表空间将与该容器相关联。
当CDB禁用本地 UNDO模式时,CDB只能有一个活动的UNDO表空间,或者Oracle RAC CDB的每个节点各有一个活动的UNDO表空间。当为CDB启用本地 UNDO模式时,CDB中的每个容器都有自己的UNDO表空间。
在Oracle RAC集群中,每个节点都需要一个本地UNDO表空间。
CDB中的每个容器都有自己的默认临时表空间,包括CDB root、每个PDB、每个应用程序root和每个应用程序PDB。
CDB中的每个容器都有自己的默认临时表空间或表空间组。可以为单个容器创建临时表空间,并可以将容器中的特定用户分配给这些临时表空间。当拔掉PDB时,它的临时表空间也会被删除。当用户没有在容器中显式地分配临时表空间时,用户的临时表空间是容器的默认临时表空间。
3.8.1 管理CDB表空间
Oracle 18c中的CDB表空间管理和Oracle之前版本的表空间管理没有任何区别。先连接到CDB root,然后进行相关操作。
查看默认表空间,代码如下:

创建临时表空间,代码如下:

创建永久表空间,代码如下:

创建UNDO表空间,代码如下:

指定默认表空间,代码如下:

指定默认临时表空间,代码如下:

添加数据文件、修改默认表空间等操作的语法和Oracle之前版本的相关语法没有区别,这里不再一一列举。
3.8.2 管理PDB表空间
管理PDB表空间的大部分操作和管理CDB表空间的操作类似,只有指定默认表空间的语法不同。
连接到PDB,代码如下:

或

创建临时表空间,代码如下:

创建永久表空间,代码如下:

创建UNDO表空间,代码如下:

查看PDB的表空间,代码如下:

指定默认表空间,代码如下:

或

指定默认临时表空间,代码如下:

或

查看当前PDB的默认永久表空间和临时表空间,代码如下:

3.8.3 查看表空间的使用情况
查看表空间的使用情况,不管是CDB,还是PDB,都是通过同一个视图来查看的,在查询时切换到相应的容器下执行命令即可,代码如下(以下脚本中包含了临时表空间):


结果:
