日期:2014-05-16  浏览次数:20870 次

ora-00604错误
今天登陆数据库时突然发现无法登陆,PLSQL提示如下
SQL code

ORA-00604 error occurred at recursive SQL leval 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 leval 1
ORA-01653 unable to extend table SYS.AUD$ by 8192 in tablespace SYSTEM


各位大大帮帮忙啊,谢谢啦。

------解决方案--------------------
以sqlplus / as sysdba 登录数据库
首先用下列SQL语句查看表空间的使用情况
select username,default_tablespace,temporary_tablespace from dba_users
where (default_tablespace='SYSTEM' or temporary_tablespace='SYSTEM') and username not in ('SYSTEM','SYS');
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的吧,在Oracle 11g中,默认开启了审计功能,并且审计数据默认存放SYSTEM 表空间下的AUD$审计字典基表上。 而且默认情况system 表空间是自动扩展的,而对于8k 的block size,单个数据文件最大是32G。

如果没有猜错的话,楼主的system 的datafile 应该是达到32G了。

解决方法:
1. 从sys.aud$ 表中删除部分数据,释放空间,或者直接truncate aud$, 在关闭审计。
2. 对system 表空间添加数据文件。

Oracle 11g 默认审计选项 说明
http://blog.csdn.net/tianlesoftware/article/details/6707887

------解决方案--------------------
可以参考这篇文章,开解决开户和关闭审计功能。
http://blog.csdn.net/mittee/article/details/3870109