Oracle数据库 SYSTEM.DEF$_AQCALL表空间不足

来源:互联网 发布:js jsonarray 长度 编辑:程序博客网 时间:2024/05/18 00:21

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;