数据库架构--高可用

通过缩短因日常维护操作和突发的系统崩溃所导致的停机时间,以提高和应用的可用性

1、严重的主从延迟

2、主从复制中断

3、锁引起的大量阻塞  

4、软硬件故障造成的服务器宕机等


如何实现高可用

1、避免导致系统不可用的因素,减少系统不可用的时间

影响因素

1、服务器磁盘空间耗尽

2、性能糟糕的SQL

3、表结构和索引没有优化

4、主从数据不一致

5、人为的操作失误等

解决方案

1、建立完善的监控及报警系统

2、对备份数据进行恢复测试

3、正确配置数据库环境

4、对不需要的数据进行归档和清理


添加系统冗余,保证发生系统不可用时都可以尽快恢复

1、避免存在单点故障

     利用SUN共享存储或DRDB磁盘复制解决MySQL单点故障

     利用多谢集群或NDB集群来解决MySQL单点故障

    利用MySQL主从复制来解决MySQL单点故障


2、主从切换及故障转移


如何解决主服务器的单点问题

1、主服务器切换后,如何通知应用新的服务器的IP地址

2、如何检查MySQL主服务器是否可用

3、如何处理从服务器和新主服务器之间的那种复制关系


MMM架构

管理:MySQL主主复制的

作用:监控和管理MySQL的主主复制拓扑,并在当前的主服务器失效时,进行主和主备服务器之间的主从切换和故障转移等工作


MMM监控MySQL主从复制健康情况

1、主动主动模式的主主复制

2、主动被动模式的主主复制


在主库出现宕机时进行故障转移并自动配置其它从对新主的复制

1、如何找到从库对应新的主库日志点的日志同步点

2、如果存在多个从库出现数据不一致的情况如何处理


提供了主,写虚拟IP,在主从服务器出现问题时可以自动迁移虚拟IP


MMM工具的优点

1、使用Perl脚本语言开发及完全开源

2、提供了读写VIP(虚拟IP,使服务器角色的变更对前端应用的透明)

在从服务器出现大量的主从延迟,主从链路中断时可以把这台从服务器上的读的虚拟IP,飘移到集群中其它正常的服务器上。

3、MMM提供了从服务器的延迟监控

4、MMM提供了主数据库故障转移后从服务器对新主的重新同步功能 

5、很容易对发送故障的主数据库重新上线

6、MMM提供了从服务器的延迟监控


MMM工具的缺点

1、发布时间比较早不支持MySQL新的复制功能

基于gtid的复制可以保证日志不会重复在slave服务器上被执行

对于MySQL5.6后所提供的多线程复制技术也不支持

2、没有读负载均衡的功能

3、在进行主从切换时,容易造成数据丢失

3.1、事务丢失

3.2、重复提交事务

4、MMM监控服务存在单点故障

需要开发MMM监控服务的监控程序



MHA架构(可以基于GTID模式复制)

MHA完成主从切换超高效(30秒内可以完成切换操作)

可以保证数据的一致性

达到真正的高可用


MHA功能

1、监控主数据库服务器是否可用

2、当主DB不可以用时,从多个从服务器中选举出新的主数据库服务器

3、提供了主从切换和故障转移功能(MHA可以与半同步复制结合)


MHA主从切换过程

1、尝试从出现故障的主数据库保存二进制日志

     重复的主键等会使MHA停止进行故障转移

2、从多个备选从服务器中选举出新的备选主服务器(人为的设置一些服务器不参与选举)

3、在备选主服务器和其它从服务器之间同步差异二进制数据

4、提升备选主DB服务器为新的主DB服务器

5、迁移集群中的其它从DB作为新的主DB的从服务器


MHA配置步骤

1、配置集群内所有主机的SSH免认证登录:比如故障转移过程中保存原主服务器二进制日志,配置虚拟IP地址等

2、安装MHA-node软件包和MHA-manager软件包

3、配置主从复制集群

支持基于日志点复制,也支持基于GTID复制,推荐后者

4、配置MHA管理节点

5、使用masterha_check_ssh和masterha_check_repl对配置进行检验

6、启动并测试MHA服务

 

MHA工具的优点

1、使用Perl脚本语言开发及完全开源

2、可以支持基于GTID的复制模式

3、MHA在进行故障转移时,更不易产生数据丢失

4、同一个监控节点可以监控多个集群


MHA工具的缺点

1、需要编写脚本或利用第三方工具来实现VIP的配置

2、MHA启动后只会对主数据库进行监控

3、需要基于SSH免认证配置,存在一定的安全隐患(所有的服务器都需要配置)

4、没有提供从服务器的读负载均衡功能


读写分离中间件

1、mysql-proxy

2、maxScale(推荐,读写分离及读的负载均衡都可以实现)

由于添加了中间件。所以对查询效率有消耗

对延迟敏感业务无法自动在主库执行



猜你喜欢

转载自blog.csdn.net/xiaochen1999/article/details/80955687