mysqldump 백업파일에서 복구 시 특정 테이블만 추출해 복구하기


MySQL 혹은 mariaDB 의 DB 백업시 mysqldump 를 애용하고 있는데요.

백업 자료량이 너무 많아서 빠르게 특정 테이블만 복구하고 싶을 때 참 아쉬웠는데요. 좋은 방법을 찾아서 적어봅니다.

1. 데이터베이스 전체 백업

> mysqldump -u아이디 -p비밀번호 데이터베이스이름 > backup.sql

2. 데이터베이스내 특정 테이블만 백업

> mysqldump -u아이디 -p비밀번호 데이터베이스이름 테이블이름 > 테이블이름.sql

3. 데이터베이스 전체 복원

> mysql -u아이디 -p비밀번호 데이터베이스이름 < backup.sql

4. 데이터베이스 백업파일에서 특정 테이블만 추출하기

sed -n -e '/DROP TABLE.*테이블이름/,/UNLOCK TABLES/p' 데이터베이스이름 > 테이블이름.sql

위 한글로 테이블이름 부분을 추출하고자 하는 테이블이름으로 치환하면 됩니다.

참고자료 : https://tipland.tistory.com/85