我有 3 台服务器,比如A,B &C。都有相同的数据(相同的数据)。现在我想要的是让A成为主人,让B、C成为奴隶。
但情况是我只想从主数据库(服务器A)的单个数据库中复制一些表。
所有服务器都使用相同的数据运行。因此,无需从主服务器获取转储并在从服务器上恢复。
只是为单个数据库中的某些表设置复制。
这样做有什么坏处吗?我应该遵循哪些步骤来实现这一目标?
我有 3 台服务器,比如A,B &C。都有相同的数据(相同的数据)。现在我想要的是让A成为主人,让B、C成为奴隶。
但情况是我只想从主数据库(服务器A)的单个数据库中复制一些表。
所有服务器都使用相同的数据运行。因此,无需从主服务器获取转储并在从服务器上恢复。
只是为单个数据库中的某些表设置复制。
这样做有什么坏处吗?我应该遵循哪些步骤来实现这一目标?
设置一个主<>从配置,然后使用 config 参数:
... 指定要复制的表。使用通配符 table_name(如果可能)或使用多
replicate-do-table=
行。正如菲尔提到的,
replicate-do-table
选择是你想要实现你的目标。只是抛出几个警告:开销可能会在高写入负载时受到惩罚。看一下逻辑,以确定二进制日志中的一行是否应该在从站上执行。
假设master的binlog格式(行或语句)不影响表过滤规则。但是,据我了解(未经测试),如果您有任何影响表的存储例程,则该
replicate-do-table
规则不适用:因此,如果您使用任何存储过程来修改表,您可能会遇到复制失败的一些问题。