今天在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(+)
发现了如下的情况:
汗!没想到临时表空间满了。此时通过google获得了很多的解决办法。我通
过新增临时数据文件来扩展临时表空间的大小。
alter tablespace tempts1 add tempfile '/home/oracle/mustang/temp02.dbf' size 500m;
再次看到临时表空间的容量,发现已经正常了。
再次运行initjvm.sql...........成功了!!
另外在实验中还遇到一个问题,就是不知道为什么在提示说system表空间不
足之后,我试着去shutdown数据库,发现数据库关不了。提示是说ora-
01012:not logg on。
ora-01089: immediate shutdown in progress - no operations are permitted
在切换用户时提示说 connect the idle instance。但是在用shutdown
abort关闭时却提示说areadly running。上网查过才知道原来这个是由于
session数太多了,超过了session限制数,于是采用了下面的方法进行kill
session。(这里有请各位大牛指点一下为什么session数会飙升的呢?)
ps -ef|grep ora_dbw0_$oracle_sid
kill -9 pid(pid为你session的进程号)
之后就可以正常使用了
以上只是个人的解决方案,不知道对还是不对,希望大牛们多多喷水。祈求进步,哈哈!