我正在建立一个需要提供高可用性的数据库。
我最关心的是高性能和健壮性(我不想要那些会快速而糟糕地失败的东西)。应用程序以平均300 qps的速度访问数据库。它将在Xen上运行,它有一些InnoDB表和MyISAM表。VM经由以太网100 cables /S以太网电缆连接。
在这种情况下,您会推荐这两种方法中的哪一种-- MySQL复制或DRBD?
还是应该使用DRBD使主数据库高度可用,并在从服务器上使用MySQL复制?
我是一个开发人员,所以这些事情对我来说都不是那么容易做出正确的判断。
发布于 2011-01-07 02:25:48
与基于DRBD的解决方案相比,带有监视和自动故障转移的复制更容易实现和维护,特别是当您不习惯使用原始设备时。如果您有只读取db客户端的应用服务器,则可以运行主主安装程序,并且从前端或中间层计算机拥有两倍多的客户端(连接).
最可靠和可伸缩的可能是MySQL集群,但这实际上需要至少4 db主机才能很好地实现。我会使用monit运行普通的MySQL复制,在我的经验中,当mysql被正确地调优时,一个8核盒可以轻松地完成10k qps,当然,系统负载实际上是nill,当然是快速磁盘和大量内存帮助。事实上,将Inno和MyISAM放在一起,您将需要快速磁盘,并确保定期进行表维护。
发布于 2011-01-06 23:44:31
如果您计划有一个主动被动场景,复制非常容易设置,并且不需要共享驱动器。它将以主从设置的形式运行,其中从服务器连接到主服务器进行更新.
关于这一点,有几件事要记住:
对于DRBD,您将在块设备级别实现该解决方案。基本上,您写到一个硬盘驱动器复制到另一台机器。您可以使用心跳来实现HA。
有些事情要记住:
归根结底,你需要什么,如何使用数据库。
发布于 2011-04-20 06:14:45
两者各有优缺点。
MySQL复制可以很容易地添加到任何现有的设置中,并且不需要花哨的块设备。但是,由于关键冲突等原因,复制很容易中断。确保没有人能写信给你的奴隶。在read_only文件中设置my.conf,以确保没有人可以更改从服务器上的表。我发现最好的方法是设置主主复制,但在read_only模式下运行一个节点。
如果由于SQL查询中断而导致复制中断,则需要恢复到已知的良好状态,或者只需重新检查主表中的所有表。
主从配置的优点是您还可以向从服务器发送读取查询,以实现冗余和性能。你也可以很容易地把它推广给大师。
https://serverfault.com/questions/219637
复制相似问题