database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 38723 게시물 읽기
No. 38723
급하게 질문올립니다 디비접속시 ORA04031 에러와 디비 접속 불
작성자
신휘호(shh9741)
작성일
2011-07-21 10:48ⓒ
2011-07-21 11:05ⓜ
조회수
4,213

급하게 도움 요청 드립니다.

 얼마전 다음과 같은 문제 땜시 smileDBA님으로부터 기술자료 도움을 받았었었는데요.

서버환경
1. IBM P5-570 ,
2. OS : AIX 5.2
3. DB : ORACLE 8.1.7
  db_block_buffers = 11000
  shared_pool_size = 92160000
 large_pool_size = 614400
  db_block_size = 8192
 
[문제점] 에러리포트
2. 인스턴스의 bdump 의 alter.log 확인해보니
Wed Jul  6 12:40:00 2011                                                                     
Errors in file /oracle/admin/vamsdb/udump/ora_96606_vamsdb.trc:                              
ORA-00600: internal error code, arguments: [729], [652], [space leak], [], [], [], [], []    
Wed Jul  6 12:40:01 2011                                                                     
Errors in file /oracle/admin/vamsdb/udump/ora_96606_vamsdb.trc:                              
ORA-00600: internal error code, arguments: [729], [652], [space leak], [], [], [], [], []

==================================================================================================

===>디비 접속 후 로그오프시에 반환되는 메모리 사이즈가 같지 않으면 alert.log를 띄운다는 내용이었으며

중요한건 2) 만약 leak이 SGA 내에 발생했는가? UGA 내에 발생을 했었으며
ALERT log를 살펴보고, shared pool 이나 OS memory 와 관련한 추가적인 문제는 없는지 ORA-4030 또는
ORA-4031 발생 여부를 확인해야 한다. ---> 그 당시 확인시에는 4030 & 4031이 alert.log가 있질 않아서 무시했었었습니다.

현재 디비 접속시 에러 로그는

ORA-00604 : error occurred at recursive SQL level 2

ORA-04031 : unable to allocate 4200 bytes of shared memory ("shared pool","SEQ$","sga heap","state objects") 

initSID.ora 파일 확인해보니 지난 담당자가 아래와 같이 수정을 했으며 ORA-04031 에러가 간혹 떠서 재 접속 해보면

다시 접속은 됐었다고 하더군요...

#shared_pool_size = 20480000
#shared_pool_size = 51200000
#shared_pool_size = 71680000
shared_pool_size = 92160000

접속이 되질 않으면 위와 같이 shared pool size를 늘려주었구요...

그리고 위의 ORA-00600 에러 메세지 발생 이후 실제로 디비 접속시 ORA-04031 에러는 간혹 띄웠으나 재접속 하면 접속 됐어구요.

 현재 메모리 상태는 다음과 같구요.

[]/oracle/product/8.1.7/dbs> lsps -a(페이징)
Page Space      Physical Volume   Volume Group    Size %Used Active  Auto  Type
hd6             hdisk0            rootvg        8192MB     9     yes   yes    lv

물리적인 메모리 사이즈는 4G입니다.

질문사항

shared pool size는 상황에 맞게 튜닝해줘야 한다고 들었습니다. 그냥 마냥 늘려주는게 아니라고 하더군요...

늘린다면 얼마만큼 늘려야 하는건가요?

시스템 엔지니어인데 DB까지 모니터링 하고 있어서... 정신 없네요...

그리고 initSID.ora 파일 수정 후 DB를 shutdown immediate 하고 startup 해줘야 한다는게 맞는건가요?

시스템 계정 로그인 후 해당 인스턴스에서 sqlplus sysdba로 접속해도 다음과 같은 에러가 뜨네요.

ERROR:
ORA-00604: error occurred at recursive SQL level 1
ORA-04031: unable to allocate 4200 bytes of shared memory ("shared pool","DATABASE","sga heap","state objects")

그럼 디비 접속 해서 어떻게 디비 내리고 startup 해야 하는건가요? 아주 막막 합니다.

 급하게 도움 요청합니다...

이 글에 대한 댓글이 총 1건 있습니다.

일단 다음과 같이 해결하였습니다.
ps -ef | grep 인스턴스명 잡아보니 다른 인스턴명고 다르게 다음 프로세스가 엄청나게 많더군요.

oraclevamsdb (DESCRIPTION=(LOCAL=no)(ADDRESS=(PROTOCOL=BEQ))) 그래서 해당 PID를 일부 삭제하였더니 접속이 가능합니다.
단순하게 shared pool size 를 늘려준다고 해결 될 것 같지 않습니다. 
1. 리터럴 SQL => 바인드 SQL로 수정

2. 단순하게 shared pool size 가 90M 인데 물리메모리가 4G이니 늘려준다.

DB 튜닝이 필요할 것 같습니다. 정말 감사합니다.

휘호님이 2011-07-21 13:14에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
38726오라클 이중 디비링크 질문 입니다. [2]
애로천사
2011-07-21
4567
38725출석부를 구현하고 싶습니다..ㅠ.ㅠ 도움 부탁드립니다. [1]
공부하자
2011-07-21
4808
38724목표값 찾기?? [5]
양승일
2011-07-21
4920
38723급하게 질문올립니다 디비접속시 ORA04031 에러와 디비 접속 불 [1]
신휘호
2011-07-21
4213
38722그룹 문의 [1]
레이첼
2011-07-20
3144
38721회비 납부 관련 문의 [3]
강진묵
2011-07-20
4202
38720조인 문의 [1]
레이첼
2011-07-20
3053
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.020초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다