我们公司创建了两台 MySQL 服务器,它们使用主主策略保持同步。双机集群使用以下方式进行管理:韓國。这只是一个高可用性集群,这意味着每次只向一台 MySQL 服务器发送数据,另一台服务器仅在其中一台服务器发生故障时保留用于备份。
为了测试我们的集群(我以前没有做过这种事),我编写了一个脚本,将 100000 行写入数据库的表中。当此脚本运行时,我登录到接收数据的服务器(即共享 IP 指向的服务器)并重新启动它,尝试模拟硬件故障。
在某些情况下,脚本会继续运行。然而,在其他一些情况下,我会收到臭名昭著的PDOException: SQLSTATE[HY000]: General error: 2006 MySQL server has gone away
异常,或者PDOException: SQLSTATE[40001]: Serialization failure: 1213 Deadlock found when trying to get lock; try restarting transaction
异常等等。
我该如何处理这些错误?我觉得对于为服务器集群编程有一个我没有意识到的简单事实。