飞鸿无痕
发表于 2010-10-30 09:33
回复 39# luwenju
老人家不敢当,哈哈,你这个就是主主同步的设置了,两台机子互为主从!如果后面有从服务器,请开启log-slave-updates,把同步的更新写入二进制日志中去!
luwenju
发表于 2010-10-30 09:37
回复 41# 飞鸿无痕
“如果后面有从服务器,请开启log-slave-updates”
如果后面有从服务器的话怎么设置啊?前面可是有两个主呢
luwenju
发表于 2010-10-30 09:41
回复 1# 飞鸿无痕
其实部署要求是这样的:一主两从,一个主负责写,两个从负责读;当主挂掉时,从接管
昨天你告诉我MMM可以,但是我看一下MMM,中文资料相当的少。。
飞鸿无痕
发表于 2010-10-30 09:43
回复 42# luwenju
这个问题,因为两个主库的数据是一样的,你可以选择其中一个主库做该从库的主库,也可以lvs监听的那个虚拟IP做主库,这样,如果选择后者当主库出现问题的时候可以不用去手动更改!如果你运气不好,选择了从其中一个主库挂掉就得手动转到另外一个库!
飞鸿无痕
发表于 2010-10-30 09:45
回复 43# luwenju
用于生产还是建议用mmm架构,那个架构相对来讲成熟了很多!mmm的资料应该很多吧,我没有具体实施过那个架构,呵呵!
luwenju
发表于 2010-10-30 09:51
回复 45# 飞鸿无痕
用LVS那个后面再加从服务器我明白了嘿嘿 太感谢了
MMM真能实现这个要求吗?-----------------“一主两从,一个主负责写,两个从负责读;当主挂掉时,从接管”
飞鸿无痕
发表于 2010-10-30 10:18
回复 46# luwenju
mmm架构只是让设置浮动IP让你的服务器挂了另一个马上接管,读写分离应该通过别的工具实现,比如:mysqlproxy,或者程序实现,或者amoeba
luwenju
发表于 2010-10-30 10:57
回复 47# 飞鸿无痕
嗯 谢谢兄弟{:3_183:}
飞鸿无痕
发表于 2010-11-04 11:32
回复 36# luwenju
今天又研究了下关于切换的问题,如果你设置的主从,这样切换会出现问题,应为如果主停掉,由于default pool中只有一个master,所以会报如下错误:
mysql> java.lang.Exception: poolName=master, no valid pools
at com.meidusa.amoeba.net.poolable.MultipleLoadBalanceObjectPool.borrowObject(MultipleLoadBalanceObjectPool.java:174)
at com.meidusa.amoeba.mysql.handler.CommandMessageHandler.startSession(CommandMessageHandler.java:571)
at com.meidusa.amoeba.mysql.handler.MySqlCommandDispatcher.handleMessage(MySqlCommandDispatcher.java:104)
at com.meidusa.amoeba.mysql.net.MysqlClientConnection$2.run(MysqlClientConnection.java:231)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
因为你的那个pool没有可用的机器,又是你的default pool设置所以出现问题,解决办法是设置成主主同步,在master上设置两台mysql主服务器,这样如果一台出现问题就会把写入操作都转换到另外一台,当故障的主机回复以后又会两个都会写入!测试的结果是几秒就能完成切换,很快,不影响服务!配置如下:
<dbServer name="master" virtual="true">
<poolConfig class="com.meidusa.amoeba.server.MultipleServerPool">
<property name="loadbalance">1</property>
<property name="poolNames">server1,server2</property>
</poolConfig>
</dbServer>
<dbServer name="slave" virtual="true">
<poolConfig class="com.meidusa.amoeba.server.MultipleServerPool">
<property name="loadbalance">1</property>
<property name="poolNames">server1,server2</property>
</poolConfig>
</dbServer>
luciferlili
发表于 2011-02-10 15:48
怎么没有人继续研究amoeba了呢?关于amoeba的性能测试如何啊?有没有这方面的报告啊?