我们公司已经创建了两台MySQL服务器,它们使用主主策略保持同步。双机集群使用克伦什进行管理。这只是一个高可用性集群,这意味着一个MySQL服务器一次被发送数据,而另一个服务器只有在一台服务器故障时才保留以供备份。
为了测试我们的集群(我以前从未做过这类事情),我编写了一个脚本,它将把100000行写入数据库中的一个表中。在此脚本运行时,我登录到接收数据的服务器(即共享IP所指向的服务器)并重新启动它,试图模拟硬件故障。
在某些情况下,脚本继续运行。然而,在其他一些情况下,我会收到臭名昭著的PDOException: SQLSTATE[HY000]: General error: 2006 M
MySQL有许多不同的高度可用的解决方案,我想知道所有当前实现之间的区别是什么,下面是最新的实现:
MySQL组复制(由Oracle)
MySQL NDB集群(由Oracle编写)
Galera集群(加雷拉)
XtraDB集群( Percona)
MySQL Fabric集群(由Oracle编写)
MySQL Orchestrator (吉特布)
对于具有自动故障转移的高可用设置,建议的选项(或任何其他选项)是什么?(对于与具有同步复制的Server镜像等效的内容)
我读过这样的文章:BinLog Server MariaDB可用于将来自MySQL集群的bin日志中继到单个BinLog Server,但我想知道是否有可能从不同的MySQL集群收集所有的bin日志,并在单个BinLog Server上持久化,并且不会从其中读取mysql从服务器。如果可能的话,如何处理不同MySQL集群中的相同数据库名之类的冲突?