mysql高可用详解(一):简介

背景

为一个大型的企业保障数据库:

1:为核心业务数据提供灾难恢复计划。这个过程可能需要执行不止一次;

2:计划管理大量用户库,监控各节点的负载,并提供优化方案;

3:当用户量急剧增长的时候,准备好快速横向扩展计划;

【为了保障站点的可响应和可用,需要三样东西:】

(1)数据备份backup:

备份可以将节点恢复到它崩溃之前的状态;

执行备份有多种方法,方法的选择取决于需求,如果需要即时恢复到一个精确地时间点,就必须满足执行基于时间点恢复(point-in-time-recovery,PITR)必需的条件。如果在备份的同时保持服务器正常的运行,可以使用在线备份。(注意:不一定使用单一的备份方法,也可以根据需要混合使用多种不同的方法)。

和复制一样,备份也在系统扩展和添加新节点方面起了重要的作用。打个比方,如果使用正确,甚至可能按下按钮就可以自动添加新的从节点;

(2)冗余redundancy:

冗余保证即使在一个或者更多的节点停止提供服务的情况下,站点仍然能够运行;

冗余是通过硬件副本来实现的,让几个实例同时运行,并通过复制在几个机器上保存相同数据的多个可用副本。如果一个机器失效,可以切换到另一个拥有相同数据副本的机器;

(3)响应性responsiveness:

响应性保证系统在实际生产中可用;

【到底什么是复制】

复制就是把某个服务器上(称为主节点服务器或者简称主节点,master)的所有变化克隆到另一个服务器(称为从节点服务器或者简称从节点,即slave)。复制通常用来创建master的一个可靠副本,不过复制也有其他的用途;

例如:创建一个master的备份,以避免master崩溃的时候丢失数据;创建一个master的副本,从而在不干扰其他业务的情况下执行报表和分析工作;

【读写分离】

使用复制的最重要的场景之一就是横向扩展(scale out)。通过一个负载均衡器将读请求定向到合适的slave,而写请求则交给master处理;

【分片sharding技术】

通过分片,可以将数据库划分为若干可管理的数据分片,将数据库分发到多个服务器上,从而增加数据库的规模,并有效的扩展写操作;

【双主配置(dual-master)】

复制的另一个重要应用是通过添加冗余来保证高可用性。最常见的技术就是使用双主配置(dual-master),即通过复制保持一对master总是可用,其中每个master都是对方的镜像。如果其中一个master失效,另一个会立即接手;

【备份的好处】

错误保护;

创建新的服务器:在新服务器上恢复这个备份的镜像。这需要一个快速高效备份方法来最小化宕机的时间,并保持系统负载维持在一个可接受的水平;

【什么是监控】

即便已经正确的搭建了复制,还有必要理解你的系统负载,并密切监控可能发生的任何问题。客户使用模式的改变将导致业务需求变化,需要平衡系统以尽可能高效的使用资源,降低由于资源利用的突然变更导致系统不可用性的风险;

如果不使用监控,就没有办法观察到有问题的查询。过热的slave或者使用不恰当的数据表等;

 

猜你喜欢

转载自blog.csdn.net/qq_36807862/article/details/81289234
今日推荐