일단은 catalog 파일이 깨진 것 같습니다.
그리고 database 목록은 pg_database 라는 테이블에 그리고, table 의 목록은 pg_class 라는 카탈로그 파일에 저장됩니다. 참고하시기 바랍니다.
만약 카탈로그 파일이 깨 졌다면 복구할 방법은 DB 구조를 알고서 바이너리 방식으로 하나하나 복구해 보는 수 밖에 없습니다. 해당 정보는 현재 이곳과 문서에는 올라와 있습니다. 하지만 이것을 하신분이 계시더군요. 아래에서 이름중 '김상기' 라는 분을 찾아 보시기 바랍니다. 그 분께 직접 도움을 요청해 보는 것도 좋은 방법입니다. :/)
::이봉우 님께서 쓰시길::
> 서버 재시동, vacuum은 시행해 보았지요. 아무 소용이 없습니다.
> 현재까지의 문제점을 정리하면 다음과 같습니다.
> 1. /tmp 파티션에 있는 PostgreSQL 용 파일이 손상되어 DB내의 table 구조가 깨진것 같음. psql로 DB
> 에 접속후 \dt or \d 로 table 리스트 확인시 table이 전혀 없다고 나욤.
> 2. 그러나, 실제 데이타는 화일에 남아 있음.
> 3. 시험삼아 같은 이름의 table을 생성시키려하면 table이 존재한다고 메시지가 나옴. 해당 디렉토리
> 내에 그 table과 관계된 화일이 존재하여 생성이 안되는것 같음.
> 4. table이 없다면 웹브라우저로 요청을 했을 경우 해당 table이 웹상에 보이지 않아야 하는데, 데이
> 타가 없는 비어 있는 table로 나오고 글을 새로 올리면 1번 글로 최초의 자료로 올라갑니다. 이것은 왜
> 작동하는것인지..?
>
> 그래서 다음과 같은 질문 두가지를 할께요..? 너무 황당할 수도 있으나 저로써는 어쩔 수가 없네요.
> 데이타를 날리면 저는 죽은 목숨이거든요.
> 1. 생성된 DB내에 존재하는 생성시킨 table 리스트를 담고 있는 화일이 어느것인지?
> 정말로 이것이 깨진 것인지 확인하고 싶은데 찾으니 도통 알길이 없군요?
> 2. 정 안된다면 실제 table 명으로 존재하는 화일에 데이타가 저장되고 생성시킨 sequence는 정의한
> 이름으로 화일이 생기는데, 데이타 dump가 전혀 안되어 있는 상황에서 이러한 실제 데이터 화일로 예전
> 의 DB와 같은 정도로 복구할 수 있는 방법은 없는지..? 즉, 실제 데이터 화일을 이용하여 최악의 경우
> 새로 생성시킨 DB에 데이타를 넣을 방법은 없는 것인지..?
>
> 어제 밤새고 너무 피곤하군요. 잘 작동하던데, 이처럼 망가질 수 있는 것인지, PostgreSQL 자체에 문
> 제가 있는 것인지, 아님 다른 DB로 옮겨야 하는지...
>
>
> ::정재익 님께서 쓰시길::
>
> > 서버를 물론 재 기동 해 봤겠지요.
> > 그리고 vacuum 을 한번더 시행해 보시기 바랍니다.
>
|