MySQL의 시리즈 ------- 백업 및 MySQL의를 복원 -percona 타사 도구를 사용

타사 도구를 사용하여 MySQL의 백업 ----- percona

첫째, 준비 작업 :

1, 설치 종속성 : 냠 펄 다이제스트-MD5 펄-DBD-MySQL을 설치 -y

    rpm -ivh libev-4.15-1.el6.rf.x86_64.rpm

2 주 패키지 설치 : percona-xtrabackup-24-2.4.7-1.el7.x86_64.rpm

  percona是一款在线热备工具

3 개의 구성 요소를 포함한다 :

       /usr/bin/xtrabackup     :支持innodb和xtraDB(增量备份)

      /usr/bin/innobackupex   :支持innodb和myisam(只支持全备,不支持增量)

4 innobackupex는 옵션을 포함

  --user                  用户名     

  --password          密码  

  --databases         库名

  --no-timestamp          不使用系统日期做备份目录的子目录名

  --apply-log                 恢复日志

  --copy-back               恢复数据

둘째, 전체 백업과 전체 복구

1, 전체 백업

     innobackupex --user root --password 123456 --database="mysql db66 performance sys"

     --no-timestamp   /allbak   //指定备份三个数据库,生成的备份文件目录不用系统时间做目录名

2, 데이터 복구, 데이터베이스 디렉토리가 비어 라이브러리는 세 가지 시스템에 백업해야합니다

首先恢复日志:innobackupex --user root --password 123456 --apply-log  /allbak

删除数据库目录:   rm    -rf      /var/lib/mysql

创建数据库目录:   mkdir /var/lib/mysql

恢复数据:innobackupex --user root --password  123456  --copy-back  /allbak/

赋予数据目录权限:chown -R mysql:mysql /var/lib/mysql

  重启服务,验证:systemctl restart mysqld

셋째, 증분 백업 및 증분 복구

1, 증분 백업하기 전에 먼저 전체 백업을 수행합니다.

innobackupex --user root --password 123456

--databases = "performance_schema SYS mysql을 db666"

--no-timestamp  /onebak

2, 제 증분 백업

innobackupex --user root --password 123456     //指定用户名密码

--databases="performance_schema sys mysql db666" //指定需要备份的数据库

--incremental /new1                //指定增量备份的路径

--incremental-basedir=/onebak   //指定以哪个备份来做为增量备份的参考

--no-timestamp

3 번째 증가 백업

innobackupex --user 루트 123456 --password

--databases="performance_schema sys mysql db666"

--incremental /new2     //第二次增量备份的路径

--incremental-basedir=/new1   //以上次增量备份做为参考来做增量备份

--no-timestamp

4, 증분 복구 파일 디렉토리 설명

LSN의 xtrabackup_checkpoints xtrabackup_logfile //이 두 파일을 수정 레코드 번호

5, 복구 단계

A, 디렉토리에 데이터 파일을 삭제 : RF RM은은 / var / lib 디렉토리 / mysql을 / *

B는 전체 백업 로그 로그를 복원 ---

 innobackupex --user root --password 123456

--databases="performance_schema sys mysql db666"

--apply-log --redo-only   //恢复日志,并合并日志

/onebak --no-timestamp

C는 먼저 증분 백업을 복원 (만 로그를 복원해야하는 로그는 병합 할 수 있습니다)

 innobackupex --user root --password 123456

--databases="performance_schema sys mysql db666"

--apply-log --redo-only /onebak  //源日志路径

--incremental-dir=/new1 --no-timestamp   //需合并的日志文件的路径

D는 제 2 시간 증분 백업을 복구 할

innobackupex --user 루트 123456 --password

--databases = "performance_schema SYS mysql을 db666"

경로 --redo 전용 / onebak // 소스 로그 파일을 --apply 로그

제 증분 백업 로그 병합 // --incremental-DIR = / new2 --no-소인

증분 백업의 내용이 내부의 모든 장비에 통합 되었기 때문에 E는, 데이터를 복구, 단지 내부의 전체 백업을 복원

innobackupex --user root --password 123456  --copy-back  /onebak

F, 데이터 디렉토리 권한에 서비스 검증을 다시 시작합니다

chown    -R     mysql:mysql    /var/lib/mysql

systemctl     restart      mysqld

넷째, 하나의 테이블에 전체 백업 데이터를 복원

1, 수출 // 수입 // 수출 테이블 가져 오기 테이블 공간 정보

   删除表空间:alter  table 表    discard  tablespace;

2, 하나의 데이터베이스 백업 :

   innobackupex --user root --password 123456 

   --databases="mydb" --no-timestamp /mydb  //只备份一个数据库

3, 테이블 필드는 이전과 동일해야합니다 (테이블을 만들고, 테이블을 삭제하고 시뮬레이션 표가 손실됩니다

drop table t1;       create table t1(id int);

4, 수출 테이블 정보 : 매개 변수가 --export 사용

innobackupex --user 루트 / db66을 --export --apply 로그 123456 --databases = "db66을"--password

5, 테이블 스페이스를 삭제한다 : mysql 명령 줄 작업을

 alter table db66.t1 discard tablespace;

6 백업 디렉토리 정보 테이블의 수출은 데이터베이스 디렉토리에 복사하고 권한을 부여하는

CP의 /db66/db66/t1.{cfg,exp,ibd}은 / var / lib 디렉토리 / mysql을 / db66 /

대한 Chown mysql을 /var/lib/mysql/db66/t1.*

7 가져 오기 테이블 공간

수입 테이블 db66.t1 테이블을 변경;

8 검증 : db66.t1 SELECT * FROM;

추천

출처blog.51cto.com/14421632/2415070