ITPub博客

首页 > 数据库 > 数据库开发技术 > 19C PDB 扩表空间 ORA-65114 space usage in container is too high 问题分析

19C PDB 扩表空间 ORA-65114 space usage in container is too high 问题分析

原创 数据库开发技术 作者:oracle_jacky 时间:2024-04-30 08:10:00 0 删除 编辑

1、前言

这是近期在对一个Oracle 19C RAC 含PDB库进行表空间扩容时遇到的问题,特记录整理,以便下次遇到可以更好处理,也希望对其他有此需求的朋友提供些帮助。

2、问题现象

下午在对一个Oracle 19C 含有PDB的数据库进行表空间扩容时遇到ORA-65114: space usage in container is too high报错:

SQL> select file_id,sum(bytes/1024/1024/1024) from dba_data_files where tablespace_name='T_XXX_DATA' group by file_id;    FILE_ID SUM(BYTES/1024/1024/1024)---------- -------------------------        22                547.167969 SQL> alter database datafile 22 resize 570G;alter database datafile 22 resize 570G*ERROR at line 1:ORA-65114: space usage in container is too high

我很诧异,平时在对一些数据库进行表空间扩容时都是用此方法,为什么这次会报错呢。

3、原因分析

出现如上报错,是因为该环境使用CDB-PDB模式,在创建PDB的时候,指定了容器可使用的容量上限。
可通过如下语句查询该PDB的容量配额。

alter session set container=PDB_NAME;
select con_id, name, open_mode, total_size from v$pdbs;


原因是:在 Oracle 数据库中,为 PDB配置存储空间配额涉及为每个 PDB 设置可用于表空间的存储容量上限。这样会有助于控制每个 PDB 中用户或角色可以使用的存储资源,防止一个 PDB 使用过多的存储资源影响其他 PDB。

4、问题处理

对于在创建pdb时设置了存储空间配额,可上调该PDB的容量配额,如果空间比较充分,可执行如下操作:

-- 切换到对应PDBALTER SESSION SET CONTAINER = pdb_name;
-- 设置/修改存储空间配额alter pluggable database storage ( maxsize XXXg);或者alter pluggable database storage unlimited;

重新调整PDB的容量大小后,然后再使用alter database datafile xxx resize xxx;就不再报错了。


原文作者:尚雷的驿站;如有侵权,请联系管理员删除。

上一篇: 五一早晨骑行
请登录后发表评论 登录
全部评论
现供职于某上市互联网公司担任DBA,荣获 PG ACE称号,拥有 Oracle OCM、AWS等及国产数据库等产品认证。喜欢技术分享,热爱交友,也热爱健身。

注册时间:2024-01-01

  • 博文量
    68
  • 访问量
    45424