- xtrabackup(仅对InnoDB存储引擎支持热备)
- percona公司开发
- 改进的MySQL分支:percona-server
- 存储引擎改进:InnoDB —> XtraDB
- 使用本地的RPM包安装
- 开启:innodb_file_per_table = ON
使用rpm -ql percona-xtrabackup 查看提供的程序
/usr/bin/innobackupex # 备份innodb存储引擎的数据
/usr/bin/xbcrypt
/usr/bin/xbstream
/usr/bin/xtrabackup # 也可以直接使用xtrabackup进行备份
- 开始完全备份
innobackupex --user=root --password=123456 /backup
- 在另一台主机上开始导入
- 在/etc/my.cnf中加入innodb-file-per-table = ON
- 由于备份文件需要进行重新整合,因此,在备份主机上也要安装percona-xtrabackup
- 1:下载xtrabackup的RPM包
- 2:yum install -y percona-xtrabackup
- 将备份文件拷贝到备份服务器上
- scp -pr /backup/2017-08-30_21-55-01 192.168.23.32:/root/
- 在备份主机上将备份文件重新整理, 将已经提交的事务进行执行,未提交的事务进行回滚,并且
systemctl stop mariadb.service
innobackupex --apply-log /root/2017-08-30_21-55-01
首先整理事务
innobackupex --copy-back /root/2017-08-30_21-55-01
chown -R mysql.mysql /data/
- 如果无法启动,需要将/data/mysql/lb_logfile* 删除,因为这个文件变大了
- 开始增量备份
- 在主服务器上先创建新表
innobackupex --user=root --password=123456 --incremental /backup/ --incremental-basedir=/backup/2017-08-30_21-55-01
innobackupex --apply-log --redo-only /backup/2017-08-24_23-16-04/ :整理完全备份
innobackupex --apply-log --redo-only /backup/2017-08-24_23-16-04/ --incremental-dir=/backup/2017-08-24_23-16-04/ :将增量备份合并到完全备份上
innobackupex --copy-back /root/2017-08-24_23-16-04
- 同样也要修改属组和属主
完全备份过程演示
1:在配置文件里面,设置主服务器和备份服务器的数据目录为/data/mysql, 二进制目录为/data/binlog
datadir=/data/mysql
log_bin=/data/binlog/mysql-bin
innodb_file_per_table=on
2:在主服务器里面创建数据库,创建表,插入数据,使用innobackupex进行完全备份
innobackupex --user=root --password=123456 /backup
3:将完全备份拷贝到备份服务器
scp -pr /backup/2017-08-30_21-55-01 192.168.23.32:/root/
4:在备份服务器停止Mariadb,先整理完全备份的事务
innobackupex --apply-log /root/2017-08-30_21-55-01
5:再导入数据,此时会在备份服务器上创建数据目录为/data/mysql, 二进制目录为/data/binlog
innobackupex --copy-back /root/2017-08-30_21-55-01
6:最后将备份服务器的数据目录的属主和属组修改为mysql
chown -R mysql.mysql /data/
7:在备份服务器启动Mariadb,检查是否备份完毕
systemctl start mariadb.service
1:完全备份之后,我们再来增量备份,现在主服务器上创建其他的数据库,和表,已经插入数据
2:基于刚刚创建的完全备份,再创建增量备份
innobackupex --user=root --password=123456 --incremental /backup/ --incremental-basedir=/backup/2017-08-30_21-55-01
3:再整理完全备份
innobackupex --apply-log --redo-only /backup/2017-08-30_21-55-01
4:将增量备份合并到完全备份
innobackupex --apply-log --redo-only /backup/2017-08-30_21-55-01 --incremental-dir=/backup/2017-08-30_23-16-04
5:将完全备份拷贝到备份服务器,这会覆盖之前备份服务器上的完全备份
scp -pr /backup/2017-08-30_21-55-01 192.168.23.32:/root/
6:将备份服务器停止,在备份服务器上还原数据
innobackupex --copy-back /root/2017-08-30_21-55-01
7:修改数据目录的属主和属组为mysql
chown -R mysql.mysql /data/