我正面临 oracles 用户表空间的问题。它会自动快速增长。那里存储了什么样的数据?当它达到 100% 的已用空间时会发生什么?有没有办法减少这个表空间中的数据量?目前我们有 11 MB 可用空间,总共 33 GB。删除它是个好主意吗?怎么做?谢谢。
我正面临 oracles 用户表空间的问题。它会自动快速增长。那里存储了什么样的数据?当它达到 100% 的已用空间时会发生什么?有没有办法减少这个表空间中的数据量?目前我们有 11 MB 可用空间,总共 33 GB。删除它是个好主意吗?怎么做?谢谢。
我会说您的部分或全部应用程序数据可能存储在 USERS 表空间中。不要做任何轻率的事情。
dbca 实用程序创建的 IIRC 数据库将用户设置为默认表空间。这意味着默认情况下,创建的任何新用户都会将他们的表等存储在 USERS 中。
select * from dba_segments where tablespace_name = 'USERS'
将为您提供查看表空间中内容的起点。(这可能是一个很长的列表。)select * from dba_users where default_tablespace = 'USERS'
将向您显示默认情况下将其数据存储在 USERS 中的架构所有者。我建议您不要将其视为需要解决的问题,而应接受 USERS 是存储数据的位置,并计划未来受控的表空间增长。我见过几个这样安装的应用程序。
高温高压
您应该真正深入了解那里有哪些数据以及那里有哪些类型的数据。使用聚合查询将产生更好的结果。这不是选择 dba_segments 中的每个段,而是告诉您每个用户在 USERS 表空间中有多少数据以及哪些对象是最大的。您可能想要获取一些较大的对象并将它们放在单独的表空间中。您还应该查询 dba_tables 视图并查看 pctincrease 是否不为空且大于 0。如果是,则 pctincrease 设置为高于 0 的对象将以更快的速度增长。例如,如果您有一个 pctincrease 设置为 100 的表或表空间,则每次创建新段时,段大小将加倍。那可能是个问题。