• 售前

  • 售后

热门帖子
入门百科

xtrabackup备份还原MySQL数据库

[复制链接]
chris是小胖纸 显示全部楼层 发表于 2021-10-25 19:38:18 |阅读模式 打印 上一主题 下一主题
mysqldump 备份鉴于其自身的某些特性(锁表,本质上备份出来insert脚本大概文本,不支持差别备份),不太得当对实时性要求比力高的情况
Xtrabackup可以办理mysqldump存在的上述的一些题目,生产情况应用的也会更多一些。
本文简朴测试一下Xtrabackup对MySQL数据库的备份还原操纵。
本着先把功能先撸起来再深入细节的原则,大抵地实现了一个备份还原,并未深入细节。
网上有不少xtrabackup的文章,由于情况不一样,有些需要设置xtrabackup的设置文件,
但是我在xtrabackup 2.4.7版本下测试就需要需求任何设置文件。可能是每个版本都的细节上都不一样,因此参考资料的时候要留意版本和情况。
innobackupex 备份
xtrabackup和MySQL的版本如下

完备备份
复制代码 代码如下:innobackupex --defaults-file=/etc/my.cnf --user=root --password=root --socket=/var/lib/mysql/mysql.sock /data/backup
说明:

1.--defaults-file=/etc/my.cnf文件必须在最前面
2.--user=root --password=root,--use=***与 --password=*** 中间肯定要有空格,
如截图,完备备份完成

如截图,完备备份会创建一个日期(年代日时分秒,yyyy-MM-dd_hh-mm-ss)定名的文件
完备备份出来的内存,实际上是对所备份的数据库的数据文件的copy加上备份时候产生的一些信息,好比xtrabackup_checkpoints就是当前完备备份的一些个信息,这个信息对差别备份非常紧张。

  差别备份
  差别备份之所以能够做到差别,就是依赖于完备备份的,在完备备份的基础上举行完备备份之后的差别的备份。
  而怎样确定完备的备份之后备份到哪里,就依赖于完备备份之后的xtrabackup_checkpoints这个文件的。
  innobackupex --defaults-file=/etc/my.cnf --user=root --password=root --socket=/var/lib/mysql/mysql.sock --incremental /data/backup --incremental-basedir=/data/backup/2017-06-22_13-40-29

如截图,差别备份完成

如果在举行差别备份的时候,指定的完备备份的文件错误大概是未指定完备备份文件,会发现xtrabackup提示找不到xtrabackup_checkpoints这个文件。

innobackupex 还原
  预备阶段
  1、恢复完备备份,也即完备备份应用(--apply-log)日志
    innobackupex --defaults-file=/etc/my.cnf --apply-log --redo-only --socket=/var/lib/mysql/mysql.sock /data/backup/2017-06-22_13-40-29
  2、分别将增量备份应用到完备备份
    innobackupex --defaults-file=/etc/my.cnf --apply-log --redo-only --socket=/var/lib/mysql/mysql.sock --incremental /data/backup/2017-06-22_13-40-29 --incremental-basedir=/data/backup/2017-06-22_13-41-48

  如果有多个差别备份,分别应用差别备份到完备备份。
  恢复阶段
  1、完成差别备份的全部应用到完备备份之后,将恢复后的差别备份copy到原数据目录
    默认情况下,如果数据路径下存在文件,则copy失败,需要清空数据文件路径下的文件。
    innobackupex --copy-back /data/backup/2017-06-22_13-40-29
    如截图,完成copy-back

  2、启动MySQL服务
  启动mysql服务,发现启动失败

看一下错误日志(启动错误信息),mysql5.7yum安装默认的errorlog位于/var/log/mysqld.log中,且默认不会滚动,意味着全部的错误信息都记录在这个文件中。

  数据文件还原之后,需要读数据文件路径授予可读写的权限
  这里直接授权数据文件路径777,chmod -R 777 /var/lib/mysql
  然后启动mysql服务,可以正常启动。

xtrabackupex才刚刚开始,留下一大堆题目,偶尔间再一个一个验证。
  1、怎么实现单个库(表)的备份与还原,究竟实际情况中,由于每个库备份的频率和方式(备份方案)是不一样的?
  2、怎么用全备+差别备份然后结合二进制日志做基于时间点的方式还原?
  3、怎样验证备份文件的有用性?
以上就是本文的全部内容,盼望对各人的学习有所资助,也盼望各人多多支持脚本之家。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作