일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- oracle
- 리눅스
- 독서
- Linux
- Python
- Kibana
- iBatis
- 네트워크
- network
- mssql
- Javascript
- 명령어
- docker
- IntelliJ
- 쉘스크립트
- mysql
- 오블완
- github
- git
- error
- PostgreSQL
- java
- pandas
- 후기
- 자바
- 티스토리챌린지
- SQL
- spring
- MariaDB
- DBMS
- Today
- Total
hanker
[MySQL/MariaDB] .frm, .ibd 확장자 파일이 뭘까? (백업 파일) 본문
MySQL과 MariaDB에서 보이는 주요 파일 형식인 .frm 파일과 .ibd 파일에 대해서 알아보자.
MySQL과 MariaDB 는 디스크에 여러 종류의 파일 형태를 두어 테이블 정의, 데이터, 인덱스 등을 관리한다.
- .frm 파일 : 테이블의 스키마 메타데이터(컬럼 정보, 인덱스 정의 등)를 저장한다.
- .ibd 파일 : InnoDB 스토리지 엔진에서 테이블별 테이블 스페이스를 사용할 때, 해당 테이블의 데이터와 인덱스를 저장한다.
- 옵션 : innodb_file_per_table=ON
경로를 따로 변경하지 않으면 frm, ibd 확장자는 /var/lib/mysql/<스키마명> 디렉터리에 생성된다.
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 확장자 파일을 따로 저장해두는 방법이 물리적 백업 방법이다.
상황에 따라 적절하게 백업해둬 안전하게 서버를 운영하자.
'DATABASE > MYSQL' 카테고리의 다른 글
MySQL - 중복 데이터 찾기 (feat. group by ...having) (0) | 2024.10.13 |
---|---|
MySQL - 문자열 자르기/문자열 추출 (substring) (0) | 2024.10.07 |
mysql - date to UnixtimeStamp (0) | 2024.09.06 |
[MySQL] - Incorrect string value: '\xEC\xA0\x84\xEB\xB6\x81... DB 한글 입력 시 오류 (0) | 2024.01.26 |
MySQL - Schema내에 있는 테이블 목록, 정보 조회 (0) | 2021.02.04 |