一、Xtrabackup备份工具
-
Percona公司针对innodb存储引擎的数据库存储备份工具Xtrabackup,对innodb官方备份工具innodbbackup的二次研发和封装,支持热备份和增量备份:
-
使用版本:
percona-xtrabackup-24-2.4.7-2.el7.x86_64.rpm
二、Xtrabackup特点
- 对MyISAM存储引擎支持温备,不支持增量备份;
- 对InnoDB支持热备,增量备份;
- 物理备份,速率快、可靠;备份完成后自动校验备份结果集是否可用;还原速度快;
使用格式
Usage: [innobackupex [--defaults-file=#] --backup | innobackupex [--defaults-file=#] --prepare] [OPTIONS]
备份使用的日志:
过程:备份 --> 应用日志 --> 还原
应用日志:--apply-log
还原:--copy-back
三、完全备份
#完全备份到指定目录
innobackupex --user=root --p 123 -H localhost /data/backup/
#查看备份目录内容
ls /data/backup/2108_xxxx
#还原数据库,确认目录下没有数据
mkdir /data/backup -pv
#在备份点目录下,合并已提交的事物,回滚未提交的事物
innobackupex --apply-log ./
#复制备份点的备份目录,到此要恢复的目录下
innobackupex --copy-back ./
#修改mysql目录下属主属组
chown -R mysql.mysql /var/lib/mysql/
#启动mysql
systemctl start mariadb.service
四、增量备份
#因为Myisa不支持增量,修改存储引擎为innodb
USE 'hellodb';
#指明基于那个全量备份路径做增量备份
innobackupex -u root -p 123 --incrementanl /data/backup/ --incremental-basedir=/data/backup/2018_xx1
#指明基于上一个增量备份路径做增量备份
innobackupex -u root -p 123 --incrementanl /data/backup/ --incremental-basedir=/data/backup/2018_xx2
#备份二进制文件
cd /data/backup/2018.xx2
less xtravackup_binlog_info #查看最后位置
#保持二进制文件到指定目录
cd /var/lib/mysql
mysqlbinlog -j xxxx master-log.xxxxx > /data/backup/binlog.sql
#还原数据库
#准备,全量合并第一个增量备份,只提交不回滚
innobackupex --apply-log --redo-only 2018.xxx --incremental-dir=2018.xx1
#准备,全量合并第二个增量备份,只提交不回滚
innobackupex --apply-log --redo-only 2018.xxx --incremental-dir=2018.xx2
#对合并后的全量备份做回滚
innobackupex --apply-log 2018.xxx
#恢复
innobackupex --copy-back 2018.xxx
cd /var/lib/mysql/
chown -R mysql.mysql ./*
systemctl start mariadb.service
mysql
mysql < /data/backup/binlog.sql
五、完全备份加二进制日志binlog备份
备份:innobackupex --user --password= --host= /PATH/TO/BACKUP_DIR
准备:innobackupex --apply-log /PATH/TO/BACKUP_DIR
恢复:innobackupex --copy-back
注意:--copy-back需要在mysqld主机本地进行,mysqld服务不能启动;
innodb_log_file_size可能要重新设定;
首先把完全和增量中的所有事物合并,然后未完成的回滚,恢复数据库
总结:完全+增量+binlog
备份:完全+增量+增量+...
六、完全备份加差异备份
准备:
innobackupex --apply-log --redo-only BASEDIR
innobackupex --apply-log --redo-only BASEDIR --incremental-dir=INCREMENTAL-DIR
恢复:
innobackupex --copy-back BASEDIR
备份单库时候命令加上:
--databases
网友评论