김인겸 2022.07.27 14:32 Views : 351
서버에 있는 프로그램이 10분간격으로 에러코드 1000이 뜨면서 꺼집니다. 그래서 로그를 보았더니 SQL문이 떴는데요 해석좀 해주세요..
2022.07.27 16:07
쿼리문은 단순한 insert문입니다.
oracle에서 10000 에러는 커서가 많이 열릴때 나는 에러입니다.
* sys 권한이 있다면 open cursor의 수를 확인하고 조정을 해주시면 됩니다.
$ show parameter open_cursors;
==> 여기 value값을 아래 쿼리의 count 조건으로 줌
# sid, process, machine등에서 열린 커서 조회
$ select
a.sid, s.process, s.machine, s.module, s.action, count(*) as cnt
from
V$OPEN_CURSOR a
inner join V$SESSION s
on s.sid = a.sid
group by a.sid, s.process, s.machine, s.module, s.action
having count(*) > .....open_cursors_value....;
# 위쿼리의 sid로 쿼리를 확인해봄
$ select sql_id, sql_text from V$OPEN_CURSOR where sid = 위 쿼리에서 확인하고 싶은 sid;
확인을 다 마치고 쿼리를 변경하시거나 system변수를 조정하면 됩니다.
시스템 변수 조정
$ alter system set open_cursors = 적절한값 scope=both;
cmd_comment_vote_user Upvote0 Downvote0 Comment
2022.07.27 16:12
에러코드 1000 은 윈도우 이벤트뷰어 에서 봤을때 그 프로그램이 발생한 에러코드구요
저 SQL문은 저 프로그램이 저장하고있는 로그에서 따온 겁니다 !!
Drop your files here, or click the button to the left.
Maximum File Size : 0MB (Allowed extentsions : *.*)
Uploading... (0%)
Keep me signed in.
쿼리문은 단순한 insert문입니다.
oracle에서 10000 에러는 커서가 많이 열릴때 나는 에러입니다.
* sys 권한이 있다면 open cursor의 수를 확인하고 조정을 해주시면 됩니다.
$ show parameter open_cursors;
==> 여기 value값을 아래 쿼리의 count 조건으로 줌
# sid, process, machine등에서 열린 커서 조회
$ select
a.sid, s.process, s.machine, s.module, s.action, count(*) as cnt
from
V$OPEN_CURSOR a
inner join V$SESSION s
on s.sid = a.sid
group by a.sid, s.process, s.machine, s.module, s.action
having count(*) > .....open_cursors_value....;
# 위쿼리의 sid로 쿼리를 확인해봄
$ select sql_id, sql_text from V$OPEN_CURSOR where sid = 위 쿼리에서 확인하고 싶은 sid;
확인을 다 마치고 쿼리를 변경하시거나 system변수를 조정하면 됩니다.
시스템 변수 조정
$ alter system set open_cursors = 적절한값 scope=both;