10bet网址
MySQL 8.0参考手册
相关的文档10bet官方网站 下载本手册
PDF(美版)- 41.6 mb
PDF (A4)- 41.7 mb
手册页(TGZ)- 262.1 kb
手册页(Zip)- 372.2 kb
信息(Gzip)- 4.0 mb
信息(邮政编码)- 4.0 mb
本手册节选

MySQL 8.0参考手册// 将不同的数据库复制到不同的副本

17.4.6将不同数据库复制到不同副本

可能存在这样的情况:您有一个单一的源服务器,并且希望将不同的数据库复制到不同的副本。例如,您可能希望将不同的销售数据分发到不同的部门,以帮助在数据分析期间分散负载。此布局的示例见图17.2,“将数据库复制到单独的副本”

图17.2将数据库复制到单独的副本

MySQL源代码有三个数据库:databaseA、databaseB和databaseC。databaseA只被复制到MySQL副本1,databaseB只被复制到MySQL副本2,databaseC只被复制到MySQL副本3。

可以通过正常配置源和副本来实现这种分离,然后使用——replicate-wild-do-table每个副本上的配置选项。

重要的

你应该使用——replicate-do-db在使用基于语句的复制时,因为基于语句的复制会导致该选项的效果根据当前选择的数据库而变化。这也适用于混合格式复制,因为这允许使用基于语句的格式复制一些更新。

然而,它应该是安全的使用——replicate-do-db为此,如果您只使用基于行的复制,因为在这种情况下,当前选择的数据库对选项的操作没有影响。

例如,要支持分隔,如图17.2,“将数据库复制到单独的副本”,在执行之前,您应该按照如下方式配置每个副本开始复制

  • 副本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