我找到了很多关于设置 MySQL 复制的好材料,但没有太多关于在发生故障时该怎么做。了解我可以达到的弹性程度是设计我的系统的基础,所以我不是在这里寻找“如何”管理建议,而是想了解可实现的语义。
因此,为了简化我的要求,我有一个应用程序,除非它可以读取数据库,否则无法运行。有两种场景:一是常见用法,一分钟请求很多,读数据库返回一个答案。其次,不那么频繁地用新数据更新数据库。更新延迟几分钟是可以接受的。
所以我的第一个想法是:Master->Slave
现在读者可以使用 Master 或 Slave,如果我们失去 Master 一段时间,读者可以对抗 Slave。
听起来很简单。但是......更严重的问题呢,如何手动恢复?多久时间?什么数据丢失?
以这个场景为例:Master->Slave。我们知道从站可能与主站有点不同步。现在假设我们失去了主人,这意味着它不会很快回来。
现在大概我们需要 Slave 成为可写的 Master,我们需要一个新的 Slave。
具体问题:
小智 2
我经常使用主从来加速远程办公室在慢速(512 kbit)连接结束时的读取速度。我的实现和经验如下:
应用程序被编写为从从设备读取并向主设备写入。读取事务内部的last_insert_id()需要从主服务器完成。
如果发生中断(例如宽带链路中断),则可以透明地从从属设备继续读取,但无法对该远程位置进行写入。其他写入继续从其他位置进行。从站照常更新。
当链接恢复时,从属设备会重新连接并下载任何更新并同步自身,通常是透明的。
这对我来说非常成功,我有很多人阅读,但只有少数人更新,其中大多数人在总部。
您可以从主设备更新多个从设备,如果我没记错的话,一个从设备也可以从另一个从设备更新,这样您就可以拥有从设备的“层”。
以下是一篇有用的读物。 http://dev.mysql.com/doc/refman/5.5/en/replication-solutions-switch.html
归档时间: |
|
查看次数: |
2370 次 |
最近记录: |