gpt4 book ai didi

MySQL 复制(3 个主站,1 个从站)

转载 作者:可可西里 更新时间:2023-11-01 08:37:46 26 4
gpt4 key购买 nike

我目前正在设置 mySQL 复制。

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

例如我有

需要这些数据
服务器 1 - 数据库 1
服务器 2 - 数据库 2
服务器 3 - 数据库 3

在此处存储数据
服务器 4 - 数据库 4

我需要这个用于报告目的。

我读过你不能连接到一个以上的主人。因此,话虽如此,我将尝试使用“主链”拓扑,因为我想我明白这个拓扑是怎么回事了

所以数据流会是这样的

服务器 1 -> 服务器 2 -> 服务器 3 -> 服务器 4

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

我理解正确吗?

最佳答案

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

您需要报告数据及时更新吗?如果不是,我建议放弃整个想法,只是根据需要定期将数据转储到 server4。

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

使用这种方法没有复制,复制设置简单/正常得多,每个数据库对都是独立的。

运行多个 MySQL 实例很容易也很正常,甚至有一个工具叫做 mysqld_multi这将帮助您进行设置。

关于MySQL 复制(3 个主站,1 个从站),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5888575/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com