XtraBackup
https://www.percona.com/downloads/XtraBackup/LATEST/
常用备份参数
--user= #指定数据库备份用户
--password= #指定数据库备份用户密码
--port= #指定数据库端口
--host= #指定备份主机
--socket= #指定socket文件路径
--databases= #备份指定数据库,多个空格隔开,如--databases="dbname1 dbname2",不加备份所有库
--defaults-file= #指定my.cnf配置文件
--apply-log #日志回滚
--incremental= #增量备份,后跟增量备份路径
--incremental-basedir= #增量备份,指上次增量备份路径
--redo-only #合并全备和增量备份数据文件
--copy-back #将备份数据复制到数据库,数据库目录要为空
--no-timestamp #生成备份文件不以时间戳为目录名
--stream= #指定流的格式做备份,--stream=tar,将备份文件归档
--remote-host=user@ip DST_DIR #备份到远程主机
//全量备份
innobackupex --defaults-file=/etc/my.cnf --user=root --password='123456' --no-timestamp /data/backup/full
不加时间戳备份
innobackupex --user=root --password='123456' --no-timestamp /data/backup/`date +%Y-%m-%d`
//全量恢复
#(1) 对数据进行准备工作
innobackupex --apply-log /data/backup/full/
#(2) 完成准备工作后,停止mysql,并删除旧文件
systemctl stop mysql || /etc/init.d/mysqld stop
rm -rf /var/lib/mysql/*
#(3)将备份的文件还原到对应的数据目录中
innobackupex --defaults-file=/etc/my.cnf --copy-back /data/backup/full/
#(4)修改mysql的权限为mysql用户
chown -R mysql: /var/lib/mysql
#(5)重新启动mysql
systemctl start mysql || /etc/init.d/mysqld start
//增量备份
innobackupex --defaults-file=/etc/my.cnf --user=root --password='123456' --no-timestamp --incremental-basedir=/data/backup/full --incremental /data/backup/incre01
//增量恢复
1.准备全量数据
innobackupex --user=root --password='123456' --apply-log --redo-only /data/backup/full
2.将增量合并到全量备份中(如果是最后一个增量,不需要--redo-only
innobackupex --user=root --password='123456' --incremental --apply-log --redo-only /data/backup/full --incremental-dir=/data/backup/incre01
3.执行全量恢复操作