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

[经验分享] Mysql数据库备份与恢复--Xtrabackup

[复制链接]

尚未签到

发表于 2018-10-7 09:50:52 | 显示全部楼层 |阅读模式
  Mysql数据库备份与恢复
  背景:
  作为一个运维工程师,经常会遇到硬件故障(冗余)、软件故障(bug)、自然灾害、******、误操作等对数据库破坏的问题,所以一定要做好备份工作,在做好备份后还一定要会恢复,这两项工作都是很重要的,备份要知道如何备份才能有效的保护数据,同时恢复数据也是很繁忙的工作,有时可能需要一个团队来完成。这里介绍下Xtrabackup对Mysql数据库的简单备份和恢复。
  这里的实验是在Centos6.9上做的,如果是7版本,可能命令有所不同。
  备份注意事项:
  1、能容忍最多丢失多少数据;
  2、恢复数据需要在多长时间内完成;
  3、需要恢复哪些数据;
  4、做恢复演练:
  测试备份的可用性;
  增强恢复操作效率;
  5、备份需要考虑因素:
  锁定资源多长时间?
  备份过程的时长?
  备份时的服务器负载?
  恢复过程的时长?
  备份策略:
  全量+差异 + binlogs
  全量+增量 + binlogs
  备份手段:物理、逻辑
  备份类型:
  备份的数据集的范围:
  完全备份:整个数据集;
  部分备份:数据集的一部分,比如部分表;
  全量备份、增量备份、差异备份:
  完全备份
  增量备份:仅备份自上一次完全备份或 增量备份以来变量的那部数据;
  差异备份:仅备份自上一次完全备份以来变量的那部数据;
  物理备份、逻辑备份:
  物理备份:复制数据文件进行的备份;
  逻辑备份:从数据库导出数据另存在一个或多个文件中;
  根据数据服务是否在线:
  热备:读写操作均可进行的状态下所做的备份;(MyISAM不支持热备,InnoDB支持)
  温备:可读但不可写状态下进行的备份;
  冷备:读写操作均不可进行的状态下所做的备份;
  备份什么?
  1、数据
  2、二进制日志、InnoDB的事务日志;
  3、代码(存储过程、存储函数、触发器、事件调度器)
  4、服务器的配置文件(用于系统环境的恢复)
  Xtrabackup备份数据
  Xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写),是商业备份工具InnoDB Hotbackup的一个很好的替代品。   
  完全备份:
  完全+binlog(总结):
  备份:innobackupex --user --password= --host= /PATH/TO/BACKUP_DIR
  准备:innobackupex --apply-log  /PATH/TO/BACKUP_DIR
  恢复:innobackupex --copy-back
  注意:--copy-back需要在mysqld主机本地进行,mysqld服务不能启动;
  innodb_log_file_size可能要重新设定;
  步骤1、在使用Mysql数据库时,最好开启binlog,也就是二进制日志功能,到时可以用二进制按时间节点对文件进行恢复,使数据恢复更加准确。
DSC0000.png

  步骤2、下载与安装Xtrabackup软件
  官网下载地址:https://www.percona.com/downloads/XtraBackup/LATEST/
  Xtrabackup提供的是rpm包,所以下载好后直接用yum安装即可
DSC0001.png

  步骤3、备份数据库
  在安装Xtrabackup时最好是关闭数据库,安装好后就可以启动了。
DSC0002.png

  开始备份数据:
DSC0003.png

DSC0004.png

DSC0005.png

  在看见了completed OK!之后才能确认备份是成功的,否则备份是失败的。
  步骤4、查看数据库备份情况
DSC0006.png

  Xtrabackup恢复数据
  步骤1、在确认了数据库备份成功后,删除数据库里的所有数据
DSC0007.png

  步骤2、关闭数据库
  命令:service mysqld stop
  一定要关闭数据库,因为之后的操作如果数据库是开着的,那操作都会失败。
  步骤3、准备
  命令:innobackupex --apply-log /PATH
  这一步很重要,他可以将没做完的事务全部回滚。保证数据库的准确性。
DSC0008.png

DSC0009.png

  步骤4、恢复数据
  命令:innobackupex --copy-back
DSC00010.png

  同样的,最后看见completed OK就是恢复成功,PS:并不是上图的completed OK
  步骤5、查看恢复的数据
DSC00011.png

  步骤6、修改权限或者所有者
DSC00012.png

  步骤7、启动数据库,查看数据
DSC00013.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-614204-1-1.html 上篇帖子: mysql基于SSL实现主从复制 下篇帖子: MySQL 基于主主备份
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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