MySQL复制(3主,1从)



我目前正在设置mySQL复制。

我需要从三个地方获取数据。

例如我有

需要这些数据
Server1 - database1
Server2 - database2
Server3 - database3

此处存储数据
Server4 - database4

我需要这个做报告。

我知道你不能连接多个主机。所以说,我要尝试一个"主链"拓扑因为我想我知道这个是怎么回事了

数据流是这样的

server1 -> server2 -> server3 -> server4

server2server3将具有用于复制数据库的黑洞存储引擎,因此我们实际上不会将信息存储在这些服务器上,但信息仍然记录到二进制日志中,因此所有语句将滴流下来以保持server4最新。

我理解对了吗?

这可以工作,但不是最好的实现,并且可能在将来给您带来问题。在server1或server2上添加新表之前,必须在下游服务器上创建BLACKHOLE表,否则最终得到的将是真正的表。我猜你可以通过编写一个脚本来解决这个问题,该脚本每天晚上在server2和server3上运行,寻找任何非黑洞表,并运行ALTER TABLE将它们修改为BLACKHOLE表。

你需要报告数据是最新的吗?如果没有,我建议放弃这个想法,只根据需要定期将数据转储到server4中。

edit:(第二天)经过一些思考,我认为如果这是我,我可能会考虑在server4上运行三个独立的MySQL实例每个实例作为其中一个服务器的直接从属。

使用这种方法,没有复制,复制设置更简单/正常,每个db对都是自包含的。

运行多个MySQL实例很容易,也很正常,甚至有一个叫做mysqld_multi的工具可以帮助你设置它。

相关内容

  • 没有找到相关文章

最新更新