ORA-00020错误处理及修改process的方法

 

问题描述:数据库连接太多,连接打开没有长时间不关闭,时间长了会连接不上数据库。

解决方式:

1、增加process数量

2、检查应用程序使用数据库连接后有没有释放连接。 

 

查看系统参数配置

SQL>show parameter process
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
processes integer 300

SQL> show parameter session
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
sessions integer 335

                    


SQL> select count(*) from v$process;
COUNT(*)
----------
297
SQL>select count(*) from v$session;
COUNT(*)
----------
297

 

查看哪些程序产生大量的连接
SQL> selectprogram,status,count(*) from v$session
group by program,status having count(*) > 5
order by program,status;

 

定位session 最后run的SQL
SQL> select sql_text,count(*) from v$sql s , v$session se where se.prev_hash_value =s.hash_value group by sql_text;

 

在操作系统上查看进程
$ps -ef | grep ora


修改processes后,session等参数会自动修改
SQL> alter system set processes=5000 scope=spfile;

修改/etc/sysctl.conf 文件
kernel.sem=5010 641280 5010 128

#/sbin/sysctl -p 

重新启动数据库

 /////////////////////////////////////////////////////////////////////////////////////////////////////////////

后记:

本例中最后进行了增大数据库的日志文件操作,通常来说,日志文件的大小对数据库性能影响比较显著。日志切换的时候影响数据库。

对数据库监控可以用 Quest Spotlight on oracle

官方网站:http://www.quest.com/ ,可以免费试用30天哦。现在的版本是8.01

 

阅读更多
个人分类: 数据库
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭