> > > 잘 사용하고 있던것이 갑자기 서버가 안뜨네요.
> > > 현재 postmaster는 죽어 있는 상태고요
> > > ps /ax | grep postmast로 확인 했거든요.
> > > 그리고 /tmp 디렉토리를 몽땅 지운 상태거든요.
> > > 그러니 postmaster도 안뜬 상태고
> > > /tmp/.s.PGSQL.5432도 없는 상태인데
> > > 어디 다른데서 5432번 포트를 사용하고 있지도 않은데
> > > 이상하게 에러메세지만 자꾸 뜨네요.
> > > 이 상황을 어떻게 해결해야 할지 좀 알려주세요.
> > >
> > > 에러메세지는 아래처럼 나옵니다.
> > >
> > > [postgres@dns1 postgres]$ postmaster /i
> > > FATAL: StreamServerPort: bind() failed: errno=2
> > > Is another postmaster already running on that port?
> > > If not, remove socket node (/tmp/.s.PGSQL.5432) and retry.
> > > /usr/bin/postmaster: cannot create UNIX stream port
> > >
> > > 가르쳐 주세요.
> > > 저로서는 해결을 못하겠네요.
> > > 도무지
> >
> > 저도 원인을 알수가 없군요. 드군다나 잘 돌아가던 서버에 그런 현상이 생기다니...
>
> > 디비 디렉토리를 백업 받으시고 (자료 백업도 dump 받아 두세요) 다시 설치해 보시
> 기 바랍니다.
> > 특별한 원인 짐작이 가질 않습니다.
>
> 저도 이런 에러가 나왔더군요/_/;;;
> 에러 찾으러 산만리 하다가, 자료가 없기 때문에 고심끝에 이렇게 해결했습니다.
> 가만히 에러 분석을 해 보니, bind드란 놈이 로컬 소켓 주소를 생성하는 데, 아마
> 포스트그래스와 중복이 되었나 보더군요.
> /tmp방 밑에 .s.PGSQL.5432란 놈을 찾아 보니, 처음에는 없더군요.
> "mc"란 명령어를 사용해서 보니깐 이놈이 꼭꼭 숨어 있더구요.(mc는 아시죠^^)
> 그래서 mc에서 이놈을 삭제하구 다시
> ./postmaster /i /S /D ...... 을 실행시키니깐
> 잘 돌아가더군요.
> 저도 정확한 에러의 원인을 잘 모르지만 이렇게 해결했습니다.
> 도움이 되었으면...
그렇습니다. 그런 경우에는 당연히 .s.PGSQL.5432 라는 local unix socket 파일이 남아 있는 경우이지요.
이것은 대부분 postmaster 백엔드 데몬이 아무런 이유없이 abnormal termination 한 경우입니다. 이런 경우는 당연히 그렇게 해 주어야 합니다.
하지만 남아 있지 않은 경우라면 도대체 이유를 알수 없는 경우지요. 말씀하신대로 mc 로 한번 더 찾아 보시기 바랍니다. 혹시 있었는데 잘못 볼수도 있는 문제이니까요.
|