首页 > 解决方案 > SYSTEM 表空间增长超过 64GB

问题描述

我的 Oracle 数据库版本是 12.1.0.2.0

我正在谈论的数据库用于创建部署在 UAT/Production 等环境中的“包”(不是 oracle 包,而是包含代码/脚本的包)。为此,在运行时创建新模式,并定期删除不再使用的旧模式。

创建/删除这些模式的表空间大小为 84GB,可用空间超过 50%。

64GB 大小的 SYSTEM 表空间只有 10MB 可用空间。

SYSTEM 表空间中的所有段都归 SYS 或 SYSTEM 所有。

以下查询的前 15 行是:

SELECT owner, 
       segment_name,
       segment_type,
       bytes
  FROM dba_segments
 WHERE tablespace_name = 'SYSTEM'
 ORDER BY bytes desc;

上述查询的输出

64GB SYSTEM 的表空间听起来对吗?可以减少吗,如果可以,那么如何减少?

标签: oracleoracle12ctablespace

解决方案


SOURCE$ 是任何 PLSQL 源代码(过程、包、类型等)。

同理,IDL_UBL1、I_SOURCE也有关系。

您的附录意味着您在该数据库中有 1.16亿行 PLSQL。这是相当多的代码:-)

如果你真的需要1.16亿行源代码,那么我认为64G的SYSTEM表空间也不是不合理的。

C_OBJ# 很大表明您的数据库中可能有很多对象。因此,请查看 DBA_OBJECTS 以及清理的机会。


推荐阅读