타사 도구를 사용하여 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;