上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
1.1.4 容错
容错是与可靠性相关的因素之一。容错是系统检测故障并从突发事件中恢复的能力,它经常用来区分大多数高可用解决方案的正常运行时间。容错实际上是利用冗余和恢复,以及添加主动检测机制和主动切换来实现的。用户可以在MySQL数据库中实现容错,利用MySQL复制功能实现冗余。当主服务器发生故障时,用户使用MySQL中的命令将主服务器的角色切换到一台备用服务器(从服务器)。服务器具有两种类型的切换方式,即主动切换(Switchover)与故障转移(Failover)。两者的区别在于,主动切换是用户主动进行的服务器切换,故障转移是由于故障等原因被动进行的服务器切换。
MySQL的实用程序mysqlfailover,可以用来监视主服务器,当主服务器因故障离线时,它可以将应用程序的连接切换到从服务器。此外,用户也可以利用组复制自动执行故障转移及其他高可用操作。MySQL还提供了一个轻量级的中间件MySQL Router,它是MySQL的连接路由器,用户可以通过它连接一组指定的服务器,当指定的服务器离线(或无法访问)时,MySQL Router会自动切换到另一个可用的服务器。
用户可以在应用程序中实现容错,但需要通过编写特定的代码来实现,编写和维护这些代码会需要一定的成本。即使用户使用MySQL Router也需要对应用程序进行一些修改。使用MySQL Router连接数据库服务器时,读取和写入操作需要使用两个不同的服务器端口,并且在发生连接错误时,需要应用程序重新发起连接。因此,应用程序需要针对这些内容进行修改。