一 简介:学习innobackup工具使用
二 功能: 备份全库/单库/单表
三 常用命令
一 全库
目的 每天日常备份
备份 innobackupex --defaults-file=/etc/my.cnf --user= --password= --socket=/tmp/mysql.sock --slave-info --parallel=8 dir > backup.log 2>&1
还原 innobackupex --apply-log dir
导入 mv 覆盖 data目录
二 单库
目的 1 迁移单库 做单库的从库 2 迁移单库 做 单库的迁移
备份 innobackupex --databases="db1 db2 db3" --defaults-file=/etc/my.cnf --user= --password= --socket=/tmp/mysql.sock --slave-info --parallel=8 dir > backup.log 2>&
还原 innobackupex --apply-log --export dir
导入 1 mv 覆盖 data目录
2 参考 单表恢复
三 单表
目的 1 迁移 2恢复
补充 1 可以先备份单表再导入单表 2 可以从全备进行export恢复再导入单表
备份 innobackupex --include="db.table db.table" --defaults-file=/etc/my.cnf --user= --password= --socket=/tmp/mysql.sock --slave-info --parallel=8 dir > backup.log 2>&
还原 innobackupex --apply-log --export dir
导入
1 创建 单表的结构 create table
2 禁用表空间 ALTER TABLE tablename DISCARD TABLESPACE;
3 拷贝所有表相关文件到目录
4 重新授权chown -R mysql:mysql
5 启用表空间 ALTER TABLE tablename IMPORT TABLESPACE;
6 进行表数据查看
四 远程备份
目的 本地备份推送到远程
准备 做好ssh免密互通
备份 innobackupex --user= --password= --defaults-file=/etc/my.cnf --socket=/tmp/mysql.sock --stream=tar dir1 --tmpdir=dir1 | ssh host2 "cat - > dir2+`date +%F.tar.gz`"
五 增加备份
目的 实现对大数据的增量备份
准备 需要全备作为基础
备份 innobackupex --defaults-file=/etc/my.cnf --user= --password= BASE-DIR 全量备份
innobackupex --defaults-file=/etc/my.cnf --user= --password= --incremental-basedir=BASE-DIR --incremental INCREMENTAL-DIR-1 第一次增量
innobackupex --defaults-file=/etc/my.cnf --user= --password= --incremental-basedir=INCREMENTAL-DIR-1 --incremental INCREMENTAL-DIR-2 第二次增量 以此类推
还原
innobackupex --apply-log --redo-only BASE-DIR 全量备份恢复
innobackupex --apply-log --redo-only BASE-DIR --incremental-dir=INCREMENTAL-DIR-1 第一次增量恢复
innobackupex --apply-log --redo-only BASE-DIR --incremental-dir=INCREMENTAL-DIR-2 第二次增量恢复
innobackupex --apply-log - BASE-DIR --incremental-dir=INCREMENTAL-DIR-2 最后一次增量不加read-only
导入 mv base_dir 进行恢复
六 补充
备份遇到的一些场景问题可参考我另一篇文章 DBA个人经验~备份还原