본문 바로가기

Back-End 공부/Database

[Database] DB Dump로 백업, 복구하기

📌 DB Dump

데이터베이스의 구조와 데이터를 SQL 형식으로 추출하는 데 사용되는 방식을 Dump라 함. 주로 특정 DB에서 다른 DB로 데이터와 DB구조를 이전, 복사, 백업 할때 사용

  • 데이터베이스 dump
    • mysqldump -u [username] -p --default-character-set=utf8mb4 [database_name] > dumpfile.sql
    • mariaDB에서도 mysql명령어를 사용함에 유의
    • ex) mysqldump -u root -p --default-character-set=utf8mb4 board > dumpfile.sql
  • dump파일 복원
    • mysql -u [new_username] -p[new_password] [new_database_name] < dumpfile.sql
  • mariaDB가 mysql의 fork였던 관계로, mysql관련 명령어 사용됨에 유의

출발지 : Window - DB의 Dump 파일 생성

목적지 : Linux - mariadb에서 파일 다운로드

 

 

💻 DB Dump 실습
윈도우
- 구축된 database를 sql 파일화하고 전체 DB 다시 생성
- 쿼리문 생성 후 db 삭제 및 쿼리문 실행

 

1. Dump 파일 만들기

$ cd project/

 

$ mysqldump -u root -p --default-character-set=utf8mb4 board > dumpfile.sql
Enter password: ****

 

$ ls
dumpfile.sql

 

 

 

 

 

 

2. DB 삭제

DROP database board;

 

3. Dump 파일을 복원할 DB 생성

CREATE database board;

 

4. DB 복원

cd project

mysql -u root -p board < dumpfile.sql

 

-> 프로시저는 Dump되지 않았음 !

-> 아래 옵션을 통해 프로시저, 함수, 트리거 포함하여 Dump 하기

mysqldump --routines --trigger -uroot -pxxx [DATABASE] > [DATABASE].sql

 

 

 

https://kogun82.tistory.com/115

 

MySQL 데이터베이스에서 mysqldump 명령어를 이용한 procedure, function, trigger 포함 백업 및 복구 방법

1. 데이터베이스 백업하기 1-1) procedure, function, trigger 포함한 백업하기(옵션 --routines --trigger) $ mysqldump --routines --trigger -u유저이름 -p패스워드 DB명 > 백업파일 명령어 예제). $ mysqldump --routines --trigger

kogun82.tistory.com

 

 

 

💻 DB Dump 실습
리눅스
- Linux에 DB구축 (mariadb설치 및 DB생성)
- github에서 소스코드 clone
- 해당 폴더로 이동하여 덤프 복원 명령어 실행
- mysql -u [username] -p [database_name] < dumpfile.sql

 

1. DB 설치

sudo apt update

sudo apt install mariadb-server

 

2. DB 생성

sudo mysql -u root

create database board;

 

3. git clone

cd

mkdir dump

cd dump

git clone https://github.com/yujeong-shin/mariadb_syntax.git

 

4. 해당 폴더로 이동하여 덤프 복원 명령어 실행

cd mariadb_syntax/

cd project/

mysql -u root -p board < dumpfile.sql

 

5. DB 조회

user board;

select