千家信息网

怎么理解Xtrabackup

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,怎么理解Xtrabackup,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。就Xtrabackup谈一下自己的经历Xtrabackup包括
千家信息网最后更新 2026年11月01日怎么理解Xtrabackup

怎么理解Xtrabackup,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

就Xtrabackup谈一下自己的经历
Xtrabackup包括innobackupex-1.5.1和xtrabackup两个部分,我用的是新版本0.9源码包。innobackupex-1.5.1是一个perl脚本,在xtrabackup上做了一层外包,添加了对MyISAM存储引擎和其他选项的支持。


innobackupex
备份【这里指完整备份】
innobackupex-1.5.1 --user=root --password=123456 /backup/mysql 2&> /backup/mysql/backup_out.log

innobackupex-1.5.1会在备份目录下生成一个日期时间HASH哈希目录,如:/backup/mysql/2009-10-28_10-40-11。同时也可以将运行过程写入日志方便以后查看

下面我们来看一下innobackupex-1.5.1都帮助我们备份了哪些重要文件

ls -l /backup/mysql/2009-10-28_10-40-11
backup-my.cnf ----备份MySQL配置文件my.cnf
ibdata1 ----备份InnoDB数据空间文件
mysql ----备份mysql系统库
mysql-stderr ----innobackupex-1.5.1运行错误信息
mysql-stdout ----innobackupex-1.5.1运行跟踪记录
mytestdb ----备份用户自定义数据库
test ----备份test库
xtrabackup_binlog_info ----记录备份时binlog信息和时间点
xtrabackup_checkpoints ----记录备份类型和时间点
xtrabackup_logfile ----二进制日志

附:mytestdb库包含MyISAM和InnoDB存储引擎的表

ls -l /backup/mysql/2009-10-28_10-40-11/mytestdb
record.frm
record.ibd
shop.frm
shop.MYD
shop.MYI


这里我们查看下mytestdb,MyISAM和InnoDB存储引擎的表的定义文件、数据文件和索引文件都被备份下来了^_^


恢复
---准备日志文件
innobackupex-1.5.1 --apply-log /backup/mysql/2009-10-28_10-40-11

ls /backup/mysql/2009-10-28_10-40-11 我们看到除了以上文件外又多了InnoDB日志文件
ib_logfile0 ib_logfile1

---拷贝备份文件--实际的恢复【好像MyISAM的文件拷贝】
innobackupex-1.5.1 --copy-back /backup/mysql/2009-10-28_10-40-11

ls -l /data/dbfile/
查看服务器数据文件目录,我们看到备份的所有文件已经都copy过来了

chown -R mysql.mysql /data/dbfile
修改数据目录权限

重启mysqld使生效


xtrabackup


备份
(full backup)
# ./xtrabackup --backup --target-dir=/backup/mysql

(single db backup)
# ./xtrabackup --backup --tables=mytestdb.* --target-dir=/backup/mysql

(incremental backup)
# ./xtrabackup --backup --target-dir=/backup/mysql --incremental-basedir=/backup/mysql/inc

(prepare)
# ./xtrabackup --prepare --target-dir=/backup/mysql注:从词面解释prepare是准备的意思--也就是说它不是直接恢复。同innobackupex-1.5.1一样需要先生成InnoDB日志文件ib_logfile*,所以这里执行2次完成恢复前的准备工作
恢复的时候直接拷贝文件到数据目录即可
假使你误删除了数据库目录或InnoDB相关文件,这样做可以帮助你恢复到当时的完整数据;假使你只想定时恢复,这样做会覆盖当前数据目录下的文件


区别:
innobackupex-1.5.1备份了所有数据库文件【包括表定义文件、数据文件、索引文件】
xtrabackup只备份InnoDB表的数据文件--tablename.ibd文件,所以我们需要单独备份表定义文件或dump的数据库结构,否则出现误删除数据目录的情况可就...uh...新dump的结构和数据不一定对的上哦~


(apply incremental backup)
# ./xtrabackup --prepare --target-dir=/backup/mysql --incremental-dir=/backup/mysql/inc

chown -R mysql.mysql /data/dbfile
修改数据目录权限

重启mysqld使生效


增量备份待研究,To be continued ... [@more@]


innobackupex-1.5.1备份扩展

打包备份 【打包必须指定流 --stream=tar 】
tar包
innobackupex-1.5.1 --user=root --password=123456 --stream=tar /backup/mysql 2&> /backup/mysql/backup_out.log 1> /data/backup/mysql/last.tar

gz包
innobackupex-1.5.1 --user=root --password=123456 --stream=tar /backup/mysql 2&> /backup/mysql/backup_out.log | gzip > /backup/mysql/last.tar.gz

远程备份
nnobackupex-1.5.1 --user=root --password=123456 --stream=tar /backup/mysql | ssh user@192.168.x.x gzip ">" /backup/mysql/backup.tar.gz

指定数据库备份
innobackupex-1.5.1 --user=root --password=123456 --databases=mytestdb --stream=tar /backup/mysql | gzip > /backup/mysql/mytestdb.tar.gz


对于包的解压需要说一下
# mkdir /backup/mysql/tmp
# tar ixzvf last.tar.gz -Ctmp 【必须指定 i 参数才可获得所有文件,否则只是backup-my.cnf】

看完上述内容,你们掌握怎么理解Xtrabackup的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

文件 备份 数据 目录 数据库 日志 引擎 拷贝 时间 准备 存储 运行 信息 内容 方法 更多 权限 索引 结构 问题 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技园 美国互联网科技巨头监管 网络科技有限互联网 互联网科技公司发展 深圳艾佳互联网科技 中国的互联网科技企业的崛起 阿里互联网科技公司 全球顶尖互联网科技公司 互联网科技产业特征 新兴科技互联网创新大赛颁奖典礼 中国互联网有什么科技 广东工业互联网大赛深圳学泰科技 云南省自由互联网科技有限公司 美国互联网科技公司 湖北辰鑫科技互联网 互联网金融运营模式中的金融科技 互联网金融金融科技 广东猫王互联网科技有限公司电话 宁波允成互联网科技有限公司 伍佰万互联网科技是干嘛的 互联网的科技 美国互联网保险保险科技 互联网科技金融 北京互联网科技公司 合肥互联网科技公司 青岛互联网科技公司 互联网科技公司有风险吗 中国科技创新与世界互联网大会 互联网的黑科技实验室 现代科技的标志之一的互联网
0