安装数据库时报如下错误:
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 exten table SYS.AUD$ by 8192 in tablespace SYSTEM
WARNING:You are no longer connected to ORACLE.
SQL>SP2-0640:Not connected
报system系统表空间不足
可以使用如下语句查询system表空间中什么对象占用空间最大:
select SEGMENT_NAME,SEGMENT_TYPE,BYTES/1024/1024 from dba_segments where TABLESPACE_NAME='SYSTEM' and rownum < 10 order by BYTES/1024/1024 desc;
并对其进行分析,看system表空间过大的问题。
但如上显示的错误信息已经直接说明:
一是:数据库的审计功能已经开启(SYS.AUD$表,只有开了审计功能才会向其中插入数据),二是:system表空间不足了
其解决的方法有两个:
1)扩SYSTEM表空间,或者清理SYS.AUD$表;
扩展表空间可以参考如下方法:
方法一:手动重设并增加表空间tbsk的数据文件大小
SQL> alter database datafile '/opt/oracle/oradata/ora11g/system.dbf' resize 20G;
方法二:把表空间的数据文件设为自动增长(不建议使用此方法)
SQL> alter database datafile '/opt/oracle/oradata/ora11g/system.dbf' autoextend on next 10M maxsize unlimited;
一个表空间数据库文件最大可以扩展到32G。
方法三:增加新的数据文件(建议使用此方法)
SQL> alter tablespace system add datafile '/opt/oracle/oradata/ora11g/system2.dbf' size 10G autoextend off;
下面语句清理审计表,释放系统表空间:
sqlplus / as sysdba
truncate table SYS.AUD$;
2)关闭审计功能:(关闭审计需要重新启动Oracle)
SQL> show parameter audit
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
audit_file_dest string /oracle/app/admin/ora11g/adump
audit_sys_operations boolean TRUE
audit_syslog_level string
audit_trail string DB -->说明已经开启审计功能
SQL>
执行下面SQL:
SQL>alter system set audit_trail=none scope=spfile;
直接使用spfile文件中的审计功能参考audit_trail为none,即关闭审计功能。
执行完后,重启数据库。
启动后查看:
SQL> show parameter audit_trail
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
audit_trail string NONE
SYSTEM表空间现在又能插入数据了。