oracle ORA-00604/ORA-01653问题处理
原先一位客户报了一个突然出现的数据库问题,特此记录
问题描述:
ORA-00604: error occurred at recursive SQL level 1ORA-01653: unable to extend table SYS.AUD$ by 8192 in tablespace SYSTEMORA-02002: error while writing to audit trailORA-00604: error occurred at recursive SQL level 1ORA-01653: unable to extend table SYS.AUD$ by 8192 in tablespace SYSTEM
操作方法
- 01
问题解析 ORA-00604: error occurred at recursive SQL level 1的错误指的是 内部的SQL语句执行失败ORA-01653: unable to extend table SYS.AUD$ by 8192 in tablespace SYSTEM 意思是表空间已满
- 02
问题查询 首先用下列SQL语句查看表空间的使用情况,看下表空间还剩多少内存select username,default_tablespace,temporary_tablespace from dba_userswhere (default_tablespace='SYSTEM' or temporary_tablespace='SYSTEM') and username not in ('SYSTEM','SYS');select tablespace_name,(bytes/1024/1024) M from dba_data_files;
- 03
解决方案1: 更改system表空间的数据文件SYSTEM.dbf分配空间 alter database datafile '/u04/oradata/truth/system01.dbf' resize 5524M;
- 04
解决方:2: 为表空间新增数据文件 ALTER TABLESPACE 表空间名ADD DATAFILE '数据文件路径'SIZE 500MAUTOEXTEND ON NEXT 1M MAXSIZE UNLIMITED;
- 05
解决方案3: 上述两种方案就可以解决这个问题,第三种不建议大家使用 把system表空间中的表移到非系统表空间检查下是否有其他非系统表放在系统表空间下,要是有的话,可以移到非系统表空间alter table move tablespace tablespace_name