MySQL데이터베이스 백업 도구에는 mysql의 공식 백업 도구인 자체 mysqldump가 있습니다. 그러나 타사 백업 도구인 mydumper는 뛰어난 기능으로 인해 더 많은 사람들이 사용하고 있습니다. 다음으로 테스트를 통해 이들 간의 백업 효율성을 검증하겠습니다.
몇 개의 테이블이나 단일 라이브러리만 백업하는 경우 innobackup보다 mysqldump와 mydumper가 더 편리하지만 mydumper는 멀티 스레드 백업, 정기적인 매칭 백업, 그룹화 및 자체 테스트 및 또한 mydumper와 mysqldump는 본질적으로 동일한 내보내기 논리 데이터이며 온라인 핫 백업 innodb를 지원하지 않습니다. 물론 innobackup을 사용하여 일부 테이블 데이터를 백업할 수도 있지만 동일한 유형의 백업은 아닙니다. mydumper 및 mysqldump 메서드를 사용하므로 아래에서만 테스트하겠습니다. mydumper와 mysqldump 사이에서 사용하세요.
mydumper 내보내기
mydumper 도구를 사용하여 8개의 스레드로 테스트(9.4G) 데이터를 내보내고 아래와 같이 압축합니다. mydumper -B test --regex 'test.*' -c -e -G -E -R --use-savepoints -h 10.0.21.5 -u root -P 3301 -p xxxxxx -t 8 -o /data/mysql_bak/
/data/mysql_bak 디렉터리에는 라이브러리의 각 테이블이 테이블 정의와 데이터라는 두 개의 파일로 저장됩니다.
전체 실행 시간은 다음과 같으며, 총 123초가 걸립니다
# cat metadata Started dump at: 2017-05-19 10:48:00 SHOW MASTER STATUS: Log: mysql-bin.000406 Pos: 2165426 GTID:(null) SHOW SLAVE STATUS: Host: 10.144.127.4 Log: mysql-bin.000419 Pos: 506000361 GTID:(null) Finished dump at: 2017-05-19 10:50:03
mysqldump 내보내기
기본 mysqldump 도구를 사용하여 다음과 같이 라이브러리를 내보내고 압축합니다.
# time mysqldump -B test -E -R -h 10.0.21.5 -u root -P 3301 -p | gzip >/data/test.sql.gz Enter password: real 3m19.805s user 4m47.334s sys 0m10.395s
real 한 줄은 mysqldump의 전체 실행 시간이 199.8초임을 보여줍니다.
요약
전체적으로 데이터가 많지 않고, mysqldump와 mydumper 사이의 시간 차이가 크지 않고, 대부분의 시간이 데이터 전송 수준에서 소모됩니다. 라이브러리가 충분히 크면 mydumper의 하위 버전도 장점을 반영할 수 있습니다. 다음 오류와 같은 상위 버전의 MySQL 구문 변경으로 인해 내보내기 오류 문제가 발생합니다. 상위 버전에서는
github 공식 코드를 참조하여 해당 코드를 수정할 수 있습니다.
위 내용은 mysql에서 mydumper와 mysqldump의 비교에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!