表的内容
数据是当今Web,移动,社交,企业和云应用程序的货币。确保数据始终可用是任何组织的首要任务。停机时间几分可能导致收入和声誉的重大损失。
没有“一刀切“提供高可用性(HA)的方法。唯一的应用程序属性,业务需求,操作能力和传统基础设施都可以影响HA技术选择。技术只是交付HA的一个元素:人员和流程与技术本身一样重要。
MySQL部署到许多需要可用性和可扩展性的应用程序中。可用性指处理主机故障的能力,以及在必要时从主机故障中恢复的能力,这些故障包括MySQL、操作系统或硬件和维护活动的故障,否则可能导致停机。可伸缩性指的是将数据库和应用程序查询的负载分散到多个MySQL服务器上的能力。
由于每个应用程序具有不同的操作和可用性要求,因此MySQL提供了一系列认证和支持的解决方案,提供了一系列认证和支持的解决方案,提供了适当的高可用性(HA)和可扩展性,以满足服务级别要求。这种解决方案从复制,通过虚拟化和地理上冗余多数据中心解决方案延伸,提供99.999%的正常运行时间。
选择应用程序的正确高可用性解决方案主要取决于:
所需的可用性水平。
部署的应用程序类型。
在您的环境中接受最佳实践。
MySQL支持的主要解决方案包括:
MySQL复制。了解更多:17章,复制。
MySQL集群。了解更多:第18章,MySQL NDB Cluster 7.3和NDB Cluster 7.4。
Oracle MySQL云服务。了解有关MySQL云服务的更多信息。
MySQL的Oracle Clusterware代理。了解有关Oracle ClusterWare的更多信息。
MySQL与Solaris集群。了解有关Solaris Cluster的更多信息。
使用第三方解决方案可以提供更多的选项。
用于实现高可用性数据库服务的每个体系结构都根据其提供的正常运行时间级别进行区分。这些架构可以分为三个主要类别:
数据复制。
集群和虚拟化系统。
无共享Geographically-Replicated集群。
如下图所示,这些体系结构中的每一个都逐步提供更高级别的正常运行时间,这必须与每个体系结构可能带来的更高级别的成本和复杂性进行平衡。简单地部署高可用性体系结构并不能保证实际交付HA。事实上,与简单的数据复制解决方案相比,实现和维护不好的无共享集群可以轻松地提供更低的可用性级别。
下表比较了各种MySQL解决方案的HA和可扩展性功能:
表16.1 MySQL HA解决方案的特征比较
要求 | MySQL复制 | MySQL集群 |
---|---|---|
可用性 | ||
平台支持 | 所有支持MySQL Server(https://www.10bet靠谱mysql.com/support/supportedplatforms/database.html) | 所有人都支持MySQL群集(https://www.10bet靠谱mysql.com/support/supportedplatforms/cluster.html.) |
自动IP故障转移 | 没有 | 取决于连接器和配置 |
自动数据库故障转移 | 没有 | 是的 |
自动数据再同步 | 没有 | 是的 |
典型的故障转移时间 | 用户/脚本依赖 | 1秒,少 |
同步复制 | 不,异步和半同步 | 是的 |
共享存储 | 不,分布式 | 不,分布式 |
地理冗余支持 | 是的 | 是的,通过MySQL复制 |
在线更新架构 | 没有 | 是的 |
可伸缩性 | ||
节点数量 | 一个主人,多个奴隶 | 255. |
内置的负载平衡 | 通过MySQL复制读取 | 是的,读写 |
支持操作的工作负载 | 是的 | 是的 |
支持写入密集型工作负载 | 是的,通过应用程序级分片 | 是的,通过自动分片 |
在线扩展(添加节点、重新分区等) | 没有 | 是的 |