mysqldump
- mysql or mariadb 설치시 기본적으로 제공 되는 backup util
- xtrabackup과는 다르게, 엔진 종류에 상관 없이 논리적인 백업을 제공한다.
( => 논리적인 백업은 백업 자체가 파일로 복사 되는 물리적인 방식이 아닌 백업 진행시 SQL문이 아래 그림과 집합 형태로 구성 되어 있음)
- 논리적인 백업 이기때문에 물리적인 백업에 비하여 시간이 오래 걸리지만, 사용자가 직관적으로 백업 파일을 확인 하여 처리 할 수 있어 백업 파일에 대하여
, 직접 수정, 삭제가 가능 하다.
- 대용량의 innodb 엔진을 사용 한다면 xtrabackup 혹은 mysql 엔터프라이즈 백업 유틸을 통하여 백업을 관리 하는 것이 용이 하다.
( 백업에 대한 시간, 복구 시간 등 으로 인하여 )
- 백업 결과를 SQL 파일 형식 외에 json, xml , txt 등의 형식으로 저장 가능 하다.
- mysql 설치시 아래와 같이 바이너리 파일 형태로 자동으로 추가 된다.
[root@node201 ~]# ls -al /usr/local/mariadb/bin/mysqldump
-rwxr-xr-x. 1 root mysql 6220769 5월 15 05:56 /usr/local/mariadb/bin/mysqldump
mysqldump백업
- 전체 데이터베이스 백업
[root@node201 ~]# mysqldump --all-databases -uroot -p > all_backup.sql
- 특정 데이터베이스 백업
[root@node201 ~]# mysqldump --databases [DB명] -uroot -p > db_backup.sql
- 특정 테이블 백업
[root@node201 ~]# mysqldump -table [table 명] -uroot -p > table_backup.sql
mysqldump복구
- 리다이렉션 을 이용 하여 아래와 같이 sql 파일을 DB에 직접 전달 복구 할 수 있다.
[root@node201 ~]# mysql -uroot -p < all_backup.sql
Enter password:
- mysql shell 에 접속 하여 source 명령어를 통하여 복구가 가능 하다.
MariaDB [(none)]> source /root/all_backup.sql
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.01 sec)
... 생략
mysqldump 백업 파일 구조
- 위에 설명 한것 처럼 mysqldump 는 논리적 백업으로 해당 데이터베이스의 SQL문 등 논리적으로 사용자가 해당 정보를 직관적으로 볼 수 있는 구조로 되어 있다.
- vi,nano 를 이용하여 파일을 열면 아래와 같이 확인 할 수 있다.
- 가장 먼저 아래와 같이 DB를 생성 하기전 실행 되는 세션 레벨의 시스템 변수를 SET을 통하여 선언 한다.
- 사용자자 database 를 만드는 것 처럼 database 객체를 생성 한다.
- 생성한뒤 dummy 라는 db 를 사용 하여 dummy 라는 테이블을 DROP후 새로 생성 한다.
- DB와 table 을 생성후 백업 데이터에 대한 무결성을 위하여 table 을 lock 한다.
(lock 되지 않을 경우 실제 복구 중 새로운 데이터가 들어 온다면 무결성이 깨진다.)
- lock 이 된 상태에서 실제 insert 를 통하여 데이터를 삽입 한다.
- 데이터에 대한 삽입이 끝나면 lock 을 해제 한다.
반응형
'database > mysql' 카테고리의 다른 글
pt-table-checksum,sync 를 통한 mysql replication sync 체크 및 조절 (1) | 2016.06.05 |
---|---|
Mysql 5.7 replication (Master-Slave) on Centos7 (0) | 2016.06.04 |
centos7 mysql 5.6 install (0) | 2016.06.04 |
XtraBackup install ,full backup (0) | 2016.05.14 |
FreeTDS 를 이용한 php mssql (WhatsUp 데이터 가져오기) (0) | 2016.02.10 |