- 论坛徽章:
- 0
|
本帖最后由 livecm 于 2010-07-22 17:24 编辑
最近公司打算做一套mysql高可用,我准备了一些时间,有了如下方案,mysql+heartbeat+存储,mysql+drbd+heartbeat,mysql replication,mysql cluster。
各个方案都做了测试,我先说一下我测试的问题吧
方案1.mysql+heartbeat+存储
此方案测试如果是用myisam测试没问题很成功,来回切换都没有问题。但是如果是用innodb,就死活切换不过来,heartbeat报错,mysql也报错,错误日志我粘贴出来。公司用的innodb固此方案放弃
这是heartbeat的日志- /var/log/ha-log
- ResourceManager[25602]: 2010/07/16_18:13:10 info: Running /etc/init.d/mysqld start
- ResourceManager[25602]: 2010/07/16_18:13:41 ERROR: Return code 1 from /etc/init.d/mysqld
- ResourceManager[25602]: 2010/07/16_18:13:41 CRIT: Giving up resources due to failure of mysqld
复制代码 这是myslq的日志- /var/log/mysql.log
- InnoDB: Unable to lock ./ibdata1, error: 11
- InnoDB: Check that you do not already have another mysqld process
- InnoDB: using the same InnoDB data or log files.
复制代码 方案2.mysql+drbd+heartbeat
此方案也是官方推荐方案,我测试了一下(vmware),断开primary主机,可以成功跳到备机,数据也都过去了,此时向备机写入数据,主机连上网卡,情况发生了,主机的drbd状态(cat /proc/drbd)是standalone,通过官方修复方法可以手工修复,主机的drbd是primary,备机secondary,可是备机上面后来写的数据没有过来,依旧是主机断开的状态时的数据。此方案虽主向背切换可以,但是还是存在问题,固保留。
方案3:mysql replication
公司在用,固没考虑
方案4.mysql cluster
测试感觉还可以,但是发现一堆cluster的ndb的限制,如果不支持外键啊,等等一推问题。固直接放弃。
到最后可以考虑的也就是方案1和方案2了。主管更倾向于方案1,说肯定有解决方案,哎,我已经彻底头大了,特来请高手相助,看大家有什么建议,小弟谢谢了 |
|