Oracle 18c 必须掌握的新特性:管理与实战
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

3.8 管理CDB和PDB的表空间

Oracle多租户架构下的表空间管理和之前讲解的Non-CDB数据库中的表空间管理没有太大区别。对于表空间的数据文件的存放位置,Oracle没有要求,只要有权限即可。但是为了规范,PDB的数据文件应该和CDB root的数据文件分开存放,以便管理。

与Non-CDB相比,CDB中的表空间主要有以下特点。

img 一个永久表空间只能与一个容器相关联。

img 在当前容器中创建表空间时,表空间将与该容器相关联。

img 当CDB禁用本地 UNDO模式时,CDB只能有一个活动的UNDO表空间,或者Oracle RAC CDB的每个节点各有一个活动的UNDO表空间。当为CDB启用本地 UNDO模式时,CDB中的每个容器都有自己的UNDO表空间。

img 在Oracle RAC集群中,每个节点都需要一个本地UNDO表空间。

img CDB中的每个容器都有自己的默认临时表空间,包括CDB root、每个PDB、每个应用程序root和每个应用程序PDB。

CDB中的每个容器都有自己的默认临时表空间或表空间组。可以为单个容器创建临时表空间,并可以将容器中的特定用户分配给这些临时表空间。当拔掉PDB时,它的临时表空间也会被删除。当用户没有在容器中显式地分配临时表空间时,用户的临时表空间是容器的默认临时表空间。

3.8.1 管理CDB表空间

Oracle 18c中的CDB表空间管理和Oracle之前版本的表空间管理没有任何区别。先连接到CDB root,然后进行相关操作。

查看默认表空间,代码如下:

img

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

img

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

img

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

img

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

img

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

img

添加数据文件、修改默认表空间等操作的语法和Oracle之前版本的相关语法没有区别,这里不再一一列举。

3.8.2 管理PDB表空间

管理PDB表空间的大部分操作和管理CDB表空间的操作类似,只有指定默认表空间的语法不同。

连接到PDB,代码如下:

img

img

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

img

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

img

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

img

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

img

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

img

img

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

img

img

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

img

3.8.3 查看表空间的使用情况

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

img
img

结果:

img