在同一台物理服务器上运行复制是不明智的吗?

Der*_*ney 13 mysql myisam replication

我正在考虑为我的数据库设置主从复制。从服务器将用于冗余和可能的报告服务器。但是,我遇到的最大问题之一是我们的数据中心已经用尽了电源。因此,添加另一台物理服务器不是一种选择。

就 CPU 而言,我们现有的数据库服务器的利用率相当低(四核上的平均负载从未真正超过 1)。所以主要的想法是放入一些新驱动器并将内存加倍(从 8GB 到 16),并在同一台物理机器上运行第二个 mysql 实例。每个实例都有单独的数据库磁盘。

这个想法有什么问题吗?

编辑(更多信息):我(幸运的是)从来没有发生过任何足以关闭服务器的事情,但我正在努力提前计划。我们当然有可以从中恢复的每晚备份。但我认为,如果主服务器的驱动器出现故障(如果整台机器出现故障,显然不会),将冗余数据放在单独的磁盘上会提供更快的解决方案。

至于报告方面,我们要报告的任何表都是 MyIsam。因此,在正在写入的同一表上进行昂贵的读取可能会使服务器陷入困境。我的假设是,只要我们在主服务器上投入足够的 RAM(因为 cpu 负载还不是问题),有一个要报告的从服务器就不会影响主服务器。

Dav*_*ett 11

为了在系统可靠性和数据安全性方面的冗余,在与主机相同的机器上运行从机为您提供任何(或接近)。如果发生了足以导致主服务器宕机的事情,它也可能会导致从服务器宕机。

对于纯粹出于访问权限原因隔离用户的情况,一个好的 RDBMS 将提供更有效的方法来做到这一点。

在同一台机器上运行这两个数据库将需要更多 RAM 才能以相同的效率运行,因为这两个数据库将竞争空间以保留各种缓冲区和缓存。如果从站的数据文件位于与主站不同的物理驱动器上,那么通过 IO 负载隔离可能会带来性能优势。在这种情况下,您可以运行复杂的报告,这些报告需要对从属设备进行多次磁盘读取,而无需与主设备竞争驱动器 IO 带宽。

编辑:正如 DTest 在下面的评论中提到的,从数据库的另一个可能的好处(即使在与主数据库相同的驱动器上)是从数据库中复杂的长时间运行的查询,否则可能会导致日常锁定问题- 在主服务器上运行的查询更安全。尽管您最好在不同的驱动器上使用从属设备,因为如此重要的查询可能会导致 IO 争用问题。


Gai*_*ius 7

我不清楚这如何解决您的问题。没有冗余,因为它位于相同的物理硬件、相同的操作系统内核、相同的 MySQL 二进制文件、可能不同的磁盘但位于相同的存储控制器上等。报告数据库的原因是从 OLTP 数据库卸载查询,并作为都在同一个套件上,额外的动力从哪里来?或者你想从这个设置中得到什么?

一种可以想象的用途可能是以某种方式隔离用户,但同样,我认为这可以通过GRANT.