我想购买2个专用服务器,有一个用于存放mysql数据库,另一个用于运行Web应用程序,我不知道这是不是一个好主意。
ps在访问数据方面,我打算做数据库复制,在networking服务器上有slave数据库,显然master在mysql服务器上!
谢谢
一般来说这是个好主意。 将数据库复制到另一台计算机上,可以增加整体的正常运行时间,但通常只有在不同的数据中心时。 大多数情况下,我的一个站点不可用是数据中心故障(电源和备份电源故障,数据连接丢失,交换机死亡…),机器或我的帐户只有less数不定期的停机时间。 但是这很可能会给你带来更less的performance
在安全性方面,将数据库和networking服务器分离到不同数据中心的不同机器上,备份其他机器数据应该是不错的。
在性能方面,将应用程序和数据库分隔到同一个数据中心的不同机器上都可以 – 但是不需要复制。 通常的备份应该足够了,在你的应用服务器上运行一个slave将最终减慢你的整体性能。 如果你运行这个设置,你可能会多余的服务器。 根据您的acutal数据库查询,稍后您可以添加额外的应用程序服务器,而无需添加其他数据库服务器。 那么通过MySQL从站的热备份解决scheme可能是一个选项。
一般来说,将DB和Web服务器分开是一个好主意。 您无需在Web服务器上安装另一个数据库服务器,只需将您的应用程序直接连接到数据库服务器即可。
不,这是一个愚蠢的想法。 这将使您的应用程序运行速度比替代scheme更慢,更不可靠。
将这两台机器设置为Web服务器和数据库服务器。 一个是mysql master,另一个是slave。 添加循环法DNS。 如果你喜欢,你可以在托pipe从机的计算机上加载网站地址,以推送更多的stream量。
对于完全透明的故障转移方法,主 – 主方法可能会更好 – 如果您真的想要的话,您仍然可以实现一个节点的更新关联性和另一个节点的Web请求关联性。
这使您可以:
通过2个节点分离function意味着您现在有2个单点故障。 如果对两种方法的失效概率进行build模,例如失败概率为0.001,那么使用等效节点,导致系统不可用的失败概率为0.001 x 0.001。 OTOH,对于堆叠方法,导致系统不可用的故障概率为0.001 + 0.001
每次需要从数据库读取数据时,必须经过networking(对于大多数应用程序而言,db读取比写入要频繁得多)通常比访问本地服务慢至less10倍。
ps在访问数据方面我打算做数据库复制,在networking服务器上有slave数据库,显然master在mysql服务器上!
我不认为复制到networking服务器是有很多性能上的好处,但它确实设置了一个不错的数据库副本,这是一个数据安全的好处,但决不会取代备份,只要额外的负载不'阻碍networking应用程序的性能。
如果您确实需要复制,请确保该Web应用程序已经可以与MySQL复制一起使用(或正在为其devise)。 关键的问题是如何复制最终是一致的意味着奴隶可能有一段时间在主人后面,所以不应被视为权威数据的来源。