어떠한 원인에 의해 잘 실행되던 DB 서버가 혹여나 날아가 버릴 수도 있기 때문에, 주기적으로 데이터베이스를 백업해주는 것은 중요합니다. 오늘은 MariaDB, MySQL 데이터베이스를 백업하고 복구하는 방법에 대해 정리해보도록 하겠습니다.
백업
1. 전체 데이터베이스 백업
우선 DB 서버내 존재하는 모든 데이터베이스를 백업하고자 하면 터미널에서 다음과 같이 명령해주면 됩니다.
mysqldump -u[아이디] -p[패스워드] --all-databases > [백업파일명].sql
ex) mysqldump -ukyohoonsim -p1234 --all-databases > backup_all_db.sql
만약 "원격" 데이터베이스를 백업하려면 호스트 정보도 추가해줘야 합니다.
mysqldump -h[호스트] -u[아이디] -p[패스워드] --all-databases > [백업파일명].sql
ex) mysqldump -h 43.***.***.*** -u kyohoonsim -p -all-databases > backup_all_db.sql
2. 하나의 데이터베이스 백업
여러 데이터베이스 중에서 하나의 데이터베이스만 백업하고 싶다면 다음과 같이 명령해주면 됩니다.
mysqldump -u[아이디] -p[패스워드] [데이터베이스명] > [백업파일명].sql
ex) mysqldump -ukyohoonsim -p1234 test_db > backup_test_db.sql
복구
백업해놓은 sql 파일을 이용해서 다시금 데이터베이스를 복구시킬 수 있습니다.
1. 전체 데이터베이스 복구
mysql -u[아이디] -p[패스워드] < [백업파일명].sql
ex) mysql -ukyohoonsim -p1234 < backup_all_db.sql
백업할 때와 꺽쇠의 방향이 반대이니 주의하세요. 그리고 명령 시작이 mysqldump가 아니라 mysql이라는 것에 당황하지 마세요.
2. 하나의 데이터베이스 복구
mysql -u[아이디] -p[패스워드] [데이터베이스명] < [백업파일명].sql
ex) mysql -ukyohoonsim -p1234 test_db < backup_test_db.sql
(이 글은 2023-05-11에 마지막으로 수정되었습니다)
참고자료
'DB > SQL' 카테고리의 다른 글
[sqlite3] JOIN으로 서로 다른 테이블의 컬럼들 붙이기(내부 조인, 외부 조인) (0) | 2021.03.19 |
---|---|
[sqlite3] 정수를 정수로 나눴을 때 소수점 이하도 출력되게 하려면 (0) | 2021.03.16 |
[MariaDB] LIKE를 사용하여 특정 문자열 검색하기 (0) | 2021.01.13 |
[MariaDB] GROUP BY 사용 예제(+ HAVING) (0) | 2021.01.12 |
[MariaDB] 컬럼 순서 변경하기 (6) | 2020.12.26 |
[MariaDB] 테이블 이름 변경하기 (0) | 2020.12.25 |
[MariaDB] 사용자에게 모든 권한 또는 CRUD 권한 부여하기 (0) | 2020.12.25 |
[MySQL/MariaDB] 사용자 추가하는 방법 (0) | 2020.12.24 |