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

[经验分享] MYSQL的mysqldump+binlog备份

[复制链接]
YunVN网友  发表于 2018-10-4 12:07:12 |阅读模式
  mysql是一个关系型数据库管理系统,由瑞典Mysql  AB公司开发,目前属于Oracle旗下的产品。Mysql是最流行的关系型数据库之一,在web应用方面,Mysql是最好的RDBMS(Relational Database Management System,关系型数据库管理系统)应用软件。
  MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。
  由于其社区版的性能卓越,搭配PHP和Apache可组成良好的开发环境。
  自我感觉数据库的存亡代表了一个公司的命脉,数据库GG(game over)了哪一个公司估计也差不多了。所以数据的备份才尤其的重要。目前数据库的备份有三种;热备,冷备,温备。
  按照方式划分的三种备份方式:
  1.热备:在数据库可读可写的情况下进行备份,没有影响
  2.冷备:在数据库停止的情况下进行备份
  3.温备:在数据库不可写的情况下备份    #需要一个全局读锁来保持数据的一致性 。
  备份形式又分为两种:物理备份和逻辑备份。
  物理备份:直接复制数据文件
  优点:无需额外的工具,直接拷贝恢复直接复制文件即可
  缺点:与储存引擎有关,跨平台能力较弱
  逻辑备份:从数据库中导出数据另存而进行的备份
  优点:能使用编辑器处理,恢复简单,能基于网络恢复,有助于避免数据损坏
  缺点:备份文件较大,备份较慢,无法保证浮点数的精度,使用逻辑备份数据回复后,还需要手动重建索引,十分消耗cpu资源。   
  数据的备份类型大致三种:1.完全备份#把整个数据库都备份一份 2.增量备份#只备份增加的某些数据 3.差异备份
  经常用的备份方式有三种:一般是由某两种类型结合而成的。
  1.mysqldump+binlog #完全备份加上增量备份
  2.xtrabackup
  3.lvm快照+增量备份
  
  现在实现一个企业经常用备份方式,mysqldump+binlog!
  实现这个备份需要吧二进制日志功能打开,在/etc/my.cnf文件内配置。
   DSC0000.jpg   指定文件名(.log 后缀会省略  在/var/lib/mysql/下有个bin.000001)
  mysqldump是mariadb自带的命令binlog是二进制备份方式,这可形成一个完整的备份。究竟怎么做呢,我们一起来看看
  1.首先创建一个专门放日志备份的目录:#我会创建库表代表数据!
   DSC0001.jpg
  2.进行完全备份:#相关mysqldump命令可以mysqldump --help来查看
  #mysqldump  --all-database所有的库 --locak-all-tables锁表(防止写)
   DSC0002.jpg
  3.现在往数据库中插入数据,表示增量!show master status;查看Position值(此值也可以用作主从复制)
   DSC0003.jpg
  插入数据后的数值  
   DSC0004.jpg
  4.指定开启二进制日志时指定的文件(每flush logs一次二进制日志重重新记录一个新的文件)所以现在是bin.000010这个文件,show master status;也会显示当前所使用的文件名。
   DSC0005.jpg
  #这时候差不多就完成了 !!!但是!!!一般情况,数据库是在使用中突然中断或服务关闭,当时你是不可能做备份的,所以上一次做备份的时间到数据库挂掉的时间内这段数据是没有备份的!现在插入数据在把数据库删掉,模拟情况。
   DSC0006.jpg
  因为数据库的内容都是在mysql/下以文件或目录形式存在的,直接把shuju这个数据库删掉,则shuju这个数据库也不存在了。
  5.这个时候最重要的是保护没有备份的最后那些数据。(也就是上次增量备份完后来加的数据,二进制日志文件还是存在的)
  首先show master status;#查看这时候的position值,之后执行mysqlbinlog命令从上次的436到这次查看的值备份。查看值的我就不截图了。
   DSC0007.jpg
  6.这时候在找一台没有数据的机器恢复所有的数据,也就完成了恢复数据。
   DSC0008.jpg
  没恢复数据之前
   DSC0009.jpg
  第一次插入的数据,第二次增量的数据和第三次增量的数据都恢复了。
  二进制日志尤为重要,所以数据保护要看中二进制日志。


运维网声明 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-611834-1-1.html 上篇帖子: MySQL专题7之MySQL连接、 MySQL MULL值得处理以及MySQL 正则表达式的使用 下篇帖子: 【MYSQL】Mysql 设备选型与系统规划-实战参考文档-带附件-可下载
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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