Today
Total
KoreanEnglishFrenchGermanJapaneseSpanishChinese (Simplified)
관리 메뉴

DB & AWS Knowledge

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

MySQL/기타 지식

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

`O` 2021. 3. 3. 03:42
728x90
반응형
  • 해당 자료에서는 MySQL / MariaDB 를 특정 테이블 파일이 유실시 어떻게 되는지를 보여주는 자료다.

  • 우선 아래와 같이 move_test 라는 테스트 용 테이블을 만들고 데이터를 기입 해 본다.

 

  • 그 후, 다른 OS 세션을 켠 후 데이터 경로에 가서 테이블 파일 (frm, ibd 확장자) 를 다른 경로로 이동 시켜본다.
    ( MySQL, MariaDB 는 DB 디렉토리 및 오브젝트 파일 <형상 frm, 데이터 idb 확장자로 2개 파일> 로 각 테이블의 형상 및 데이터를 관리한다.)

  • DB를 켠 세션으로 돌아와서 데이터 기입 및 select 를 해보면 데이터가 기입 되고 조회가 되는 것을 볼 수 있다.

  • 테이블 파일 이외에 테이블스페이스 파일 (ibdata) 및 DB 디렉토리까지 다른 곳으로 옮겨본다.

  • 테이블은 그대로 조회가 되나, 다시 test DB 를 사용하려고 하면 찾을 수 없는 에러를 볼 수 있다.

  • 다시 DB 디렉토리 및 테이블 파일까지 다시 원복을 시켜본다.

  • 그 후, DB를 조회해보면 테이블 리스트 중에 테스트 대상 테이블이 보이지 않음을 확인 할 수 있다.
    파일을 옮긴 후 다시 조회해 보면 테이블이 조회 됨을 알 수 있다.

  • 그 후, 다시 데이터를 기입해보고 조회를 마친뒤 뒤, 재접속을 해보면 그대로 조회가 됨을 알 수 있다.

 

  • 테이블을 만들려고하면 아래와 같이 storage 이슈가 발생 한다.

 

  • 재기동 후 다시 생성하려고 하면 아래의 다른 에러를 볼 수 있다.

 

  • 위의 테스트를 보면 이슈 발생 시, 아래의 결과를 추측 해 볼 수 있다.

    • 테이블 파일을 이동시켜도 해당 테이블을 조회 및 기입을 해볼 수는 있으나
      checkpoint 등으로 데이터를 써내릴 때, 문제가 반드시 발생하기에 파일 원복 만으로는 정합성은 보장 할 수 없고,
      storage 에러등의 치명적인 문제가 발생 하기에, 테이블 자체 복구 과정을 거쳐야 한다.
반응형
Comments