暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

17.3.5 Replicating Different Databases to Different Slaves

原创 由迪 2020-03-13
365

在某些情况下,您可能只有一个主服务器,并且想要将不同的数据库复制到不同的从服务器。例如,您可能希望将不同的销售数据分配给不同的部门,以帮助在数据分析过程中分散负载。图17.2“使用复制来复制数据库以分隔复制从站”中显示了此布局的示例 。
图17.2使用复制来复制数据库以分离复制从站
image.png

重要

你应该不使用 --replicate-do-db使用基于语句的复制时,为了这个目的,因为基于语句的复制导致该选项的效果根据当前选择的数据库变化。这也适用于混合格式复制,因为这使某些更新可以使用基于语句的格式进行复制。
但是,--replicate-do-db如果仅使用基于行的复制,则可以安全地 用于此目的,因为在这种情况下,当前选择的数据库对选项的操作没有影响。
复制

例如,要支持 如图17.2“使用复制来复制数据库来分隔复制从站”所示的分隔,在执行以下操作之前,应按以下方式配置每个复制从站 START SLAVE:

复制从站1应该使用 --replicate-wild-do-table=databaseA.%。

复制从站2应该使用 --replicate-wild-do-table=databaseB.%。

复制从站3应该使用 --replicate-wild-do-table=databaseC.%。

此配置中的每个从属服务器从主服务器接收整个二进制日志,但仅执行来自二进制日志的事件,这些事件适用–replicate-wild-do-table于该从属服务器上有效的选项所包括的数据库和表 。

如果必须在复制开始之前将数据同步到从属服务器,则有多种选择:

将所有数据同步到每个从属,并删除您不想保留的数据库,表或两者。

使用mysqldump为每个数据库创建一个单独的转储文件,并在每个从站上加载适当的转储文件。

使用原始数据文件转储,并且仅包括每个从属所需的特定文件和数据库。

注意
InnoDB 除非您使用 ,否则这不适用于数据库 innodb_file_per_table。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论