在登录TEST实例时,报以上错误,经查证是SYSTEM 表空间已满导致。
导致这个问题的原因可能是以下三种:
一、表空间空间不足
二、未开启自动增长导致
三、根据如上报错,可以基本判断是因为审计(AUD$)过大导致SYSTEM表空间不足。SYSTEM表空间主要存储一下数据库动态视图、基表、数据字典等。
查找原因的时间都浪费在查orcl 实例的信息上。
可以用 sqlplus /@TEST as sysdba 使用管理员身份登录。使用下面sql 来查询各个表空间的使用情况。
select a.tablespace_name as "mingzi", a.bytes / 1024 / 1024 as "daxiaom",(a.bytes - b.bytes) / 1024 / 1024 as "usem",b.bytes / 1024 / 1024 "shengyu",round(((a.bytes - b.bytes) / a.bytes) * 100, 2) "percent" from (select tablespace_name, sum(bytes) bytes from dba_data_files group by tablespace_name) a,(select tablespace_name, sum(bytes) bytes, max(bytes) largest from dba_free_space group by tablespace_name) b where a.tablespace_name = b.tablespace_name order by ((a.bytes - b.bytes) / a.bytes) desc;
查询结果确实是这个实例下的SYSTEM表空间已满导致。用下面语句进行扩容即可。
alter tablespace SYSTEM add datafile 'D:\oracle\oradata\BBDELNP\SYSTEM02.DBF' size 1000m ( autoextend on next 100m maxsize 102400m)
另外Oracle 11g 默认开启AUDIT功能,如SYSTEM表空间自增会不断增大空间使用,所以建议根据业务实际需求开启/关闭AUDIT功能,方法如下。
SQL>alter system set audit_trail=none scope=spfile;
直接使用spfile文件中的审计功能参考audit_trail为none,即关闭审计功能。
执行完后,重启数据库。
启动后查看:
SQL> show parameter audit_trail