mysql 常见的备份架构及技术

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

(1)一主多从

164243953.jpg

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


(2)链式复制

165921544.jpg

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


(3)快照

170405838.jpg

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


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

101104999.jpg

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


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

101104999.jpg

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


(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://www.percona.com/software/percona-xtrabackup


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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL数据同步架构是指将一个MySQL数据库的数据复制到另一个MySQL数据库的过程。这种架构通常用于实现数据备份、数据复制、数据分发等需求。下面是一个常见MySQL数据同步架构: 1. 主从复制(Master-Slave Replication):主从复制是最常见MySQL数据同步架构之一。在主从复制中,一个MySQL服务器作为主服务器(Master),负责处理写操作和更新数据,而其他MySQL服务器作为从服务器(Slave),负责复制主服务器上的数据。主服务器将写操作记录到二进制日志(Binary Log),从服务器通过读取二进制日志来复制主服务器上的数据。 2. 主主复制(Master-Master Replication):主主复制是另一种常见MySQL数据同步架构。在主主复制中,两个MySQL服务器都可以处理写操作和更新数据,并且彼此之间进行数据同步。主服务器之间通过互相复制对方的二进制日志来实现数据同步。 3. 群集复制(Cluster Replication):群集复制是一种将多个MySQL服务器组成一个群集(Cluster)来实现数据同步的架构。在群集复制中,所有的MySQL服务器都可以处理写操作和更新数据,并且彼此之间进行数据同步。群集复制通常使用特定的软件或工具来管理和协调数据同步。 4. 其他复制方式:除了上述常见的复制方式外,还有一些其他的MySQL数据同步架构,如链式复制(Chain Replication)、环形复制(Ring Replication)等。这些复制方式根据具体的需求和场景选择使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值