博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql 常见的备份架构及技术
阅读量:6687 次
发布时间:2019-06-25

本文共 1915 字,大约阅读时间需要 6 分钟。

在mysql中,备份是相当重要的一步,设想,万一哪天线上服务器出现故障导致数据丢失,而在此之前并未做好相关的备份工作,那么后果将不可设想。接下来将简单介绍下Mysql常见的备份系统架构。

(1)一主多从

这种架构的特点很明显,架构中有多台mysql服务器,并由其中一台作为主服务器(master),其他服务器都作为从服务器(slave)。所有slave都连到master上面,并且做主从复制,从master上拿二进制日志到本地执行即可得到master上完整的一份数据,从而做到备份的效果。一旦master数据丢失,可以通过slave服务器的协助来恢复工作。但这种架构有一个缺点,一般情况下,master是处理写请求,而slave则分摊读请求,这意味着master实际上压力还是比较大的,如果每台slave还都从它上面拉二进制日志文件,则会进一步加大master的压力。因此就有下面一个架构出现:

(2)链式复制

这种架构便可以较好的解决上述提到的问题。它跟上一个架构还是挺相似的,首先master仍然是负责处理写请求,slave处理读请求,但是第二台slave不再连接到master上,而是连接到前一台slave上,进行复制的时候,slave1还是从master上拉二进制日志文件并做好相关备份工作,而第二台slave开始都是从上一台slave上拉取二进制日志文件,这样就减轻了master的负担。

(3)快照

这个架构跟上述两个架构就较为不同了,它的实现是将mysql的服务器连接到存储上,毫无疑问,数据库的数据将保存在存储1上面,而存储2不连接Mysql服务器,连接存储1。通过在存储1上定期对数据做个快照,并定期将这份快照传给存储2,由存储2做备份工作。这有点像我们拍照,在某一时间拍一张照片,以后想知道当时长什么样子,就可以拿出照片看了。数据恢复也是通过快照来恢复。

(4)双主模式(主-主)

这种模式下,是由两台mysql主机同时作为主服务器工作,并且两台都是主动模式。也就是说,两台服务器都会接受写请求。一般情况下不推荐使用这种模式,因为同时对两台服务器进行写操作,容易造成数据的紊乱。

(5)双主模式(主-被)

这个架构的模式和上面的是一致的,只是这里两台不是都处于主动模式,而是一主一被,也就是说只有一台服务器负责处理写操作,而另外一台服务器则分摊读的压力。实际环境中,这种架构用的较多。

(6)mysqlhotcopy(MyISAM)

这是mysql的一种在线复制技术。一般情况下,若要对mysql做备份则需要安排停机再做备份,而mysqlhotcopy这种技术是支持在不掉电的情况下对数据库数据进行备份的,其原理是,它将等待数据库的操作完成,然后将相关物理文件拷贝到备用机器上,从而达到备份的目的。当然了,这种技术并不是十分成熟,更不能与oracle的热备媲美,只适用于一些对数据精准性要求小的场合。

以上便是mysql中常见的备份架构及技术,当然,实际环境中往往还需要借助其他软件,从而更好的工作,例如heartbeat、keepalived以及lvs 等高可用部件来实现负载均衡等。数据库的备份固然重要,但更重要的是能否在事故发生的第一时间将数据恢复,因此并非单单做好数据的备份即可,而是还要看看恢复的效果如何。

(7)xtrabackup(InnoDB)

Xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写),是商业备份工具InnoDBHotbackup的一个很好的替代品。

(1)备份过程快速、可靠;

(2)备份过程不会打断正在执行的事务;

(3)能够基于压缩等功能节约磁盘空间和流量;

(4)自动实现备份检验;

(5)还原速度快;

Xtrabackup有两个主要的工具:xtrabackup、innobackupex

  1、xtrabackup只能备份InnoDB和XtraDB两种数据表,而不能备份MyISAM数据表

  2、innobackupex是参考了InnoDB Hotbackup的innoback脚本修改而来的。innobackupex是一个perl脚本封装,封装了xtrabackup。主要是为了方便的同时备份InnoDB和MyISAM引擎的表,但在处理myisam时需要加一个读锁。并且加入了一些使用的选项。如slave-info可以记录备份恢 复后,作为slave需要的一些信息,根据这些信息,可以很方便的利用备份来重做slave。

最新版本下载地址:

以上观点仅为个人所见,若有错漏,还请大家批评指正,同时也欢迎大家继续补充,谢谢!

转载地址:http://zeqao.baihongyu.com/

你可能感兴趣的文章
Intellij IDEA 4种配置热部署的方法
查看>>
CCF201412试题
查看>>
HDU1164 Eddy's research I【素因子分解】
查看>>
学习前端工程师手册--学习记录
查看>>
9段高效率开发PHP程序的代码
查看>>
纯干货分享: 如何在 React 框架中使用SpreadJS
查看>>
机器学习实战之logistic回归
查看>>
SQL优化三板斧:精简之道、驱动为王、集合为本
查看>>
MVC中实现部分内容异步加载
查看>>
PTA编程总结2:
查看>>
《C++常见问题及解答》
查看>>
剑指OFFER——顺时针打印矩阵
查看>>
Live Archive 3490 - Generator 概率
查看>>
洛谷 1417 烹调方案
查看>>
Oracle SQL Developer
查看>>
基于DDD的.NET开发框架 - ABP初探
查看>>
Redis持久化机制
查看>>
dede的使用-2
查看>>
C++银行储蓄程序代码
查看>>
Java 线程池框架核心代码分析
查看>>