原本能够一篇写完,结果因为不可抗因素(笔记本没电了╮(╯▽╰)╭),致使分为了上下两篇。mysql
mariadb 10.2.15要使用最新的2.4.11版本(这里版本必定要选择好,不然会没法备份文后会附加下载连接)sql
1.安装percona-xtrabackup数据库
yum localinstall percona-xtrabackup-24-2.4.11-1.el7.x86_64.rpm -y
2.彻底备份(先导入了一个自建的hellodb做为测试数据)app
# innobackupex (--user=root) /backup/默认就是以root用户去备份,这里省略了 innobackupex /backup/
3.删除数据模拟损坏ide
rm -rf /data/mysql/*
4.整理日志信息测试
innobackupex --apply-log /backup/2018-06-15_22-12-06/
5.中止数据库spa
systemctl stop mariadb
6.恢复数据到目录并修改权限3d
innobackupex --copy-back /backup/2018-06-15_22-12-06/ chown -R mysql:mysql /data/mysql/
7.启动mariadb,验证是否成功日志
systemctl start mariadb
1.要实现增量备份也是要在彻底备份的基础上实现code
innobackupex /backup/
原始数据库状态
2.为了看起来明了简单这里作3次增量备份,而且设置对应的目录存放,生产中也能够作相似分类,这样可使得备份目录看起来简单明了。
mkdir /backup/inc{1,2,3}
3.模拟修改数据库而且每次修改后都作一次增量备份
#第一次修改数据库 mysql >create database db1; #作增量备份 innobackupex --incremental /backup/inc1/ --incremental-basedir=/backup/2018-06-16_09-53-14 #第二次修改 mysql >create database db2; #作增量备份 innobackupex --incremental /backup/inc2/ --incremental-basedir=/backup/inc1/2018-06-16_09-55-34 #作第三次修改(这里导入一个有数据的数据库) mysql <hellodb_innodb.sql #作增量备份 innobackupex --incremental /backup/inc3/ --incremental-basedir=/backup/inc2/2018-06-16_09-57-57
下图是最后的数据库信息
4.模拟损坏数据
rm -rf /data/mysql/* ls /data/mysql/
5.中止数据库并准备恢复数据
#整合增量备份 innobackupex --apply-log --redo-only /backup/2018-06-16_09-53-14/ innobackupex --apply-log --redo-only /backup/2018-06-16_09-53-14/ --incremental-dir=/backup/inc1/2018-06-16_09-55-34 innobackupex --apply-log --redo-only /backup/2018-06-16_09-53-14/ --incremental-dir=/backup/inc2/2018-06-16_09-57-57 innobackupex --apply-log --redo-only /backup/2018-06-16_09-53-14/ --incremental-dir=/backup/inc3/2018-06-16_09-59-48 #关闭数据库,若是是新机器数据没启动就不用关闭,可是新环境记得要修改数据库配置文件与原相同 systemctl stop mariadb #查看数据目录是否为空,并导入数据 ls /data/mysql/ innobackupex --copy-back /backup/2018-06-16_09-53-14/ #修改权限 chown -R mysql:mysql /data/ #启动数据库 systemctl start mariadb
6.登录数据库并检查,数据彻底恢复
清除以前是备份
1.备份单表
innobackupex --include="hellodb.stdents" /backup/ #导出建表过程,而且删除无用的字段 mysql -e 'show create table hellodb.students' > students.sql
2.模拟表损坏或者被删除
mysql -e 'drop table hellodb.students'
3.恢复数据
# 整理数据 innobackupex --apply-log --export /backup/2018-06-16_10-21-54/ #恢复表结构 mysql hellodb < students.sql #删除表空间 mysql -e 'alter table hellodb.students discard tablespace' #恢复文件(在备份目录里) cp students.cfg students.exp students.ibd /data/mysql/hellodb/ #修改权限 chown -R mysql:mysql /data/mysql/hellodb/* #导入表空间 mysql -e 'alter table hellodb.students import tablespace'
4.验证是否恢复
xtrabackup下载地址
https://www.percona.com/downloads/XtraBackup/LATEST/
使用的hellodb.sql文件地址
https://pan.baidu.com/s/1uI3Br-HJ8t5-C-_bfZenPg