我面临着与oracles用户表空间有关的问题。它会自动生长得非常快。那里存储着什么样的数据?当它达到100%使用的空间时会发生什么呢?是否有减少此表空间中数据量的解决方案?目前,我们有11 MB的总数为33 GB。删除它是个好主意吗?怎么做?谢谢。
发布于 2020-02-21 14:02:45
我想说的是,您的部分或全部应用程序数据可能存储在用户表空间中。别做任何鲁莽的事。
由dbca实用程序创建的IIRC数据库将用户设置为默认表空间。这意味着,在默认情况下,创建的任何新用户都会将其表等存储在用户中。
select * from dba_segments where tablespace_name = 'USERS'将为您提供一个查看表空间中的内容的起点。(这可能是一长串。)
select * from dba_users where default_tablespace = 'USERS'将向您展示模式所有者,默认情况下,模式所有者将将数据存储在用户中。
我建议您不要认为这是一个有待解决的问题,而是接受用户是存储数据的地方,并计划表空间未来的可控增长。我见过一些应用程序是这样安装的。
HTH
发布于 2020-02-21 14:14:30
你真的应该深入了解谁在那里有数据,那里有什么样的数据。使用聚合查询将产生更好的结果。这将告诉您每个用户在用户表空间中有多少数据,哪些对象是最大的,而不是选择dba_segments中的每个段。您可能需要将一些较大的对象放在单独的表空间中。您还应该查询dba_tables视图,并查看should是否为非空且大于0。如果是,那么设置为高于0的faster对象将以更快的速度增长。例如,如果您的表或表空间的created设置为100,则每次创建新段时,段大小将加倍。这可能是个问题。
SELECT owner, TO_CHAR( SUM( bytes )/1024/1024, '999,999,999' ) mb FROM dba_segments WHERE tablespace_name = 'USERS' GROUP BY owner ORDER BY SUM( bytes );
SELECT owner, object_type, TO_CHAR( SUM( bytes )/1024/1024, '999,999,999' ) mb FROM dba_segments WHERE tablespace_name = 'USERS' GROUP BY owner, object_type ORDER BY SUM( bytes );https://dba.stackexchange.com/questions/260240
复制相似问题