设为首页 收藏本站
查看: 655|回复: 0

[经验分享] mysql备份工具

[复制链接]

尚未签到

发表于 2018-10-1 12:32:05 | 显示全部楼层 |阅读模式
  备份还原脚本及工具
  1)Xtrabackup实现是物理备份,而且是物理热备
  目前主流的有两个工具可以实现物理热备:ibbackup和xtrabackup;ibbackup是商业软件,需要授权,非常昂贵。而xtrabackup功能比ibbackup还要强大,但却是开源的。
  2)Xtrabackup提供了两种命令行工具:
  xtrabackup:专用于备份InnoDB和XtraDB引擎的数据;
  innobackupex:这是一个perl脚本,在执行过程中会调用xtrabackup命令,这样用该命令即可以实现备份InnoDB,也可以备份MyISAM引擎的对象。
  二 演示步骤
  首先 解压安装包
DSC0000.png

  复制bin下的所有程序到/usr/bin
DSC0001.png

  Xtrabackup中主要包含两个工具:
  xtrabackup:是用于热备份innodb, xtradb表中数据的工具,支持在线热备份,可以在不加锁的情况下备份Innodb数据表,不过此工具不能操作Myisam引擎表;
  innobackupex:是将xtrabackup进行封装的perl脚本,能同时处理Innodb和Myisam,但在处理Myisam时需要加一个读锁。
  3)安装插件 使用yum
  yum install perl-DBI perl-DBD-MySQL perl-Time-HiRes perl-IO-Socket-SSL perl-TermReadKey.x86_64 perl-Digest-MD5–y
DSC0002.png

  方案一:xtrabackup完全备份+binlog增量备份
  创建备份目录
DSC0003.png

  完全备份
  innobackupex --user=root --password=123456 /opt/mysqlbackup/full  出现OK 完成
  注: --defaults-file=/etc/my.cnf 指定mysql的配置文件my.cfg,如果指定则必须是第一参数。
DSC0004.png

  备份数据库会会在备份目录下创建当前日期为名字的目录存放
DSC0005.png

  文件说明
  (1)xtrabackup_checkpoints ——备份类型(如完全或增量)、备份状态(如是否已经为prepared状态)和LSN(日志序列号)范围信息;
  每个InnoDB页(通常为16k大小)都会包含一个日志序列号 (2)xtrabackup_binlog_info —— mysql服务器当前正在使用的二进制日志文件及至备份这一刻为止二进制日志事件的位置。
  (3)xtrabackup_binlog_pos_innodb ——二进制日志文件及用于InnoDB或XtraDB表的二进制日志文件的当前position。
  (4)xtrabackup_binary ——备份中用到的xtrabackup的可执行文件;
  (5)backup-my.cnf ——备份命令用到的配置选项信息;
  在使用innobackupex进行备份时,还可以使用--no-timestamp选项来阻止命令自动创建一个以时间命名的目录。
  注意:备份数据库的用户需要具有相应权限,如果要使用一个最小权限的用户进行备份,则可基于如下命令创建此类用户:
DSC0006.png

DSC0007.png

  至此全备完全成功,然后向mysql某个库插入几条数据,然后进行增量备份对完全备份的后数据库更改进行二进制日志增量备份:
  查看完全备份时binlog日志位置(position)
DSC0008.png

  模拟修改数据库
DSC0009.png

  增量备份二进制文件
DSC00010.png

  2 还原数据库二进制文件
  首先 模拟吧data文件删除或者转移,然后进行完全备份还原
  innobakupex命令的--apply-log选项可用于实现上述功能。--apply-log指明是将日志应用到数据文件上,完成之后将备份文件中的数据恢复到数据库中:
DSC00011.png

  还原数据库语法:
  # innobackupex --copy-back /opt/mysqlbackup/full/2016-09-12_11-29-55/
  这里的--copy-back指明是进行数据恢复。数据恢复完成之后,需要修改相关文件的权限mysql数据库才能正常启动。
  还原数据库语法
DSC00012.png

  data 已经成功还原  重新启动mysql
DSC00013.png

  需要确保所有数据文件属主和属组
DSC00014.png

  还原成功 但是增量备份还没有成功
DSC00015.png

  为了防止还原时产生大量的二进制日志,在还原时可临时关闭二进制日志后再还原:
  mysql> set sql_log_bin=0;
  mysql> source /opt/mysqlbackup/inc/2016-09-12.sql
  还原成功 数据成功恢复
DSC00016.png

DSC00017.png

  重新启动二进制日志  set sql_log_bin=1;
DSC00018.png



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-607132-1-1.html 上篇帖子: mysql物理文件组成 下篇帖子: mysql高可用MMM-12179708
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表