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的容量配额,如果空间比较充分,可执行如下操作:
-- 切换到对应PDB
ALTER SESSION SET CONTAINER = pdb_name;
-- 设置/修改存储空间配额
alter pluggable database storage ( maxsize XXXg);
或者
alter pluggable database storage unlimited;
重新调整PDB的容量大小后,然后再使用alter database datafile xxx resize xxx;就不再报错了。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
文章被以下合辑收录
评论
目录