“与可画竹时,胸中有成竹。”
周二的主题是《有容乃大》数据库系列,我会介绍包括Oracle体系结构,Ora-XXX的解决方案,性能调优技巧,AWR、ASH报告解读等各种知识,可能也会涉及别的数据库。多知道一点,处理相关的问题就可以成竹在胸。
01
—
ORA-12516
上周Daisy BugHunt的时候, 发现三个测试instance都很慢,而且server log 发现大量错误,ORA-12516, TNS: listener could not find available handler with matching protocol stack。
令人惊奇的是WEB UI上除了慢似乎很少出访问错误。其实这也没什么奇怪的。这只是数据库连接池把这些错误转化成了等待获取连接的时间消耗了。
先看看sqlplus能不能连上数据库吧,
好嘛,sys都上不去了不过这也一下明确了错误原因:processes不够。
ORA-12516不一定是因为processes不够,也可能是因为linstener.ora里的SID_LIST没有配好,或因为运气不好撞上了Bug 8232287 。但这次的原因很明显。
唯一让我奇怪的是1000个processes给只有几个人(十几个人分摊到四个instance)用的instance,应该足够了啊。想起三个instance都慢,不会是它们连同一个数据库吧?一看果然是。Bingle,RCA is done!
怎么解决呢?先关闭几个NODE,让我能登上数据库。然后增大processes到4000.
就像修改equals()要一起修改hashcode()一样,修改完了processes也要修改sessions。
然后就是重启数据库。
确认参数是不是改成功了。
因为我们的数据库使用的是PDB,还要加一步。
重启instance,搞定!
领取专属 10元无门槛券
私享最新 技术干货