그러냐

MySQL 특정 DB 덤프 및 복구 본문

mysql

MySQL 특정 DB 덤프 및 복구

관절분리 2021. 7. 28. 14:52
반응형

리눅스 MySQL 특정 DB 덤프


테스트 환경

CentOS release 6.5 (Final)

MySQL 5.1.73

 

특정 DB 덤프 백업하기

테스트를 위해 DB에 접속하여 아래의 명령어로 testdb01 DB를  생성합니다.

> create database 생성할DB명;

 

 

추가로 앞서 생성하였던 DB에 아래의 명령어로 테이블 생성 및 확인을 합니다.

> create table 테이블명(컬럼명1 데이터타입, 컬럼명2, 데이터타입);

> show tables;

 

 

백업 명령어

특정 DB 덤프 백업 명령어는 아래와 같이 입력하시면 됩니다.

# mysqldump -u 계정 -p패스워드 DB명 > /디렉토리/파일명.sql

(p 옆에 패스워드 미입력 시 아래 사진과 같이 Enter password 에 패스워드를 입력해 줘야 파일이 생성되니다.) 

 

특정 DB 덤프 복원 하기

특정 DB만 복원되는지 테스트를 위해 처음에 생성해두었던 testdb01 DB의 전체 테이블을 아래에 명령어의 DB명 부분만 삭제할 테이블의 DB명으로 수정한 후 삭제합니다.

마지막 줄의 명령어로 삭제가 정상적으로 된 것을 확인할 수 있습니다.

> SET @tables = NULL;

> SELECT GROUP_CONCAT(table_schema, '.', table_name) INTO @tables

>    FROM information_schema.tables 

>    WHERE table_schema = 'DB명';

> SET @tables = CONCAT('DROP TABLE ', @tables);

> PREPARE stmt FROM @tables;

> EXECUTE stmt;

> DEALLOCATE PREPARE stmt;

> show  tables;

 

 

복원 명령어

특정 DB 복원 명령어는 아래와 같이 입력하시면 됩니다.

# mysql -u 계정 -p DB명 < /디렉토리/파일명.sql

(아래의 사진에서 디렉토리를 따로 입력하지 않은 건 덤프 파일이 /data 디렉토리에 있기 때문입니다.)

 

테스트

복원을 마치면 DB 접속하여 아래의 명령어로 DB 의 테이블을 조회해보면 정상적으로 복원이 된 것을 확인할 수 있습니다.

 

출처 : https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=ncloud24&logNo=221550416774

반응형