반응형

xtrabackup 후 restore하면서 로그를 보고있는데 *.TRG로 끝나는 파일이 있다.
생소한데;... 뭔가 한번 확인해 보았다.


TRG 파일은?

트리거 관련 파일을 말한다.
트리거 파일은 확장자가 trg가 되며 트리거 명.trg가 아니라, 트리거가 생성되어 있는 테이블명.trg가 생성된다.
해당 테이블에 트리거가 많을 경우 하나의 trg파일에 모두 저장되고, 트리거명.trn 파일이 생성된다.

 

1) restore 후 실제파일 확인

[root@test-db xxxDB]# ls -al *.TRG
-rw-r----- 1 root root 9509 2021-03-23 06:04 TB_xxx.TRG
-rw-r----- 1 root root 5450 2021-03-23 06:04 TB_xxx_TC.TRG
// trg파일은 트리거를 사용하는 테이블명.trg로 생성되어 있다.

[root@test-db xxxDB]# ls -al *.TRN
-rw-r----- 1 root root 42 2021-03-23 06:04 TB_xxx_AFTER_INSERT.TRN
-rw-r----- 1 root root 42 2021-03-23 06:04 TB_xxx_AFTER_UPDATE.TRN
-rw-r----- 1 root root 46 2021-03-23 06:04 TB_xxx__TC_AFTER_INSERT.TRN
-rw-r----- 1 root root 46 2021-03-23 06:04 TB_xxx__TC_AFTER_UPDATE.TRN
// 실제 트리거는 .trn으로 생성되어있다.

 

2) mysql 8에서 달라지는 점
data dictionary를 사용하면서 기존에 파일로 있었던 .frm / .par / .trn / .trg 등의 파일이 사라진다.
mysql 데이터베이스의 데이터들은 mysql.ibd 테이블 스페이스에 저장이 된다고 합니다.

 - mysql 8에서는 데이터사전이란 개념이 들어가면서 mysql.ibd로 통합되고 .trg는 더이상 사용하지 않는다고 한다.

 

mysql 데이터베이스의 테이블들을 show create table 명령으로 확인해 보면 아래와 같습니다.
/*!50100 TABLESPACE `mysql` */ ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin STATS_PERSISTENT=0
더이상 MyISAM 엔진을 사용하지 않습니다.

 

InnoDB 엔진 이외의 엔진들에 대한 metadata 저장은 Serialized Dictionary Information (SDI) 파일에 JSON으로 저장합니다. 기본 설치후에 mysql 데이터베이스 디렉토리에 general_log와 slow_log 테이블의 .sdi 파일을 확인할 수 있습니다.

반응형
블로그 이미지

dung beetle

취미는 데이터 수집 직업은 MYSQL과 함께 일하는 DBA의 소소한 일상 이야기

,