[테스트 환경]
OS : CentOS7 64bit
DB : MariaDB 10.1.12
1. 에러 내용
- Xtrabackup을 이용해서 원격지 백업을 진행한 이후에 테이블 조회 시 CASE 1, CASE 2와 같은 에러가 발생함.
- [참고] 백업 명령어
ssh $g_ms_in innobackupex --user=$g_sp_usr --password=$g_sp_pwd --stream=xbstream ./ | ssh $g_sl_in "xbstream -x -C $DB_HOME/datadir/
MariaDB [DB명]> SELECT * FROM [테이블명];
CASE 1
ERROR 1932 (42S02): Table [테이블명] doesn't exist in engine
ERROR 1814 (HY000): Tablespace has been discarded for table [테이블명]
2. 해결 방안
전제:
- 해당 테이블의 엔진은 InnoDB 이며 ibd, frm 파일이 존재함.
- 테이블의 스키마 구조를 알아야 함.
CASE 1
- 서비스 종료 후 ibd 파일, frm 파일 백업
- 서비스 시작 후 해당 테이블 drop
- 테이블 재생성
- 테이블스페이스 변경
ALTER TABLE [테이블명] DISCARD TABLESPACE ; system cp /백업경로/[테이블명].ibd [데이터베이스 데이터 디렉토리] ALTER TABLE [테이블명] IMPORT TABLESPACE ;
CASE 2
- IMPORT TABLESPACE
ALTER TABLE [테이블명] IMPORT TABLESPACE ;
'MariaDB > Admin' 카테고리의 다른 글
[MariaDB][ADMIN] Lock wait timeout exceeded; try restarting transaction 장애 원인 및 처리 방법 (0) | 2020.05.20 |
---|---|
[MariaDB][ADMIN] Waiting for table metadata lock 장애 처리 방법 (0) | 2020.05.14 |
[MariaDB][ADMIN] show processlist - Waiting for table metadata lock (0) | 2017.03.29 |
[MariaDB][Admin]AUTO_INCREMENT를 활용한 PK구성 방법 (1) | 2017.03.23 |
[MariaDB][운영] CentOS7에서 logrodate로 로그 파일이 rotation되지 않을 경우 (0) | 2016.08.09 |