Oracle 一些表空间问题的处理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle 一些表空间问题的处理相关的知识,希望对你有一定的参考价值。
一,SYSAUX 表空间不足
SYSAUX 表空间做为 SYSTEM 表空间的辅助表空间,主要存放 EM 相关的内容以及表统计信息,AWR快照,审计信息等,而如果 SYSAUX 表空间在默认条件下你如果不做任何配置,随着时间的推移,会膨胀的越来越大。
1、是什么占用了 sysaux 空间
select occupant_name, schema_name, occupant_desc, space_usage_kbytes
from v$sysaux_occupants
order by space_usage_kbytes desc
可以看到是主要是 AWR 占用了空间。
2、清除 AWR
SQL> connect / as sysdba
SQL> @?/rdbms/admin/catnoawr.sql
SQL> @?/rdbms/admin/catawrtb.sql
3、查看表空间占用情况
SELECT B.TABLESPACE_NAME 表空间,
B.FILE_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_NAME, B.BYTES
ORDER BY B.TABLESPACE_NAME
二、USER 表空间不足
1、zabbix 报警表空间不足
2、查看数据库表空间占用情况
SELECT B.TABLESPACE_NAME 表空间,
B.FILE_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_NAME, B.BYTES
ORDER BY B.TABLESPACE_NAME
3、增加表空间
Alter tablespace USERS add datafile ‘/ordata/orcl/users17.dbf‘ size 20G;
三、SYSTEM 表空间不足
system表空间满了以后,对审计表进行清空,用新的审计表覆盖旧的审计表,如果用处不大,我们可以选择关闭审计功能,如下
1、关闭审计(可选)
sqlplus / nolog
connect sys/sys as sysdba
alter system set audit_trail=‘NONE‘ scope=spfile;
shutdown immediate;
startup;
2、清空审计日志
truncate table SYS.AUD$;
以上是关于Oracle 一些表空间问题的处理的主要内容,如果未能解决你的问题,请参考以下文章