Oracle究竟到底发生了什么?(Oracle前一年)

Oracle数据库是现今企业数据库存储解决方案的重要一部分,一般发生在其中的问题都会引起广泛的关注。日前,围绕着Oracle的问题却在企业中引发了极大的讨论。

在Oracle的问题爆发之初,几名技术人员发现在企业中使用的 Oracle 数据库会自动触发性能问题,简单地描述就是,数据库的查询性能突然降低,甚至产生死机的情况,其后重启之后又一切正常。

面对Oracle的故障,各家公司不约而同地开始倒查,逐一分析检查网络环境,查看健康状况,直到发现原来和Oracle连接的Web服务存在漏洞而导致。随后,技术人员发现客户端与Oracle创建的连接池在某种情况下无法释放,过多的连接池造成了连接资源的耗尽,才导致了onacle数据库出现性能问题。

其实,在大家查查技术原因之后,也发现了在Web服务部分存在的配置缺陷。一般而言,我们可以在ConnectionFactory实例加载之后,多次向池中请求连接,但没有再去显式释放它。如果我们想释放连接,我们只需要做以下修改:

try {
//分配连接,执行数据库操作
......
} finally {
//释放连接
demoConnection.close();
}

通过修改,就可以确保释放连接池,避免了连接池一直累积而造成Oracle数据库性能问题。

总之,Oracle究竟到底发生了什么?在客户端存在的配置错误及Web服务器上缺失的漏洞,正是导致Oracle数据库存在性能问题的最终原因。


数据运维技术 » Oracle究竟到底发生了什么?(Oracle前一年)