mysql 데이터베이스 백업시 mysqldump를 이용합니다. 개발자들이 사용하는 Workbench나 HeidiSQL 같은 툴에서 백업하는것 역시 mysqldump를 실행하는 것입니다.
전체 데이터베이스를 한 sql파일에 백업하는 것이 가장 간단하지만, 서버 용량 문제로 분할백업을 진행해야하는 경우가 생깁니다. 분할백업 진행 전 테이블별 용량 확인도 가능합니다.
SELECT
table_name,
table_rows,
round(data_length/(1024*1024), 2) as 'DATA_SIZE(MB)',
round(index_length/(1024*1024), 2) as 'INDEX_SIZE(MB)'
FROM information_schema.TABLES
where table_schema = 'databasename'
GROUP BY table_name
ORDER BY data_length DESC
LIMIT 10;
아래 명령어를 통해 특정 테이블 백업이 가능합니다.
mysqldump -u root -p databasename tablename > tablename.sql
아래 명령어를 통해 데이터 structrue 백업이 가능합니다.
mysqldump -u root -p database --no-data > data_structure.sql
특정 테이블 백업시, 반복작업이 많아 아래와 같은 쉘스크립트를 만들어 테이블백업 자동화하였습니다.
#!/bin/bash
table=$1
mysqldump -u root -p databasename $table > $table.sql
'데이터베이스(DA, AA, TA) > MySQL' 카테고리의 다른 글
[MySQL] 프로시저(스토어드 프로그램)의 장단점 (0) | 2017.04.25 |
---|---|
[MySQL] MySQL 파티션 제약사항 (0) | 2017.04.25 |
[Real MySQL] MySQL 파티션 개요 (3) | 2017.04.21 |
[MySQL] SELECT 결과물을 파일로 저장하기. (0) | 2017.04.05 |
[데이터베이스] 개발자와 DBA를 위한 Real MySQL (0) | 2017.01.02 |