在用sqlplus user/password@truth登录数据库时报如下错误:
ORA-00604: error occurred at recursive SQL level 1
ORA-01653: unable to extend table SYS.AUD$ by 8192 in tablespace SYSTEM
ORA-02002: error while writing to audit trail
ORA-00604: error occurred at recursive SQL level 1
ORA-01653: unable to extend table SYS.AUD$ by 8192 in tablespace SYSTEM
ORA-00604: error occurred at recursive SQL level 1的错误指的是 内部的SQL语句执行失败
ORA-01653: unable to extend table SYS.AUD$ by 8192 in tablespace SYSTEM 意思是表空间已满
以sqlplus / as sysdba 登录数据库
首先用下列SQL语句查看表空间的使用情况
select tablespace_name,(bytes/1024/1024) M from dba_data_files;
2种方法处理表空间已满。
(1)更改system表空间的数据文件SYSTEM.dbf分配空间
alter database datafile '/u04/oradata/truth/system01.dbf' resize 5524M;
(2)为system表空间另外新增一个数据文件
(3)把system表空间中的表移到非系统表空间
检查下是否有其他非系统表放在系统表空间下,
要是有的话,可以移到非系统表空间
alter table move tablespace tablespace_name
Oracle 11g缺省安装数据库启动了audit功能,导致oracle不断累积sys.aud$表及相关索引数据量增加;
如果导致表空间满了,在alert日志中将会报ORA-1654: unable to extend index SYS....错误。
如果不用到审计功能,建议关闭审计。
处理过程:
1、用oracle用户登录到数据库服务器,执行:
sqlplus / as sysdba
2、取消audit,将初始化参数audit_trail设置为NONE
alter system set audit_trail=none scope=spfile;
3、然后重启数据库.
shutdown immediate;
sqlplus / as sysdba
startup;
4、删除审计数据,oracle用户登录到数据库服务器:
sqlplus / as sysdba
truncate table SYS.AUD$;