Mysql数据库innobackupex恢复
建议先浏览一下官方文档系统的了解一下XtraBackup
官方文档
仅供个人参考,具体操作需要根据环境和配置的不同进行相应更改
innobackupex命令常用选项
–host 主机名
–user 用户名
–port 端口号
–password 密码
–databases 数据库名
–no-timestamp 不用日期命名备份文件存储的子目录名
–redo-only 日志合并
–apply-log 准备还原(回滚日志)
–copy-back 恢复数据
–incremental 目录名 增量备份
–incremental-basedir=目录名 增量备份时,指定上一次备份数据存储的目录名
–incremental-dir=目录名 准备恢复数据时,指定增量备份数据存储的目录名
–export 导出表信息
import 导入表空间
补充:
–databases=“库名” 单个库
–databases=“库1 库2” 多个库
–databases=“库.表” 单个表
备份
全备
innobackupex --user=‘root’ --password=‘123456’ /data
/data:为全库保存的目标目录
增量备份
innobackupex --user=‘root’ --password=‘123456’ --incremental /data/incremental --incremental-basedir=’/data/2019-11-10’
–incremental:该选项告诉xtrabackup创建增量备份,而不是完整备份。它被传递给xtrabackup子进程。指定此选项后,还可以指定–incremental-lsn或–incremental-basedir。如果两个选项都没有提供,则将默认选项 --incremental-basedir传递给xtrabackup,设置为备份基本目录中的第一个时间戳备份目录。
/data/incremental:指定增量备份到此目录下,要紧跟着选项–incremental后面写
–incremental-basedir:此选项指定增量备份与完整备份相结合以进行新的完整备份的目录。该选项接受字符串参数。它与–incremental选项一起使用。
恢复
再恢复之前需要先停掉mysql服务,并且要备份数据库文件清空mysqldata目录:(以centos 6为例,centos 7服务管理命令请参考相关文档)
[root@Tomact-Proxy ~]# /etc/init.d/mysqld stop
Stopping mysqld: [ OK ]
[root@Tomact-Proxy ~]# mv /var/lib/mysql/ /backup/mysql/
全备恢复
- 准备备份
innobackupex --user=‘root’ --password=‘123456’ --apply-log /data/2019-11-10
- 恢复备份
innobackupex --defaults-file=my.cnf --user=‘root’ --password=‘123456’ --copy-back /data/2019-11-10
–apply-log:通过应用位于相同目录中的名为“xtrabackup_logfile”的事务日志文件,在备份目录中准备备份。另外,创建新的事务日志。InnoDB配置是从“backup-my.cnf”文件读取的。
–copy-back: 将先前备份目录中的所有文件复制到其原始位置。
- 恢复完成之后需要给mysql-data赋权
chown -R mysql:mysql /var/lib/mysql
增量恢复
- 准备备份
要准备备份,请使用该选项并指定带有时间戳的子目录。为了加快应用日志的过程,请使用:innobackupex --apply-log innobackupex --use-memory
1,停止数据库服务
2,备份mysql-data目录文件并清空
3,基于全备进行增倍恢复
innobackupex --user='root' --password='123456' --apply-log /data/2019-11-10
innobackupex --user=root --password=123456 --apply-log --redo-only /data/2019-11-10 --incremental-dir=/backup/increment
nnobackupex --defaults-file=my.cnf --user='root' --password='123456' --copy-back /data/2019-11-10
##给mysql-data目录赋权
chown -R mysql:mysql /var/lib/mysql
##启动数据库
/etc/init.d/mysqld start
参考:https://www.cnblogs.com/Amaranthus/archive/2014/08/19/3922570.html#_Toc396231227
恢复之后需要开启bin-log日志参考:https://www.cnblogs.com/liushuiwuqing/p/4014339.html