多个Web服务器和数据库复制

我们在办公室find一个解决办法来解决特定的问题,我们有一个Web主机,有时我们的Web服务器(Apache)崩溃; 这会导致我们的Web应用程序对用户不可用。 通常由于用户数量的增加,我们注意到高峰时段的数据库连接数量有所增加。 select1:所以我们正在考虑把服务器作为数据库服务器(mysql),而另一台作为我们的Web服务器在同一个主机上。 问:在使用单个服务器时是否有更好的方法来解决这个问题? 问:有没有办法pipe理到数据库服务器的连接数量,而不会对用户造成任何严重的问题? 选项2:我们正在考虑获得另一台服务器(即同时运行apache和mysql的服务器),在第一台服务器不可用的情况下,所有stream量切换到第二台服务器。 这里的问题是,MySQL只支持1路复制(即主从)。 实例:通常情况下,从服务器在主服务器上镜像数据库,在发生故障的情况下,用户在从服务器上执行写操作,当主服务器恢复时,我们如何还可以将所有的写操作为了保持一致性(没有这一点,用户可能会发现他以前保存的一些数据似乎不可用,除了主键冲突)。 问:为了迎合这个需要,怎样才能实施呢?

另外,真的会喜欢解决scheme的任何build议(这个问题对我们来说是一个新问题)。

而不是主从设置,你可以尝试设置master-master复制…

你也可以看看使用memcached来缓解命中你的数据库

圆形复制MASTER-MASTER可能是一个痛苦,并导致更多的问题比它应该解决。 你将如何处理脑裂情况? 通常你在一个特定的intervall增加ID。 主A增加10,20,30,而主B增加11,21,31等。但我不build议做比它需要更复杂。 这听起来不像你在DBA那么有经验,所以KISS。 🙂

你真的应该看看为什么你的服务器崩溃,而不是“解决”与复制。 你有没有检查日志?

看看在高负载情况下比apache性能更好的lighttpd。

太“pipe理”连接(还有一个my.cnf设置为最大连接)到SQL服务器,您需要使SQL服务器更快完成,或减lessWeb服务器的查询数量。 caching是对两者的答案。 Memcached用于应用程序级caching(高效),以及用于qcache的SQL Server的一般ram。

解决这个问题(需要更多内存),然后添加主 – 从复制以备后用。 这也为您提供了可以在多个主机上分散读取IOPS的好处。 如果您真的需要热备份冗余,请考虑添加多主复制function。

也看看优化慢查询。 Slow_queries.log对此很有帮助。

祝你好运!