今天在51cto上看到一篇文章是将oracle运用java存储过程的,于是想去试
试看,因为之前没有试过,觉得特新鲜。结果在执行initjvm.sql的时候出
错了,停在那里很久,中途有事情出去了一下,回来的时候发现执行不成
功,报了ORA-1653: unable to extend table SYS.IDL_UB1$ by 1024 in
tablespace SYSTEM这个错误。去看了看alert文件发现如下提示
提示说我的System表空间的容量不够大,所以我查了一下我的system表空间
的利用情况,发现如下问题:
通过上图发现原来我的System表空间容量不足了,只剩下3.81M。
于是就从过以下语句对System表空间进行设置,设置为自动扩展。
select tablespace_name,file_name,bytes,autoextensible from dba_data_files;
再次执行一下
initjvm.sql(home/oracle/product/10.2.0/db_1/javavm/install/)。这
次我们又发现了一个新的问题,不过和之前的问题一样是临时表空间容量不足了。
ORA-01652: unable to extend temp segment by 128 in tablespace TEMPTS1
我试着去查看临时表空间的利用率。通过以下SQL语句完成:
SELECT D.TABLESPACE_NAME,SPACE "SUM_SPACE(M)",BLOCKS SUM_BLOCKS,
USED_SPACE "USED_SPACE(M)",ROUND(NVL(USED_SPACE,0)/SPACE*100,2) "USED_RATE(%)",
NVL(FREE_SPACE,0) "FREE_SPACE(M)"
FROM
(SELECT TABLESPACE_NAME,ROUND(SUM(BYTES)/(1024*1024),2) SPACE,SUM(BLOCKS) BLOCKS
FROM DBA_TEMP_FILES
GROUP BY TABLESPACE_NAME) D,
(SELECT TABLESPACE_NAME,ROUND(SUM(BYTES_USED)/(1024*1024),2) USED_SPACE,
ROUND(SUM(BYTES_FREE)/(1024*1024),2) FREE_SPACE
FROM V$TEMP_SPACE_HEADER
GROUP BY TABLESPACE_NAME) F
WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME(+)
发现了如下的情况:
ps -ef|grep ora_dbw0_$ORACLE_SID
kill
之后就可以正常使用了