본문 바로가기

Troubleshooting

[일반] SQL0902C (Restore:ENOSPC (28))

Linux 나 AIX 환경이 아닌 unix 환경에서는 kernel parameter 값을 설정해 주어야 한다.

( Linux 및 AIX 경우는 DB2 실행 시 동적으로 kernel parameter 값이 설정되는 것으로 알고 있다)

 

Solaris 나 HP-UX 환경에서 kernel parameter 값을 설정하지 않아도 설치 및 인스턴스 구성, 인스턴스 실행 시 오류가 발생하지 않아 설정하지 않는 경우가 종종 있다.

이런 경우 특정 작업을 하다가 오류가 발생해서 원인이 못찾고 헤매게 되는 경우가 있다.

 

보안 상 고객사의 진단로그 메시지들을 메모하지 못하고 나와서 그 오류 메시지를 글에 넣을 수는 없지만,

기억나는 오류 코드는 SQL0902C, 디바이스 부족 정도였던 것 같다.

 

db2diag.log를 보면서 맨 처음 의심이 드는 것은 restore 시 필요한 경로의 disk 가용 공간이 부족해서 생긴 문제로 보여, disk 가용 공간을 확인해 봤지만 문제점은 찾을 수 없었다. (고객사의 문제는 restore 시 SQL0902C 에러로 실패하면서 작업 진행을 하지 못하는 상황이였다)

나중에 로그의 특정 메시지를 통해서 kernel parameter 를 설정하지 않아서 생긴 것으로 원인을 파악하게 되었다.

 

kernel parameter 관련 technote를 소개해 본다.

 

1. the db2diag.log is reporting an ENOSPC (28) error message

    URL: http://www-01.ibm.com/support/docview.wss?uid=swg21407281

 

2009-11-15-16.18.55.210069+330 E25334773A223 LEVEL: Error (OS)
PID : 47785 TID : 4198246823968PROC : db2sysc 0
INSTANCE: db2inst1 NODE : 000 DB : SAMPLE
APPHDL : 0-17762 APPID: 9.142.38.82.23748.034005560721
AUTHID : DB2INST1
EDUID : 75 EDUNAME: db2agent (DB1) 0
FUNCTION: DB2 UDB, oper system services, sqloNLCKLock, probe:150
MESSAGE : ZRC=0x8300001C=-2097151972
CALLED : OS, -, semget

 

2.  SQL0902C A system error (reason code = "") occurred.  Subsequent SQL statements cannot be processed.

     URL: http://database.ittoolbox.com/groups/technical-functional/db2-l/sql0902c-a-system-error-3974926

 

2011-01-11-11.48.54.138210-300 I29339688A484 LEVEL: Error
PID : 21872 TID : 1 PROC : db2agent (VPLANDB) 0
INSTANCE: db2vplan NODE : 000
APPHDL : 0-40 APPID: 128.209.72.162.45433.1101111648
AUTHID : VPLANADM
FUNCTION: DB2 UDB, buffer pool services, sqlbinit, probe:550
MESSAGE : ZRC=0x850F0081=-2062614399=SQLO_SSEM_EXCEED_MAX
"Requesting too many semaphores"
DIA8336C Requested too many semaphores

 

3. Severe system error occurs with SQLO_NORES, DIA8336C and DIA8532C messages in db2diag.log

     URL: http://www-01.ibm.com/support/docview.wss?uid=swg21406633

2009-10-08-11.35.20.600704-320 I5639725A439 LEVEL: Severe
PID : 25196 TID : 7 PROC : db2sysc 0
INSTANCE: db2inst1 NODE : 000
EDUID : 7 EDUNAME: db2ipccm 0
FUNCTION: DB2 UDB, global services, sqzEDUObj::StartEDU, probe:10
RETCODE : ZRC=0x870F00F2=-2029059854=SQLO_NORES

 

Solaris 나 HP-UX 환경에서는 꼭 kernel parameter를 설정하고 DB2 설치 작업을 하는 것이 좋다.