巡检时发现oracle数据库的system01.dbf数据文件超大,有32G大小,下面对system01.dbf进行排查占用大的问题及缩小空间

1、检查system表空间中占用空间最大对象

SELECT * FROM (SELECT SEGMENT_NAME, SUM(BYTES) / 1024 / 1024 MB FROM DBA_SEGMENTS WHERE TABLESPACE_NAME = 'SYSTEM' GROUP BY SEGMENT_NAME ORDER BY 2 DESC) WHERE ROWNUM < 10;

aud$为审计功能

或用下面语句查看更详细些

查看system表空间中各个段占用空间的情况:

SELECT OWNER, SEGMENT_NAME, SEGMENT_TYPE, SUM(BYTES)/1024/1024  FROM DBA_SEGMENTS WHERE TABLESPACE_NAME = 'SYSTEM' and rownum<20 GROUP BY OWNER, SEGMENT_NAME, SEGMENT_TYPE ORDER BY 4;

2、截断占用空间最大的AUD$表(需要确认审计信息是否需要保留):

---查看该表的大小:

SQL> select TABLE_NAME,NUM_ROWS,BLOCKS*8192/1024/1024/1024 from dba_tables where table_name='AUD$';

SQL>  select bytes/1024/1024/1024  from dba_segments where segment_name='AUD$';

---清除aud$的数据SQL> truncate table sys.AUD$; 或 truncate table aud$;清除都可

Table truncated.

SQL> select bytes/1024/1024/1024  from dba_segments where segment_name='AUD$';

BYTES/1024/1024/1024

--------------------

.000061035

---查看system表空间的大小

SQL> SELECT a.tablespace_name, a.bytes/1024/1024/1024  total, b.bytes/1024/1024/1024 used, c.bytes free, (b.bytes * 100) / a.bytes "% USED ", (c.bytes * 100) / a.bytes "% FREE " FROM sys.sm$ts_avail a, sys.sm$ts_used b, sys.sm$ts_free c WHERE a.tablespace_name = b.tablespace_name AND a.tablespace_name = c.tablespace_name and a.tablespace_name='SYSTEM';

* system空间已回收,可根据审计文件信息是否需要,如若需要部分审计信息可用delete删除

3、更改AUD$表的表空间为其他表空间(视情况而定)BEGIN

DBMS_AUDIT_MGMT.SET_AUDIT_TRAIL_LOCATION(    AUDIT_TRAIL_TYPE => DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD,     AUDIT_TRAIL_LOCATION_VALUE => '&AUD_TBS_NAME');

END;

4、若确认不需要审计,直接将审计功能关闭alter system set audit_trail=none scope=spfile;

需要重启才生效

5、释放system01.dbf文件占用空间

---查询可以计算出来一个数据文件可以resize到的大小:select a.file#, a.name, a.bytes/1024/1024 CurrentMB,

ceil(HWM * a.block_size)/1024/1024 ResizeTo,

(a.bytes - HWM * a.block_size)/1024/1024 ReleaseMB,

'alter database datafile '''||a.name||''' resize '|| ceil(HWM * a.block_size/1024/1024) || 'M;' ResizeCMD

from   v$datafile a,

( select file_id, max(block_id+blocks-1) HWM

from   dba_extents

group by file_id) b

where  a.file# = b.file_id(+) and (a.bytes - HWM *block_size)>0 order by 5;

FILE#

----------

NAME

------------------------------------------------------------------------------------------------------------------------------------------------------

CURRENTMB   RESIZETO  RELEASEMB

---------- ---------- ----------

RESIZECMD

------------------------------------------------------------------------------------------------------------------------------------------------------

1

/u01/app/oracle/oradata/utf8/system01.dbf

32730 1277.99219 31452.0078

alter database datafile '/u01/app/oracle/oradata/utf8/system01.dbf' resize 1278M;

---然后执行下列语句,system01文件即可到释放到1G的空间alter database datafile '/u01/app/oracle/oradata/utf8/system01.dbf' resize 1278M;

oracle dbf 超大,system01.dbf文件过大——SYSTEM表空间AUD$使用空间过大问题处理相关推荐

  1. oracle数据库offline,system01.dbf文件被offline,导致数据库报ORA-01245 ORA-01110故障恢复...

    对于这样的情况,可以使用自研的Oracle Recovery Tools工具快速修改scn,然后online数据文件即可 有朋友找到我,说数据库做recover报ORA-01245和ORA-01110 ...

  2. oracle 11g system01.dbf,oracle数据文件system01.dbf上有坏块,如何修复

    问题:数据库被一同事shutdown abort后,无法启动,报错如下: ksedmp: internal or fatal error ORA-00600: internal error code, ...

  3. LINUX下查找大文件及大的文件夹

    文章系转载,便于查找和归纳,源文地址 https://www.cnblogs.com/gspsuccess/p/9262140.html 1.如何查找大文件 其实很多时候,你需要了解 /u01/app ...

  4. oracle 无备份恢复数据文件

    场景:  1.数据库没有备份  2.数据文件损坏  3.不符合使用控制文件和日志文件恢复的场景 1.模拟数据文件损坏 SYS@orcl11g> host cp /etc/passwd /u01/ ...

  5. oracle 如何添加数据文件,Oracle教程 误添加数据文件删除方法

    如果是在Oracle10g之前,删除一个表空间中的数据文件后,其文件在数据库数据字典中会仍然存在,除非你删除表空间,否则文件信息不会清除. 但是从Oracle10gR2开始,Oracle允许我们彻底删 ...

  6. 【Oracle】重命名数据文件

    1)查看当前数据文件位置 SQL> select file_id,file_name,tablespace_name from dba_data_files; FILE_ID FILE_NAME ...

  7. ORACLE实例控制文件删除恢复,Oracle案例:损坏控制文件的恢复方法

    一: 损坏单个控制文件 损坏单个控制文件是比较容易恢复的,因为一般的数据库系统,控制文件都不是一个,而且所有的控制文件都互为镜相,只要拷贝一个好的控制文件替换坏的控制文件就可以了. 1.控制文件损坏, ...

  8. oracle不用密码备份,oracle用备份的控制文件恢复后不用resetlogs打开方式的恢复

    在一般恢复备份 的控制文件,打开数据库 都要 用resetlogs 重置日志这种方式, 这是因为备份的控制文件恢复后,没有最新的当前在线日志信息 ,而重建控制文件 就 可以用 NORESETLOGS  ...

  9. [Oracle]如何查看一个数据文件是否是自动扩展

    开始 SQL> col file_id format 99 SQL> col file_name format a50 SQL> col tablespace_name format ...

最新文章

  1. 神鬼传奇小技巧:教你如何修改自己想要的时装
  2. Android老項目出现javax/xml/bind/JAXBException异常问题解决
  3. jQuery对象插件封装步骤
  4. Python 装饰器原理和基本实现
  5. JavaScript之childNodes属性、nodeType属性学习
  6. netty的Helloworld---netty学习笔记
  7. IOS开发基础之NSURLSession的使用
  8. mysql 大于号 优化_SQL优化 MySQL版 - 避免索引失效原则(二)
  9. Spring boot Mybatis 整合(注解版)
  10. 在不使用{}时,else执行到哪里结束
  11. WPF TextBox只能输入数字
  12. ipad如何与计算机连接网络连接不上,平板电脑网络连接不上怎么办
  13. css横向排列_CSS中伪元素和伪类的经典使用技巧
  14. 盘点各种程序员常用的框架,看看你是否落伍了?
  15. html5钟表带齿轮项目,基于HTML5的齿轮动画特效
  16. 1.2 cacti安装
  17. php7 aop,php之aop实践
  18. 数学分析:集合的基本概念
  19. 哪种存储器是非易失的_ROM是易失性存储器还是非易事性存储器?
  20. virutalbox 无线网卡桥接

热门文章

  1. 头的各个部位示意图_牛肉的部位图解与做法+牛肉各个部位分布图及质地简介...
  2. 信息安全三级易错题总结
  3. Nmos驱动电路分析
  4. 简单易懂的英语学习思维导图(学习篇)
  5. 文字识别 SDK 11 给大家看一个手册
  6. VS2010添加WP模板
  7. Excel分列-字母与汉字(前后)
  8. oracle 字符串中数字转中文大写,金额钱数转中文大写
  9. Ubuntu使用cmake出现Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
  10. 期货什么情况下会强制平仓