데이터베이스 개발자 질문과 답변 게시판
데이터베이스 개발/운영 관련 질문과 답변을 올리는 게시판입니다. 궁금하신 내용을 이곳에서 문의하시면 SQLER 분들의 답변을 받으실 수 있습니다. 문의를 하실때에는 최근 작업하신 특이 사항이나, 장애 발생 전 상황을 상세히 올려 주시면 답글을 적어주시는 SQLER분들의 답변이 더 정확할 수 있으니 도움 되시길 바랍니다. 쿼리 문의일 경우, 실제 문제가 재현되는 테이블생성, 샘플데이터 생성 쿼리를 함께 올려 주시면 더 빠르고 정확한 쿼리 문의 응답이 가능합니다.
쿼리문은 단순한 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;