DATABASE/MYSQL

[MySQL/MariaDB] .frm, .ibd 확장자 파일이 뭘까? (백업 파일)

hanker 2025. 4. 26. 14:38
반응형

MySQL과 MariaDB에서 보이는 주요 파일 형식인 .frm 파일과 .ibd 파일에 대해서 알아보자.

 

MySQL과 MariaDB 는 디스크에 여러 종류의 파일 형태를 두어 테이블 정의, 데이터, 인덱스 등을 관리한다.

 

  • .frm 파일 : 테이블의 스키마 메타데이터(컬럼 정보, 인덱스 정의 등)를 저장한다.
  • .ibd 파일 : InnoDB 스토리지 엔진에서 테이블별 테이블 스페이스를 사용할 때, 해당 테이블의 데이터와 인덱스를 저장한다.
    • 옵션 : innodb_file_per_table=ON 

경로를 따로 변경하지 않으면 frm, ibd 확장자는 /var/lib/mysql/<스키마명>  디렉터리에 생성된다.

 

frm 확장자 파일과 ibd 확장자 파일


1. frm 확장자 파일 

 

각 테이블의 구조를 저장하고, MyISAM뿐 아니라 InnoDB 테이블 정의에도 사용한다.

* MySQL 8.0 부터는 내부 데이터 딕셔너리로 메타데이터를 관리하므로 .frm 파일이 더 이상 생성되지 않는다.

* MariaDB는 MySQL과 달리 현재도 .frm 파일을 사용

 

 


2. ibd 확장자 파일

 

InnoDB에서 innodb_file_per_table=ON 설정 시, 각 테이블별로 별도의 테이블 스페이스 파일을 만들어 데이터와 인덱스를 저장한다.

* 공유 테이블스페이스(ibdata1) 대신 파일 단위 백업,이동,복구가 용이하다.

* .frm파일과 .ibd파일이 정확히 매칭되어야만 복구가 가능하다.

 


3. innodb_file_per_table 설정에 따른 차이

 

innodb_file_per_table=ON/OFF 별 구동에 대해서 알아보자.

 

3-1. OFF (MySQL 8버전 이전 기본 값)

  • 모든 InnoDB 테이블의 데이터, 인덱스가 ibdata1에 몰려서 저장된다.
  • 개별 테이블(.ibd) 파일이 없으므로 테이블 단위 백업이 불가

 

3-2. ON (MySQL 8버전 이후 기본 값)

  • 각 테이블별 .ibd 파일 생성 → 파일 단위 관리 및 백업 가능
  • 파일이 많아져서 디스크 inode 소모

 

* OFF를 사용하다가 ON으로 변경 시 ALTER TABLE [테이블 명] ENGINE=InnoDB; 로 재생성을 해주면 된다.

 


정리

 

.frm 파일과 .ibd 파일은 백업 및 복구에 사용되는 파일이다.

 

우리가 알고있는 mysqldump는 논리적 백업에 해당하고, frm, ibd 확장자 파일을 따로 저장해두는 방법이 물리적 백업 방법이다.

 

상황에 따라 적절하게 백업해둬 안전하게 서버를 운영하자.

 

반응형