记录一些意外:ORA-00020:maximum number of processes (1500) exceeded 错误解决方法

来源:互联网 发布:html post json 编辑:程序博客网 时间:2024/05/18 07:21

就是题目的错误

sysdba登录不上

一些博客提供的方法是改参数,杀进程,查看状态

问题是无法登录啊,只能去找杀进程的资料

现在纪录方法

查看进程

ps -ef|grep LOCAL 

杀进程

ps -ef|grep oracleorcl|grep -v grep|cut -c 9-15|xargs kill -9


杀进程以后应该就好了,然后查看oracle日志找谁登录过多

查看oracle日志位置

lsnrctl,show

发现arcgisServer连接最多,继续找arcgisServer日志,没找到。。。


oracle查看正在执行的语句

select a.program, b.spid, c.sql_text,c.SQL_IDfrom v$session a, v$process b, v$sqlarea cwhere a.paddr = b.addrand a.sql_hash_value = c.hash_valueand a.username is not null;


查看oracle日志发现是arcgis服务器访问数据库最多。看不到arcgis日志,直接看arcgis服务器的端口使用情况,netstat -ano >test.txt   输出太长,在文本里查看

找到使用端口特别多的进程pid,根据pid找到进程名,是用户为arcgis的javaw。还有ArcSOC.exe,找不到根源,先都杀了吧。taskkill /f /im ArcSOC.exe

杀进程之后arcgis服务器的图层显示不出来了,再重启arcgis服务器


arcgisserver服务启动就不断访问数据库,直到数据库占满,停止服务很快就恢复正常,tasklist有特别多的ArcSOC.exe,netstat没有陌生IP,arcgisServer不断产生日志都是各种访问图层,好复杂的症状,都快怀疑是被黑客入侵然后留后门了,其实数据库里也有类似症状,数据库执行某个默认的计划任务,然后整个电脑都莫名其妙特别卡。

找了方法改了arcgisServer端口,打开系统防火墙(因为端口屏蔽问题被迫关闭,因为是内网服务器也不担心安全性)连我自己都不能http访问图层服务了,还是不行,打开服务马上日志就显示有读取图层的操作,怀疑是黑客脚本通过后门在不断运行。

咨询了相关的专业人员,了解到arcgisServer确实有计划任务,每过一段时间检查一次所有图层的可用性,打不开就不断的尝试打开数据库。虽然技术人员说一般不会占满数据库,但是可以实验检测一下。查看日志里被反复访问失败的几个图层(其实早该淘汰的旧图层),停止或者删除。然后真的好了,可是有一组图层是在使用中的。考虑重新发布图层服务替换旧服务,打开图层的过程中发现有一个图层打不开,arcgis里显示有这个图层,navicate里没有这个表。估计是谁通过navicate不小心删除了这个表,arcgisSDE的管理机制没发现删除,在检查的时候才暴露出来,有因为设计缺陷造成连锁反应,最终全局崩溃。

停了服务,找到图层源文件,导入数据库。打开服务,万事大吉。


反省:一个小问题造成的连锁反应,耽误了昨天晚上到今天晚上的时间,整个组的进度都卡住了。之前我就一点没敢删数据库里的东西,怕造成连锁反应,可是也不知道是谁删的。没准是压到键盘了,结果就呵呵了,所以数据库权限不能随便给,一定要每个人用自己的账户,不要图方便把管理员账户做成公用的就拉倒了。

阅读全文
0 0
原创粉丝点击