본문 바로가기
다른 DBMS/MySQL&MariaDB

Full Backup본으로 테이블 복구 스크립트 만들어서 복구

by 취미툰 2023. 6. 21.
반응형

Mysql은 mysqldump로 백업받을 시 스크립트 형태로 백업이 받게 됩니다.

 

mysqldump의 다양한 옵션이 있어서 fullbackup,스키마만 백업, 테이블만 백업등을 설정해서 백업을 받을 수 있는데요.

저는 fullbackup을 일정시간마다 돌게 설정해서 관리하고 있습니다.

특정 테이블만 복구해달라는 요청이 있어서, full backup본을 그대로 복구할 시 다른 것들도 모두 복구가 되기 때문에 full backup본을 기반으로 테이블 복구 스크립트를 만드는 법을 정리합니다.

 

 

##

장애상황 확인

mysql> select count(*) from data_source;
ERROR 1146 (42S02): Table 'grafana.data_source' doesn't exist

##

스크립트 만들기.

fulldump를 기반으로 table하나만 복구하는 스크립트를 sed 명령어를 통해 추출합니다.

sed -n -e '/Table structure for table `[복구 테이블명]`/,/UNLOCK TABLES/p' [FULLBACKUP 파일] > [테이블 복구 파일]

sed -n -e '/Table structure for table `data_source`/,/UNLOCK TABLES/p' mysqldump_2306192200 > data_source_230621.sql

 

##복구 명령어

mysql -u root -p grafana < /db/backup/data_source_230621.sql

 

##확인

mysql> select count(*) from data_source;
+----------+
| count(*) |
+----------+
|       24 |
+----------+
1 row in set (0.00 sec)
반응형

댓글