MariaDB/장애

[장애] ERROR 1808 (HY000): Schema mismatch (Expected FSP_SPACE_FLAGS=0x21, .ibd file contains 0x0.)

DBA_JSH 2020. 7. 2. 16:57

1. 내용

1.1 환경

- CentOS 7.4 

- MariaDB Version : 10.1.12, 10.3.8


1.2 내용

1) 10.1.12 MariaDB 데이터 파일(ibd)을 10.3.8 MariaDB로 데이터 임포트 실패 

 - MariaDB [(none)]> ALTER TABLE test.mig_tb IMPORT TABLESPACE ;

   ERROR 1808 (HY000): Schema mismatch (Expected FSP_SPACE_FLAGS=0x21, .ibd file contains 0x0.) 


2. 원인 분석

2.1 테이블 행 포맷 변경 

- 10.1.12에서 테이블의 ROW_FORMAT은 COMPACT였으나, 10.3.8에서는 DYNAMIC으로 변경 됨에 따라 테이블 행의 포맷이 상이하여 에러 발생 


2.2 신규 파라미터 

     - innodb_default_row_format = 'dynamic'  

MariaDB [(none)]> SHOW VARIABLES LIKE '%innodb_default_row_format%';

+---------------------------+---------+

| Variable_name             | Value   |

+---------------------------+---------+

| innodb_default_row_format | dynamic |

+---------------------------+---------+

1 row in set (0.000 sec)


3. 해결

- 10.3.8 MariaDB 테이블 행 포맷을 Compact로 변경 

SET GLOBAL innodb_default_row_format = 'COMPACT';

- 테이블 생성 후 데이터 임포트 

MariaDB [(none)]> ALTER TABLE test.img_tb IMPORT TABLESPACE ;

Query OK, 0 rows affected, 1 warning (0.160 sec)

- 테이블 행 포맷 재변경 

SET GLOBAL innodb_default_row_format = 'DYNAMIC';