Xtrabackup 的安装使用
一、权限要求
1. 文件系统权限
READ, WRITE, EXECUTE
2. 数据库权限
LOCK TABLES
需要执行 FLUSH TABLES WITH READ LOCK and FLUSH ENGINE LOGS
REPLICATION CLIENT
获取binlog日志
PROCESS
获取SHOW ENGINE INNODB STATUS线程运行情况,为了FTWRL
SUPER
暂停和启动slave 复制线程
3. 示例
二、全量备份
1. 开始全量备份
注意:留意输出的日志‘completed OK!’,说明备份成功
--defaults-file: 指定数据库配置文件
-u, --user: 用户
-p, --password: 密码
-H, --host: 主机
-S, --socket: socket
-P, --port: 端口
--parallel:多线程拷贝.ibd文件
--no-timestamp: 不使用时间戳生成备份目录
2. apply log
注意:留意输出的日志‘completed OK!’,说明apply redo 日志成功.
3. 恢复
注意:
恢复的目录必须是空的才可以恢复,否则会报Original data directory /data is not empty!
4.从全备中恢复单表
4.1 Innodb
非必要
用mysqlfrm
工具从备份文件中查看表结构
mysqlfrm --diagnostic /backdir/tb1.frm
创建表
添加一个写锁,确保安全
丢弃表空间
从备份文件中拷贝ibd文件,并修改权限
载入表空间
解锁
4.2 MyISAM
关闭数据库
拷贝 /backdir/tb1.* 到 /datadir/
修改权限
启动数据库
三、增量备份
1. 开始全量备份
注意:留意输出的日志‘completed OK!’,说明备份成功
压缩备份
2. 开始增量备份
第一次增备模拟新数据写入
2.1 第一次增量备份
注意:留意输出的日志‘completed OK!’,说明备份成功。
--incremental:增量备份
--incremental-basedir:指定上次一备份目录,如果上一次是全备就指定全备目录,是增备就指定增备目录
第二次增备模拟新数据写入
2.2 第二次增量备份
注意:这里--incremental-basedir
指定上一次增备目录
3. 恢复
整合完成备份和增量备份
注意: 一定要按照完整备份、第一次增量备份、第二次增量备份的顺序进行整合,在整合最后一次增量备份时不要使用--redo-only参数。
3.1全库恢复
3.2单表恢复
MySQL中创建一模一样的表结构,并删除表空间
通过apply-log 获得一致的备份
从备份目录拷贝 .ibd 文件到datadir目录
导入表空间
四、单表备份
1. 备份
单表备份有三种方法
第一种
--databases="db1.tb1 db1.tb2 db2.tb1"
第二种正则表达式
第三种把要备份的表写到配置文件中
因为单表备份跟全量备份,增量备份在恢复步骤不同,恢复的时候需要表结构,我们应该还要备份表结构。
这里使用mysqldump把表结构备份出来。
2. apply log
3. 恢复
新建一模一样的表结构,这是我之前备份的表结构
对需要恢复的每一张表先discard表空间
拷贝.ibd和.cfg文件到datadir,并修改权限
import 表空间
其他的表恢复步骤同上
五、安装
六、参数
innobackupex参数:
版权声明: 本文为 InfoQ 作者【一个有志气的DB】的原创文章。
原文链接:【http://xie.infoq.cn/article/1cd5f5fc30e14e70613db8d77】。未经作者许可,禁止转载。
评论