mysql复制功能介绍

MYSQL复制功能,是构建基于数据库大规模性能的基础,大家也许知道,数据库扩展是非常困难的问题,这和WEB服务器

是有很大的不同,如果我们的服务器出现大量的访问,压力增加性能下降的时候,我们只需要简单的增加几台WEB服务器,只要其

部署的程序一样,就可以很好的分担这些负载,但是数据库就不同,是因为数据库的数据事务性的要求,就是我们不能简单的

通过增加数据库服务器的方式,来分担数据库的读写负载,而MYSQL的复制功能,为我们提供了一种分担数据库读负载的好办法,注意我这里

只是说了读负载,因为事实上,只做简单的复制,还是无法分担写负载的,我们可以使用复制功能,对数据库服务器进行水平扩展,

对数据库服务器增加一个或多个备库,而这些备库呢,就可以用于分段主服务器的读负载,同时复制功能给高可用,灾难恢复,备份

等工作,提供了更多的选择

MYSQL的复制是基于主库上的,二进制日志,然后把备库上的存放日志的方式,来完成的,所以MYSQL的复制是异步的,

这也意味着,同一时间点上,备库上的数据呢,能与主库存在不一致的地方,并且无法保证主库和备库之间的延迟,影响

主库延迟的因素也有很多

这些我们后面都会提到,虽然延迟无法避免,但是MYSQL的复制还是非常好的,提供了数据库高性能的一种方法,

我们先来看看MYSQL复制,解决了哪些问题,首先利用MYSQL的复制,可以实现在不同服务器上的数据分布,当然呢

也可以实现不同IP机房的分布,MYSQL的复制呢,利用二进制日志增量来进行的,在通常情况下,不需要太多的带宽,

特别是基于语句的复制时,所需要的带宽也就越少,不过如果我们是基于行的的复制,来进行大批量的更改时,可能

会对带宽带来一定的压力,不过这种压力对于在同一个IDC同一机房的服务器来说呢,还是可以忽略的,但是如果我们

要在跨IDC的环境下进行复制的话,就要注意了,不管怎么来说,大批量的数据修改呢,任何情况下都是要分批来进行的

接下来呢使用MYSQL复制呢,还可以解决刚才我们提到的,数据读取的负载均衡的问题,不过要实现读的负载均衡,

除了MYSQL以外呢,通常我们在系统中还需要增加一些其它的组件,配合完成,才能做到读的负载均衡,比如我们可以

用到DNS轮询的方式,把程序的读连接到不同的备份服务器中,或者用LVS,haproxy这样的代理方式呢,都可以达到我们

负载均衡的目的,关于读写分离,负载均衡呢,我们会在下面来着重介绍,MYSQL的复制呢,是非共享架构,同样的数据分布

在多态服务器上

所以增加了数据的安全性,我们还可以利用数据库的备库,进行数据库备份的工作,来减少主库服务器的负载,

但是要注意,复制并不能代替备份,因为备份和复制所做的工作是不同的,如果我们不小心在主库上删除了或

修改了数据,那么由于备库呢,通常来说延迟很小,所以这时候呢,我们就很难使用备库的数据呢,删除或修改数据

来进行恢复,要在这种情况下,对数据进行恢复呢,我们就只能依靠备份来完成了,所以大家千万不要以为多了

复制之后,不用备份了,数据库的备份,在任何时候都是非常重要的,备份的另一个作用呢,是可以方便我们数据库

的高可用的部署,避免MYSQL的单点失败,由于MYSQL高可用的方式呢我们在下面会有详细的介绍,MYSQL复制最后

一个场景的功能呢,是可以为MYSQL的在线升级,来提供一些方便的测试,我们可以使用一个高版本的MYSQL数据库呢,

来作为我们主库的备库,这样在配置高可用工具的时候呢,就可以在很短的时间内完成,数据库的在线升级,同时也可以

测试高版本的MYSQL,和我们现有的程序是否兼容,以上就是MYSQL复制的常见的用途

在对复制进行详细的介绍之前呢,我们先来看看MYSQL二进制日志的一些问题,只有理解了二进制日志的记录方式,

我们才能更好的对MYSQL日志呢,进行部署和优化

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值