본문 바로가기

Database

MySQL DB 백업과 복구

mysql과 mariadb는 백업 및 복구 방법이 동일합니다.

백업과 복구

데이터베이스에서 백업(backup)과 복구(restore)는 매우 중요한 부분입니다.

MySQL에서는 mysqldump라는 파일을 실행하여 데이터베이스내의 데이터를 외부파일로 저장할 수 있습니다. 

mysqldump는 mysql 디렉토리 밑의 bin 디렉토리에 존재하며 아래와 같은 명령어를 통해 백업을 수행합니다.

백업 방법

mysqldump -u [user_name] -p [백업할 db_name] > [저장할 파일명]

WEB 데이터베이스를 백업하는 것을 예로 들겠습니다.

[root@localhost mysql]$ mysqldump -u root -p WEB > WEB_backup.sql

Enter password : *****

백업 확인 방법

위 명령의 실행 결과 생성된 WEB_backup.sql 파일의 내용을 확인해 보시기 바랍니다.

mysqldump 명령으로 백업된 데이터베이스는 해당 데이터베이스내에 있는 테이블의 구조를 정의한 데이터 정의문과 INSERT 문과 같은 데이터 조작문의 SQL 형태로 저장되어 있습니다.

이렇게 SQL 형태로 저장되면 아래와 같은 명령으로 쉽게 데이터를 복구할 수 있습니다.

또한 SQL은 데이터베이스의 표준언어이므로 MySQL이 아닌 다른 database server에 해당 database를 이식하려 할 때에도 호환성에 의한 문제가 거의 발생치 않는 장점이 있습니다.

백업 복구 방법

[root@www localhost]$ mysql -u root -p ***** WEB < WEB_backup.sql

기타

만약 서로 다른 머신이라면, 목적지 머신에는 mysql이라는 db가 이미 존재해 있어야 합니다. 만약 없을 경우에는

[root@localhost mysql]$ mysqladmin create mysql -p

이라는 명령을 사용해서 db를 만들어줘야 합니다.

그러나 일반적으로 MySQL을 설치하고 처음 사용할 때는 root 계정외에 다른 계정은 없습니다. 그리고 root 계정에 비밀번호가 입력되어 있지 않습니다. 만약 비밀번호가 없을 경우에는 위에서 -p 옵션은 사용하지 말아야 합니다.

정리

(1) 백업

[root@www mysql]# mysqldump -u [user_name] -p [백업할 db_name] > [저장할 파일명]

(2) 복구

[root@www mysql]# mysql [복구할 db_name] < [복구할 파일명]

'Database' 카테고리의 다른 글

mysql, mariadb root 계정 사용  (0) 2023.02.23
mysqldump를 이용해서 Table 구조만 덤프하기  (0) 2017.10.22