ORA-00604: error occurred at recursive SQL level 1
ORA-01653: unable to extend table SYSTEM.DEF$_AQCALL by 1024 in tablespace SYSTEM
今天Sofia在wcms后台修改某ua记录时发生了上述异常,第一句ORA-00604是概括性的说明,第二句才是重点:
在表空间SYSTEM中,表SYSTEM.DEF$_AQCALL大小无法扩展。
解决过程:
1. 确定原因,查询知道SYSTEM.DEF$_AQCALL是Oracle中用来记录复制队列的系统表,只要发生操作,即会往该表中写入数据,因此随着时间的推移,其中数据体积会不断变大,AnyMusic在移动的服务器上的WCMS系统在运行了几年之后,2G的表空间即被占满,可见在电信级的数据量得需要多大的服务器体积。
而在默认的Oracle配置中,SYSTEM.DEF$_AQCALL是存在于系统表空间SYSTEM中的。因此SYSTEM会随着时间的推移而越来越庞大。
2. 寻找解决方案,最后通过扩大SYSTEM表空间的大小解决(扩大了2G)。但这显然不是最佳解决方案,最好还是能在Oracle安装之初就为SYSTEM.DEF$_AQCALL分配单独的表空间进行存储。
最后给出扩展表空间的语句:
alter tablespace SYSTEM add datafile 'd:/www/data/oradata/system02.dbf' size 2g;