Xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写),是商业备份工具InnoDB Hotbackup的一个很好的替代品。Xtrabackup是由percona开源的免费数据库热备份软件,它能对InnoDB数据库和XtraDB存储引擎的数据库非阻塞地备份(对于MyISAM的备份同样需要加表锁);mysqldump备份方式是采用的逻辑备份,其最大的缺陷是备份和恢复速度较慢,如果数据库大于50G,mysqldump备份就不太适合。
Xtrabackup优点
Xtrabackup备份原理
备份开始时首先会开启一个后台检测进程,实时检测mysql redo的变化,一旦发现有新的日志写入,立刻将日志记入后台日志文件xtrabackup_log中,之后复制innodb的数据文件一系统表空间文件ibdatax,复制结束后,将执行flush tables with readlock,然后复制.frm MYI MYD等文件,最后执行unlock tables,最终停止xtrabackup_log。
Xtrabackup增量备份介绍
xtrabackup增量备份的原理是:
将备份的文件存放在 /bak/mariadb 目录下
innobackupex --defaults-file=/etc/my.cnf --host=192.168.10.2 --user=root --password=123456 /bak/mariadb/
注意:备份时需启动MySQL,恢复时需关闭MySQL,清空mysql数据目录且不能重新初始化,恢复数据后应该立即进行一次完全备份
200112 18:43:10 completed OK! 备份成功
backup-my.cnf 包含了my.cnf中备份时需要的信息。
xtrabackup_checkpoints 备份属于那种类型的备份,是全量还是增量,备份时起始的LSN号码,结束的LSN号码等信息。
xtrabackup_info 本次备份的概要信息
xtrabackup_logfile 记录了备份过程中的日志,在对数据进行prepare时需要通过日志将数据还原成一致的可用的数据。
事务日志应用到备份
备份出的数据并不能直接使用,因为备份出的数据是不一致的,我们还需要将同时备份出的事务日志应用到备份中,才能得到一份完整、一致、可用的数据,xtrabackup称这一步操作为 prepare,也就是还原数据前的"准备"工作。
在事务日志容量很大的情况下,可以使用 --use-memory nG 选项加速,在不指定内存大小的情况下,默认会占用100MB的内存。
innobackupex --apply-log /全量备份目录
--datadir:指定的目录就是还原后数据要存放的目录,如果my.cnf设置了datadir,可以省略--datadir,执行copyback时会读取my.cnf中的配置,还原数据时 datadir 目录必须为空目录。
--copy-back:对应的就是全量备份的目录。
针对上次全量备份进行增量备份
innobackupex --user root --password 123456 --incremental /增量备份目录 --incremental-basedir=/全量备份目录
--incremental /bak/mariadb/inc1 新增加的备份目录,事先必须存在
--incremental-basedir 全量备份的目录
在数据库中插入一些数据
网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。
加入交流群
请使用微信扫一扫!