sql/lock.htm 문서를 살펴보면 vacuum 실행시 자동으로
ACCESS EXCLUSIVE LOCK MODE로 되는 것으로 나와있습니다.
아직 LOCK을 걸때의 각 MODE에 대해 그 차이는 잘 몰라
이것이 재익님이 말씀하시는 것과 동일한 것인지는 모르겠네요.
만일 동일하다면 shell상에서 vacuumdb를 실행할때는
SQL의 vacuum 실행과 달리 LOCK이 걸리지 않는 건가요?
아니면,
문서와는 달리 자동으로 LOCK이 걸리지 않아
직접 LOCK을 걸고 해야하는 건가요?
음... 아직 LOCK을 직접 걸고 작업해본 경험이 없어
개념이 안잡혀서 그런지 영~ 이해가 안됩니다. ^^;
> 안타깝게도 PostgreSQL 의 경우 상당히 잘 구성된 메뉴얼에도 불구하고, 시스템 에러 관련 부분은 메
> 뉴얼이 너무 부실하여 에러에 대한 조치가 쉽지 않은 실정입니다. 말씀하신 에러의 내욛오 메뉴얼을 보
> 시면 알겠지만 제대로 에러 설명이 없습니다.
> HEAP 관련 에러는 주로 현재 메모리의 HEAP 과 실제의 DB 가 sync 가 제대로 일어 나지 않은 경우에
> 발생할 수 있습니다. 대부분의 경우 심각한 에러없이 잘 끝나지만 가끔은 테이블이 깨어 지는 치명적인
> 에러를 내는 수도 있습니다. 그래서 vacuumdb 를 실행시에는 디비에 대해 EXCLUSIVE LOCK 을 건 상황
> 에서 해야 한다고 생각합니다.
>
> > database정리를 위해 vacuumdb를 가끔 실행시키고 있습니다.
> > 그런데, 다음과 같은 에러와 함께 종료될때가 있습니다.
> >
> > ERROR: HEAP_MOVED_IN was not expected
> > vacuumdb: database vacuum failed on english.
> >
> > 이 경우 어떤 조치를 취해야하나요?
> >
> > 에러메세지 및 조치에 대해 자세한 매뉴얼이 있다면 함께 알려주시면 감사하겠습니다. ^^
> >
> > 좋은 하루되시길...
|