Xtrabackup
1. innobackupex 怎么进行备份
基本使用命令的介绍
2. innobackupex备份原理是什么
LSN介绍
数据页合并
3. innobackupex对于多种存储引擎怎么实现备份数据一致性
Percona公司推出的
yum 安装或rpm安装
https://www.percona.com/doc/percona-xtrabackup/2.4/installation/yum_repo.html
yum install http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm
yum install percona-xtrabackup-24
备份命令
innobackupex —defautls-file=/etc/my.cnf /data/backup/
默认会以时间戳建立目录,也可以使用—no-timestamp 这个参数不建立目录
xtrabackup
innobackup
这两个软件是什么关系呢?
innobackupex 调用 xtrabackup
innodbackup perl 脚本
Xtrabackup c程序
xtrabackup 是copy innodb物理文件
innobackupex 和 xtrabackup,前者是一个 perl 脚本,后者是 C/C++ 编译的二进制。
xtrabackup 是用来备份 InnoDB 表的,不能备份非 InnoDB 表,和 mysqld server 没有交互;innobackupex 脚本用来备份非 InnoDB 表,同时会调用 xtrabackup 命令来备份 InnoDB 表,还会和 mysqld server 发送命令进行交互,如加读锁(FTWRL)、获取位点(SHOW SLAVE STATUS)等。简单来说,innobackupex 在 xtrabackup 之上做了一层封装。
innobackupex备份原理是什么
LSN : log seq number
show engine innodb status\G;
redo日志
ib_logfile0, ib_logfile1, ib_logfile2 …
Block 大小 512 byte
binlog position 文件的大小的便移量
8192 ->
ib_logfile0 10M
10*1024 *1024/512 =20480
redo 位置
ib_logfile -> redo
三个日志文件都写满了怎么办?
3*10*1024*1024
LSN%总共可以分配的号
定位给定一个lsn是在哪个iblogfile的哪个偏移
三个iblogfile总共可以有1200 号
LSN%1200 ->
innodb page format
header 38字节 trailer 8 字节
Flush LSN
Flush LSN
基于事务的操作每个操作都有一个唯一的编号号
这个编号就是LSN号
事务ID
Page编号也是唯一的,LSN也是唯一的,是不是两个都能对应起来了。
iblogfile不要分大小,建议可以分成1G一个
<5.6 的官方版本不能超过4个iblogfile文件
淘宝也是把Redo分成4个文件
redo 总共不能大于4G
>=5.6之后没有这个限制
f