前两天过完年回北京,结果一上班就碰到一个问题:公司在深圳那边有一个Oracle项目,一次系统重启后Oracle数据库就无法连接了。项目开发人员求救于我,我想前段时间看了一些Oracle的书,就尝试一下吧。通过远程控制连接到对方的服务器上后,使用sqlplus访问数据库,发现数据库可以mount上,但是无法open。于是我检查了一下bdump目录下的alert_xxxx.log文件,发现最后出现提示:无法在share_pool上分配内存。之后我show parameter检查了下share_pool的大小,发现是87兆左右,于是我问项目人员对方的服务器有多大内存,答曰:16*2G。这么大的内存,为何共享池这么小呢?可能扩充共享池的大小就能解决问题了吧。我修改共享池大小后关闭数据库,然后再打开,发现一切就ok了。
其实这个问题是非常简单的,虽然我并没有太多Oracle实践经验,但是也能很容易解决。而那个项目的开发人员,已经开发了两三个Oracle相关的项目了,竟然还不能解决这类的问题,这太让我失望了。开发人员如果没有持续学习的精神,那么对于自己和所在的公司都是一种巨大的损失,自己也会逐渐丧失从事开发的乐趣和想法。