Today
Total
KoreanEnglishFrenchGermanJapaneseSpanishChinese (Simplified)
관리 메뉴

DB & AWS Knowledge

PostgreSQL / PPAS 운영 중 테이블 파일 손실 혹은 유실 시 본문

PostgreSQL/기타 지식

PostgreSQL / PPAS 운영 중 테이블 파일 손실 혹은 유실 시

`O` 2021. 3. 8. 00:29
728x90
반응형

해당 자료에서는 테스트 테이블을 통하여 해당 테이블을 저장하는 파일 이동 혹은 유실 시 어떤일이 발생 하는지를 기재한다.

  • 아래와 같이 테스트 테이블을 생성한다.

 

  • PostgreSQL 및 PPAS 는 아래와 같은 쿼리를 실행하면 해당 테이블 정보를 보유한 파일 디렉토리 정보를 볼 수 있다.

select pg_relation_filepath('test.move_test'); #괄호 안에 있는 테이블은 자신이 만든 테이블명으로 조회하면 된다.

 

  • 테스트로 데이터를 기입 후 SELECT 를 하여 기입된 데이터를 확인 해 본다.

 

  • 그 후, 다른 세션으로 접속 후, 위의 디렉토리로 가서 파일을 다른디렉토리에 복사 후, 원본 데이터 파일을 삭제 한다.

 

  • DB에 접속 중인 세션에서 다시 테스트 데이터를 기입 후 SELECT 를 해보면 아래와 같이 데이터가 기입 된 것을 볼 수 있다.
    또한 파일이 삭제 되어도 아래와 같이 디렉토리 정보가 그대로 유지중임을 볼 수 있다.

 

  • \dS+ 테이블 정보를 보면 그대로 조회가 가능하나 \dt+ 를 통하여 조회하면 데이터 size 가 조회되지 않음을 볼 수 있다.
    그 후, DB 를 나갔다 들어오면 조회가 되지 않음을 알 수 있다.

 

  • 다시 다른 디렉토리에서 복사한 파일을 가져온다.

 

  • 파일을 다시 가져오면 데이터파일이 없는 상태에서 기입됐던 데이터까지 확인이 가능하다.
    (단, 해당 방법은 shared_buffer 및 wal log 에 데이터 변경 내역을 전부 보관하지 못했다면 정합성을 보장 할 수 없다.)

 

  • 또한 테이블 조회를 하면 size 조회도 정상적으로 됌을 알 수 있다.

 

반응형
Comments