【发布时间】:2011-07-21 15:13:11
【问题描述】:
背景
我运行(阅读:继承)一个设置非常类似于共享主机提供商的网络。基础设施上运行着 300-400 个站点。多年来,数据库拓扑变得非常分散,因为它是从 webserver->database 的 1 对 1 关系。
问题
- 10 个应用程序中有 9 个是由实施了 wordpress/joomla/drupal 等的第三方设计公司设计的。
- 数据库有点随意地分布在 6 个数据库服务器上。它们不会在任何地方复制。
- 应用程序没有单独的数据库句柄的概念来将 INSERT 分离到主服务器和 SELECT 到从服务器。
- 使用单主内置 mysql 复制会产生巨大的瓶颈。插入量会很快降低主数据库。
问题
我的问题是,如何使我的数据库拓扑尽可能平坦,同时为未来的可扩展性留出空间?
将来我想在我的网络中添加更多地理位置,这些地理位置可以跨“后网”复制相同的数据库。
过去我研究过多主复制,但发现了很多与 auto_increment 列冲突等问题有关的问题。
我对企业解决方案持开放态度。类似于用于 Oracle 复制的 Shareplex 产品。
无论解决方案是什么,期望应用程序更改以适应这种新设计是不合理的。因此,像 auto_increment 列之类的东西需要保持不变并在整个集群中形成凝胶。
目标
我的目标是为每个集群都有一个内部负载平衡的主机名,我可以将所有应用程序指向该主机名。我
这也为我提供了我目前没有的容错能力。目前,无法从轮换中删除数据库。
Cassandra 和 Hadoop 等应用程序看起来与我想要实现的目标惊人地相似,但 NoSQL 不是这些应用程序的选择。
非常感谢任何提示/指针/教程/文档/产品推荐。谢谢你。
【问题讨论】:
标签: php mysql linux replication high-availability