Xtrabackup
Xtrabackup全量备份
innobackupex --defaults-file=/etc/my.cnf --user=root --password="123456" --backup /usr/src/Xtrabackup增量备份
innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456 --incremental /backup/ --incremental-basedir=/usr/src/2017-12-04_13-57-29
#--incremental /backup/ 指定增量备份文件备份的目录
#--incremental-basedir 指定上一次全备或增量备份的目录xtrabackup全量恢复InnoDB数据库,前提需要有一个备份目录例如 2017-12-04_13-57-29
#停止数据库服务,并删除原文件,模拟恢复
systemctl stop mysqld
cp -r /data/dbdata /data/dbdata-bak
cd /data/dbdata/
rm -rf *Xtrabackup恢复数据操作
全量恢复
#生成ib_logfile文件。使用此参数使相关数据性文件保持一致性状态
innobackupex --apply-log /usr/src/2018-04-05_01-00-01/
#还数据到mysql的数据目录
innobackupex --defaults-file=/etc/my.cnf --copy-back /usr/src/2018-04-05_01-00-01/
#还原过去后默认是root权限,因此修改属组和属主
chown –R mysql.mysql /data/dbdata如果启动失败,请检查日志排查问题。
问题
InnoDB: Error: log file ./ib_logfile0 is of different size 0 536870912 bytes
InnoDB: than specified in the .cnf file 0 50331648 bytes!
InnoDB: Possible causes for this error:
(a) Incorrect log file is used or log file size is changed
(b) In case default size is used this log file is from 10.0
(c) Log file is corrupted or there was not enough disk space
In case (b) you need to set innodb_log_file_size = 48M
180410 10:08:46 [ERROR] Plugin 'InnoDB' init function returned error.
180410 10:08:46 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
180410 10:08:46 [Note] Plugin 'FEEDBACK' is disabled.
180410 10:08:46 [ERROR] Unknown/unsupported storage engine: InnoDB
180410 10:08:46 [ERROR] Aborting1:修改配置文件
在[mysqld]下添加:
innodb_log_file_size=503316482:删除ib_logfile文件
mv ib_logfile0 ib_logfile0_bak
mv ib_logfile1 ib_logfile1_bakXtrabackup增量恢复
innobackupex --apply-log --redo-only /usr/src/2017-12-04_13-57-29/
innobackupex --apply-log --redo-only /usr/src/2017-12-04_13-57-29/ --incremental-dir=/backup/2017-12-05_09-27-06/
innobackupex --apply-log --redo-only /usr/src/2017-12-04_13-57-29/ #指定全备目录,--redo-only 对已提交的事务进行前滚,仅最后一次增备恢复不需要添加该参数
innobackupex --apply-log --redo-only /usr/src/2017-12-04_13-57-29/ --incremental-dir=/backup/2017-12-05_09-27-06/ #--incremental-dir 指定第一次增备目录 ( 绝对路径 ),,--redo-only 对已提交的事务进行前滚,仅最后一次增备恢复不需要添加该参数
innobackupex --defaults-file=/etc/my.cnf --copy-back /usr/src/2017-12-04_13-57-29/ #最后一步,复制整合后的全备文件,位置为 my.cnf 中 datadir 指定路径最后更新于