MySQL innobackupex 백업 도구 사용 요약

머리말


MySQL 백업 및 슬레이브 데이터베이스 구축 과정에서 비교적 작은 데이터베이스에 대해 mysqldump를 주로 사용하는데 이는 간단하고 편리합니다. 그러나 대규모 데이터베이스에 슬레이브 라이브러리를 구축하고 데이터베이스 호스트에 백업 요구 사항을 충족하기에 충분한 스토리지가 없는 경우 innobackupex를 사용하여 백업을 지원해야 하며 이를 사용하여 MySQL을 구축할 수도 있습니다. 매우 간단한 슬레이브 라이브러리입니다.

1. MySQL innobackupex 백업 및 복구


1.1 xbsteam을 압축하여 백업 및 복구를 위한 압축 및 압축

  • 지원
    innobackupex --defaults-file=/usr/local/mysql/my.cnf --user=root --stream=xbstream --compress /data/backup/ > /data/backup/full.xbstream
    
  • xbstream 압축 해제
    xbstream -x < /data/backup/full.xbstream -C /data/backup_qp/
    
  • qp 압축 해제
    innobackupex --압축 해제 /data/backup_qp
    
  • qp 파일 삭제
    /data/backup -name "*.qp" 찾기 | xargs rm
    

참고: 보고서에서 qpress를 찾을 수 없는 경우 먼저 qpress를 설치해야 합니다.qpress

1.2 tar gzip을 사용한 백업 및 복원

  • 지원
    innobackupex --defaults-file=/usr/local/mysql/my.cnf --user=root --stream=tar /data/backup/ |gzip > /data/backup/full.tar.gz
    
  • 압축을 풀다
    tar -zxvf /data/backup/full.tar.gz -C /data/backup_targz
    

1.3 tar bzip을 사용한 백업 및 복원

  • 지원
    innobackupex --defaults-file=/usr/local/mysql/my.cnf --user=root --stream=tar /data/backup/ |bzip2 > /data/backup/full.tar.bz2
    
  • 압축을 풀다
    tar -jxvf /data/backup/full.tar.gz -C /data/backup_tarbz
    

각종 백업 파일의 크기는 다음과 같으며 bz2의 압축 방식이 가장 작은 것으로 나타났으나 여전히 비압축과 압축이 차지하는 공간의 차이가 크므로 압축 방식을 사용하는 것을 권장한다.

2. MySQL은 라이브러리에서 빌드됩니다.


2.1, xbsteam 방식 백업 후 수동으로 원격 호스트에 복사

참조: innobackupex를 사용하여 MySQL 슬레이브 라이브러리 구축

2.2, xbsteam 모드로 패키징하고 ssh를 통해 원격 호스트에 백업하고 압축 해제

  • 백업 수행
    innobackupex --defaults-file=/etc/my.cnf --user=root --password='root' --stream=xbstream /tmp | ssh [email protected] "/app/percona/percona-xtrabackup-2.4.3-Linux-x86_64/bin/xbstream -x -C /data/mysql/data"
    
  • innobackupex가 FLUSH NO_WRITE_TO_BINLOG ENGINE LOGS를 기다리고 있는 것을 발견하면 다른 연결을 종료할 수 있습니다.
    mysql -e "프로세스 목록 표시" | grep -v -i -e 루트 -e 아이디 | awk '{printf "kill "$1";"}' | mysql
    
  • 로그는 다음과 같습니다.
    ' 
    _ 
    _ 
    _ 6499141903477' 
    xtrabackup: 로그 복사 스레드를 중지합니다. 
    .161219 20:11:21 >> (6499141993412)까지 로그 스캔 
    
    161219 20:11:23 UNLOCK TABLES 실행 
    161219 20:11:23 모든 테이블 잠금 해제 161219 20:11:23 [00] ib_buffer_pool을 
    161219 
    20으로 스트리밍: 11 :23 [00] ...done 
    161219 20:11:23 '/tmp' 디렉토리에 백업이 생성되었습니다. d2c74  
    MySQL binlog 위치: 파일 이름 'mysql-bin.001249', 위치 '151576713', 마지막 변경의 GTID '4d814c80-9dae -11e6-9711-005056bd55e1:1-113121904,
    : 
    1-221265164 ' 
    161219 20:11:23 [00] 스트리밍 백업-my.cnf
    161219 20:11:23 [00] ...완료 
    161219 20:11:23 [00] 스트리밍 xtrabackup_info 
    161219 20:11:23 [00] ...완료 
    xtrabackup: 트랜잭션 로그 lsn(6498376046758)에서 (6499141993412)로 복사되었습니다. 
    161219 20:11:24 완료 OK!
    
  • 대기 데이터베이스에 redo 적용
    innobackupex --apply-log .

참고: 찾을 수 없는 경우 절대 경로를 지정 하거나 SSH 서버가 사용자 지정 환경 변수-winter.zhang-ChinaUnix 블로그를 사용할 수 있도록xbsream ssh의 환경 변수를 구성해야 합니다.

2.3 xbsteam 모드(qpress)에서 압축 및 압축하여 ssh를 통해 원격 호스트로 백업하고 압축 해제

  • 백업 수행
    innobackupex --defaults-file=/etc/my.cnf --user=root --password='root' --stream=xbstream --compress /tmp | ssh [email protected] "/app/percona/percona-xtrabackup-2.4.3-Linux-x86_64/bin/xbstream -x -C /data/mysql/data"
    
  • 압축 해제
    xtrabackup 버전이 2.1.4보다 크면 이 방법으로 직접 압축 해제할 수 있습니다.

    innobackupex --decompress /backup/bk_compress
    
  • 대기 데이터베이스에 redo 적용

    innobackupex --apply-log .
    

추천

출처blog.csdn.net/eagle89/article/details/130250681