降低Oracle数据库的表空间使用率
一.先查看表空间使用率-- 查看表空间和对应物理文件名 select b.file_id 物理文件号, b.file_name 物理文件名, b.tablespace_name 表空间, b.bytes/1024/1024 大小M, (b.bytes-sum(nvl(a.bytes,0)))/1024/1024 已使用M, substr((b.bytes-sum(nvl(a.bytes,0)))/(b.bytes)*100,1,5) 利用率 from dba_free_space a,dba_data_files b where a.file_id=b.file_id group by b.tablespace_name,b.file_id,b.file_name,b.bytes order by b.tablespace_name运行结果如图,可看到每个表空间的使用情况,其中使用率(利用率)占比超过80%的应该进行降低。二.降低使用率此处拿PRODUCT这个表空间举例:方案一:扩大表空间的数据文件的大小①情况1:数据文件所在的磁盘无可用空间核心思想:既然30G的空间满了,直接扩大到40G(但前提是服务器磁盘还有空间,否则不可行)。上图的标红线的几个表空间对应的数据文件(“物理文件名”那列),大多数都在服务器的/home磁盘下,我们看看服务器上的/home磁盘还有没有可用空间。如下图,查看/home磁盘可用空间仅剩下300MB,可见此时无法继续扩大PRODUCT表空间的数据文件大小。因此方案1此时不可行。②情况2:数据文件所在的磁盘有可用空间但是我们可以看一下有磁盘空间的,如下图这个SYSAUX表空间,所在服务器的/opt磁盘,这里是有可用空间的(大约100G~200G),像这种情况,我们就能直接通过扩大数据文件的总空间,来降低空间使用率。-- 将SYSAUX表空间对应的数据文件的最大容量,扩展到25040MB(翻了一倍) ALTER DATABASE DATAFILE '/opt/oracle/oradata/ORCLCDB/ORCLPDB1/sysaux01.dbf' RESIZE 25040M;查看效果,如下图所示:表空间SYSAUX的使用率,直接降一半,目的达成。-- 1.查看表空间和对应物理文件名 select b.file_id 物理文件号, b.file_name 物理文件名, b.tablespace_name 表空间, b.bytes/1024/1024 大小MB, (b.bytes-sum(nvl(a.bytes,0)))/1024/1024 已使用MB, substr((b.bytes-sum(nvl(a.bytes,0)))/(b.bytes)*100,1,5) 利用率 from dba_free_space a,dba_data_files b where a.file_id=b.file_id group by b.t
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2411665.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!