1.开发的过程中发现oracle数据文件占了很大空间,其中system01.dbf文件占了30G。
命令:
cd $ORACLE_HOME/../../../实例/
ls -lh
2.检查system表空间使用率,已经达到99.%,基本已经满了
SELECT UPPER(F.TABLESPACE_NAME) "表空间名",
D.TOT_GROOTTE_MB "表空间大小(M)",
D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)",
TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,2),'990.99') || '%' "使用比",
F.TOTAL_BYTES "空闲空间(M)",
F.MAX_BYTES "最大块(M)"
FROM (SELECT TABLESPACE_NAME,
ROUND(SUM(BYTES) / (1024 * 1024), 2) TOTAL_BYTES,
ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTES
FROM SYS.DBA_FREE_SPACE
GROUP BY TABLESPACE_NAME) F,
(SELECT DD.TABLESPACE_NAME,
ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MB
FROM SYS.DBA_DATA_FILES DD
GROUP BY DD.TABLESPACE_NAME) D
WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME
ORDER BY 1;
3.检查system表空间最大的段,段为'sys.fga_log$'和'SYS_LOB0000000393C00013$$',空间基本都被这2个东西占满了,
'SYS_LOB0000000393C00013$$'是表 sys.fga_log$的索引段。
SELECT *
FROM (SELECT BYTES, segment_name, segment_type, owner
FROM dba_segments
WHERE tablespace_name = 'SYSTEM'
ORDER BY BYTES DESC)
WHERE ROWNUM < 10
4.fga_log$表记录了 fga审计日志,检查oracle中已经没有fga审计策略了,猜测之前有人开启了fga审计,后只删除了审计策略,没有清除fga审计日志
5.select count(*) from fga_log$发现其中有 533万条记录,使用sys用户登录后,trancate table fga_log$, 删除后,问题解决,空间释放了
也可以使用delete,不过由于数据量较大,且都是无用记录,所以使用trancate截断。如果使用其他用户登录,则用户必须有 delete any table 权限。
使用system用户登录后 通过 grant delete any table to user1(用户名)命令来授权
注:1.关于fga审计,可以自己百度
2.使用以后system01.dbf文件还是之前那么大,在此我只是降低了system表空间的使用率
查询lob段所属的表的名字
select a.owner,
a.table_name,
a.column_name,
b.segment_name,
ROUND(b.BYTES / 1024 / 1024)
from dba_lobs a, dba_segments b
where a.segment_name = b.segment_name
and a.owner = 'XXX'
and a.table_name = 'YYYY'
查询临时表空间使用情况
select se.username,se.sid,su.extents,su.blocks*to_number(rtrim(p.value)) as Space,tablespace,segtype,sql_text from v$sort_usage su,v$parameter p,
v$session se,v$sql s
where p.name='db_block_size' and su.session_addr=se.saddr and
s.hash_value=su.sqlhash and s.address=su.sqladdr order by se.username,se.sid;
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/25849161/viewspace-1273708/
,如需转载,请注明出处,否则将追究法律责任。