문서유형ㅣ기술정보
분야ㅣ모니터링/점검
적용제품버전ㅣ 6FS05, 6FS06, 6FS07, 6FS07PS, 7FS01, 7FS02, 7FS02PS
문서번호ㅣTMOTI034
현상
DB 부팅 시,
A shared memory segment with the same key already exists 에러 발생하며 기동 안 되는 현상이 발생하였습니다.ASCMD> cd archive current path = +DS/archive ASCMD> ls <File_name> log-t0-r0-s5.arc - Number of files found: 1 ASCMD> rm log-t0-r0-s5.arc rm complete: +DS/archive/log-t0-r0-s5.arc --> archive 삭제 ASCMD> ls ERROR: no such path '+DS/archive/' (rc=-19)
원인
티베로는 DB 부팅 시, shm key값은
$TB_HOME과 $TB_SID 값을 해싱하여 고유한 shm key를 생성한 뒤 해당 key로 공유 메모리(Shared Memory)를 생성합니다.이때 동일한 key로 이미 생성된 Shared Memory가 존재하고, 다른 프로세스가 해당 Shared Memory에 attach 중이라면,
A shared memory segment with the same key already exists 오류가 발생하며 DB 부팅이 실패합니다.참고로, shm key는
$TB_HOME과 $TB_SID 값으로 해싱하기 때문에 단순 재기동으로는 문제가 해결되지 않습니다.해결
로그에 기록된
SHM_KEY 값을 기준으로 해당 공유 메모리의 shmid를 확인한 후, 이를 공유 메모리에서 해제한 뒤 DB를 다시 기동하면 정상적으로 부팅됩니다.$ tbboot
**************************************************************
* A shared memory segment with the same key already exists.
* SHM_KEY = 0x1438469a
* Trying to reuse the shared memory segment....
**************************************************************
$ ipcs -m | awk '$1=="0x1438469a" {print $2}' | xargs ipcrm -m
--- '$1=="[SHM_KEY 값에 맞게 수정]"
$ tbboot
Listener port = 9292
Tibero 6
TmaxData Corporation Copyright (c) 2008-. All rights reserved.
Tibero instance started up (NORMAL mode).참고
$ ipcs -m | awk '$1=="0x1438469a" {print $2}' | xargs ipcrm -m구문 설명
ipcs -m: 공유 메모리 자원 조회
awk '$1=="0x1438469a" {print $2}': 첫번째 필드가 0x1438469a인 행에서 두번째 필드 조회
xargs ipcrm -m: 받아온 인자로 공유 메모리 삭제결론적으로, 공유 메모리 자원을 조회하고, 첫번째 필드(key)가 0x1438469a인 공유 메모리의 두번째 필드(shmid)를 받아와서, 그 인자(shemid)를 ipcrm -m 통하여 삭제하는 구문입니다.ipcs -m과 관련된 구문 번외 설명
ipcs -s: 세마포어 자원 조회
ipcrm -s: 세마포어 삭제