[IT 알아보기]

[EhostICT] mydumper : mysql 오픈소스 thread 백업 유틸리티

이호스트ICT 2018. 7. 26. 11:58

mydumper

1. 소개 :  mysql thread dump 오픈소스 유틸리티

 

2. 정식 사이트

    https://launchpad.net/mydumper

 

 3. 사용법 및 소개 사이트

    https://www.percona.com/blog/2015/11/12/logical-mysql-backup-tool-mydumper-0-9-1-now-available/

 

4. 설치

a. centos 설치

    https://twindb.com/mydumper-rpm-for-centosrhel/

# yum install https://twindb.com/twindb-release-latest.noarch.rpm

# yum install mydumper

b. ubuntu 설치 

apt install mydumper

 

5. backup 및 옵션

 #   mydumper -u root -p 패스워드 -k -c -o /opt/dump/
백업 옵션
    --threads=6  default threads 는 4, 동시에 몇개의 table 을 백업/복구할 것인지에 대한 부분
                           -t cpu-core 로 셋팅시 최대 속도
    -v, --verbose  Verbosity of output, 0 = silent, 1 = errors, 2 = warnings, 3 = info, default 2
     -L                    로그 저장  -L /경로/파일명
     -k                    no-lock
     -c                    compress

     -o                   저장 폴더 지정
 
추가옵션
-d, --no-data Do not dump table data
-G, --triggers Dump triggers
-E, --events Dump events
-R, --routines Dump stored procedures and functions
 
triggers, evnets, procedures, functions 전체 백업시
mydumper -u root -p 패스워드 -G -E -R -k -c -o  /opt/mysqlbackup/
 
 6. 백업 결과
 root@control:/opt# mydumper -u root -p 패스워드 -v 3 -G -E -R -k -c -o  /opt/mysqlbackup/
** Message: Connected to a MySQL server

** (mydumper:27305): WARNING **: Executing in no-locks mode, snapshot will notbe consistent
** Message: Started dump at: 2018-07-19 23:48:34

** Message: Multisource slave detected.
** Message: Thread 1 connected using MySQL connection ID 10196
** Message: Thread 2 connected using MySQL connection ID 10197
** Message: Thread 3 connected using MySQL connection ID 10198
** Message: Thread 4 connected using MySQL connection ID 10199
** Message: Thread 1 dumping data for `mysql`.`column_stats`
** Message: Thread 4 dumping data for `mysql`.`columns_priv`
** Message: Thread 3 dumping data for `mysql`.`db`
** Message: Thread 2 dumping data for `mysql`.`event`
** Message: Empty table mysql.event
** Message: Thread 2 dumping data for `mysql`.`func`
** Message: Empty table mysql.func
** Message: Thread 2 dumping data for `mysql`.`help_category`
** Message: Empty table mysql.column_stats
** Message: Empty table mysql.columns_priv
** Message: Thread 1 dumping data for `mysql`.`help_keyword`
** Message: Thread 4 dumping data for `mysql`.`help_relation`
** Message: Thread 3 dumping data for `mysql`.`help_topic`
** Message: Thread 2 dumping data for `mysql`.`host`
** Message: Thread 1 dumping data for `mysql`.`index_stats`
** Message: Thread 4 dumping data for `mysql`.`plugin`
** Message: Empty table mysql.index_stats
** Message: Empty table mysql.host
** Message: Empty table mysql.plugin
 
 
  실제 백업 결과물 
       테이블별로 schema 데이터와 실제데이터 2개의 파일로 압축 생성 
-rw-r--r--  1 root root    191 Jul 20 04:18 glance.alembic_version-schema.sql.gz
-rw-r--r--  1 root root    161 Jul 20 04:18 glance.alembic_version.sql.gz
-rw-r--r--  1 root root    357 Jul 20 04:18 glance.image_locations-schema.sql.gz
-rw-r--r--  1 root root    241 Jul 20 04:18 glance.image_locations.sql.gz
-rw-r--r--  1 root root    385 Jul 20 04:18 glance.image_members-schema.sql.gz
-rw-r--r--  1 root root    352 Jul 20 04:18 glance.image_properties-schema.sql.gz
-rw-r--r--  1 root root    443 Jul 20 04:18 glance.images-schema.sql.gz
-rw-r--r--  1 root root    286 Jul 20 04:18 glance.images.sql.gz
-rw-r--r--  1 root root    324 Jul 20 04:18 glance.image_tags-schema.sql.gz
-rw-r--r--  1 root root    337 Jul 20 04:18 glance.metadef_namespace_resource_types-schema.sql.gz
-rw-r--r--  1 root root    336 Jul 20 04:18 glance.metadef_namespaces-schema.sql.gz
-rw-r--r--  1 root root    356 Jul 20 04:18 glance.metadef_objects-schema.sql.gz
-rw-r--r--  1 root root    339 Jul 20 04:18 glance.metadef_properties-schema.sql.gz
-rw-r--r--  1 root root    276 Jul 20 04:18 glance.metadef_resource_types-schema.sql.gz
-rw-r--r--  1 root root    318 Jul 20 04:18 glance.metadef_tags-schema.sql.gz
-rw-r--r--  1 root root    214 Jul 20 04:18 glance.migrate_version-schema.sql.gz
-rw-r--r--  1 root root    214 Jul 20 04:18 glance.migrate_version.sql.gz
-rw-r--r--  1 root root     85 Jul 20 04:18 glance-schema-create.sql.gz
-rw-r--r--  1 root root    247 Jul 20 04:18 glance.task_info-schema.sql.gz
 
 7. 복구 command
myloader -u root -p 패스워드 -o -d /opt/dump/
 
8. 기타 사항
 # cpu core 수 만큼 thread 설정시 백업 및 복구시 mysqldump 대비 1/4 이하의 시간  
 # mysqldump 기준 10G 이상의 디비를 백업 및 복구를 빨리 하고자 할 경우 사용
 # innodb 에서 최적의 효율