mysqldump를 사용하여 500GB 데이터베이스의 빠른 백업 및 복원을 늘리는 방법은 무엇입니까? 모두 포함됩니다. MyISAM 테이블은 마스터 테이블이고 Innodb

데이터베이스 크기는 500GB입니다. 데이터베이스 A의 테이블에는 MyISAM 및 INNODB 테이블이 모두 포함됩니다. MyISAM 테이블은 마스터 테이블이고 Innodb 테이블은 기본 트랜잭션 테이블입니다.

mysql 덤프를 사용한 백업 및 복원 시간이 오래 걸리거나 며칠이 걸립니다.

  • max_allowed_packet = 1G
  • foreign_key_checks = 0
  • auto_commit = 해제


답변

그러나이 링크는 또한 Percona의 XtraBackup을 권장합니다. Percona는 이미 사용중인 테이블을 잠그지 않고 복원 할 시간이없는 빠른 속도입니다. 500GB의 데이터의 경우 기존 DB 서버가 아닌 경우 innodb_file_per_table 모델로 변환하지 않는 한 Percona XtraBackup을 빠르고 효율적으로 선호합니다. 아래 링크는 진행 방법을 설명합니다.

http://www.percona.com/doc/percona-xtrabackup/innobackupex/creating_a_backup_ibk.html


답변

mydumper를 확인하십시오. mysqldump보다 훨씬 빠릅니다. 새로운 mydumper 0.6.1 릴리스는 성능과 유용성 기능을 제공합니다

https://github.com/maxbube/mydumper 에서 다운로드 할 수 있습니다.

MyDumper 란 무엇입니까? 왜?

  • 병렬 처리 (따라서 속도) 및 성능 (고가의 문자 세트 변환 루틴을 피하고 전체적으로 효율적인 코드)
  • 손쉬운 출력 관리 (테이블 용 별도 파일, 메타 데이터 덤프 등, 데이터보기 / 파싱 용이)
  • 일관성-모든 스레드에서 스냅 샷을 유지하고 정확한 마스터 및 슬레이브 로그 위치 등을 제공합니다.
  • 관리 효율성-데이터베이스 및 테이블 포함 및 제외를 지정하기위한 PCRE 지원

답변

문제는 다른 백업 솔루션이 아닌 mysqldump의 중단 된 덤프 파일에서 더 빨리 복원하는 방법에 관한 것입니다.

이를 수행 할 수있는 방법 중 하나는 스키마에서 테이블 그룹을 작성하고 각 그룹에 대해 별도의 DB 사용자를 작성하고 MySQL 권한을 사용하여 한 명의 DB 사용자를 제외한 모든 사용자에게 테이블을 삽입 할 수 없도록하는 것입니다.

이것은 입증 된 빠르고 거의 평행 한 기술이지만 500G에서 복원하는 데 걸리는 시간은 100 % 확실하지 않습니다. 그러나 imho, 당신은 평행 한 것이 필요합니다. 예를 보려면 아래 링크를 참조하십시오.

MySQL 용 SQL 덤프 (mysqldump)에서 빠른 병렬 복원


답변

innobackupex로 다음을 시도하십시오.

innobackupex --parallel=7 --rsync  /var/mysql/backup

병렬 프로세스 번호를 원하는대로 변경할 수 있습니다. myisam 테이블이 있다고 언급 했으므로 “rsync”매개 변수는 백업 속도를 높이는 데 도움이됩니다.


답변